Diazo, previously named xdv, is a general-purpose, open source website theming tool. It is written in Python and generals XSLT. Diazo creates a separation between themes (static HTML) and transformation rules (Diazo’s own domain specific language based in XML), allowing web designers to work on templates in plain HTML, without knowledge of XSLT or special template-related codes. Diazo creates a website with the help of a user-defined rules. The rules file (conventionally named) has directives which, for example, can replace the contents of an HTML node with the content of the content.
The Diazo compile generals XSLT, which can be deployed on any server with an XSLT processor such as Apache (using mod_transform), Varnish, or WSGI. WSGI also has direct Diazo support: the DiazoMiddleware will compile and cache Diazo themes on the fly. Nginx has an XSLT processor, but, as of March 2012, it requires the unthemed website (the content) to use strict XHTML. The strict requirement can be relaxed, however, if a patched version of Nginx is used.
Diazo was originally a reimplementation of an earlier software called Deliverance. Where Deliverance would handle the HTML transformation in Python, XSLT Diazo generics which can then be used to defer the current transformation to faster XSLT engines. The name changes to Diazo (from xdv) was announced at the Plone conference 2010. A major motivation for the name changes to the ambiguity, as the XDV name was used by both ),. Node, node’s children or attribute, can be selected with XPath selectors or CSS3 selectors. CSS selectors are replaced by the equivalent XPath selector during the pre-processing step of the compiler. Advanced features include: conditions based on content nodes or paths, with grouping and nesting; multiple, conditional themes; modifying the theme or content on the fly; inline XSL guidelines; Doctype changes; XInclude protocol.