A server for the Deliverance/XSLT compiler
dv.xdvserver is a simple piece of WSGI middleware that can execute the two step compile-and-run XSLT transforms of xdv.
It takes two required parameters:
- rules: a path to a file containing Deliverance rules
- theme: a URI or path to a theme HTML file
In addition, it can take several optional parameters:
- absolute_prefix: if given, relative urls in the theme file will be made
- into absolute links with this prefix.
- notheme: a set of regular expression patterns (or just simple names) that
- will be matched against the incoming path to allow the theme to be switched off for some paths. Multiple patterns should be separated by newlines.
- live: set to True to recompile the theme on each request, rather than on
- startup only.
- compiler: a path to the XSLT file that can turn theme+rules into a compiled
- theme. The default, bundled version will probably suffice in most cases.
- boilerplate: a path to the XSLT file that contains boilerplate XSLT
- instructions. The default, bundled version will probably suffice in most cases.
You can use this middleware in a Paste Deploy pipeline. Here is an example configuration file of an application that themes a Plone site running on http://localhost:8080/demo. Static resources are served from /static:
[server:main] use = egg:Paste#http host = 127.0.0.1 port = 5000 [composite:main] use = egg:Paste#urlmap /static = static / = default [app:static] use = egg:Paste#static document_root = %(here)s/static [pipeline:default] pipeline = egg:Paste#cgitb egg:Paste#httpexceptions theme.default zope.proxy [filter:theme.default] use = egg:dv.xdvserver#xdv theme = %(here)s/static/index.html rules = %(here)s/static/rules/default.xml notheme = /emptypage [app:zope.proxy] use = egg:Paste#proxy address = http://localhost:8080/VirtualHostBase/http/localhost:5000/demo/VirtualHostRoot/
1.0b8 - 2010-08-22
- use lxml.html.tostring instead of lxml.tostring for output to avoid empty tags like <script/>, which confuses browsers [tomster]
1.0b7 - 2010-08-19
- Use lxml for web resolving. [elro]
- Remove xdvcompiler.py (this is now in xdv) [elro]
- Apply patch from Lukas Zdych to fix absolute prefix. [optilude]
- Added through the web resolving of the rules file. [Marshall Scorcio]
1.0b6 - 2009-10-27
- Updated xdv compiler [lrowe]
1.0b5 - 2009-10-12
- Re-licensed to the BSD license. [optilude]
- Added support for the extrauri parameter. [Matous Hora]
1.0b4 - 2009-03-30
- Renamed the ‘theme_uri’ parameter to just ‘theme’, since it also allows filenames. [optilude]
- Added support for declaring some unthemed URLs via the ‘notheme’ option, based on pattern patching. [optilude]
- Fixed various Windows related bugs. [optilude]
1.0b3 - 2009-03-26
- We now allow local file paths as the theme uri, and let compiler.xsl pick its own boilerplate.xsl by default if none is given. [optilude]
1.0b2 - 2009-02-25
- Added console script for compiling the theme offline [optilude]
1.0b1 - 2009-02-24
- Initial release