Background & History

by Alexander Limi — last modified Feb 20, 2010 04:16 PM
Before starting, let us explain briefly the history of xdv, and why it exists.

When people talk about this new approach to theming, they will often refer to the general approach as "Deliverance-based". The original Deliverance project was started by Paul Everitt a long time ago, and was further enhanced by Ian Bicking, who is its current maintainer.

Along the way, Deliverance got more powerful and expanded beyond the initial goals, and started handling cases that were not included in the original scope.

Long story short, a new implementation of the same basic approach was started, called "xdv". This is a stripped-down, pure XSLT implementation of the Deliverance concept, and can be compiled down and used directly inside a web server like Apache, IIS or nginx (pronounced "Engine X") as a standard XSLT transform, without any extra software running.

This does not mean that xdv is somehow better than the original Deliverance implementation, or that it makes it obsolete — they are different tools with slightly different goals, sharing the same basic approach. We'll get to an overview of which approach is appropriate for what cases in a moment.

The final piece of this puzzle is the add-on called collective.xdv, which takes xdv and packages it up to make it very convenient for use with Plone.

As a side note, the "collective" namespace is a common pattern in Plone add-ons, and denotes software that is managed collectively by the Plone community — and not necessarily by the Plone Foundation.

Why do you need to know all this? It's useful to keep in mind that you can carry across what you learn in using collective.xdv to the Deliverance project, should you need to do that at a later point. The basic syntax and approach is largely the same, although the details of the implementation can differ slightly.