Diazo - We Write XSLT, So You Don’t Have To
Diazo allows you to apply a theme contained in a static HTML web page to a
dynamic website created using any server-side technology. With Diazo, you can
take an HTML wireframe created by a web designer and turn it into a theme for
your favourite CMS, redesign the user interface of a legacy web application
without even having access to the original source code, or build a unified
user experience across multiple disparate systems, all in a matter of hours,
When using Diazo, you will work with syntax and concepts familiar from working
with HTML and CSS. And by allowing you seamlessly integrate XSLT into your
rule files, Diazo makes common cases simple and complex requirements possible.
For detailed documentation, please see diazo.org.
- Fix test with webob 1.7
- only add absolute prefix for xlink:href attributes if url doesn’t start
with a ‘#’ (use anchor_safe_urljoin)
- Add absolute url prefix to xlink:href attributes
- Allowed content-to-content inclusion.
- Absolute prefix support for srcset attributes
- Extend cssselect instead of using experimental.cssselect
- Allow inline content for after and before.
- Fixed issue with remote themes via https connections
- Make flake8 happy by moving imports to top of file.
- Python 3 support.
- Use formencode’s xml_compare method to compare test results. This solves test
failures on several systems.
- Also evaluate if-not-content. However, we are at risk of replicating
apply-conditions.xsl in it’s entirety. this needs refactoring.
- Remove any xml:lang attribute from content to prevent multiple
xml:lang attributes when the html tag’s attributes are copied.
- Escape curly brackets on theme attributes.
- Provide the request’s query string as the $query_string variable
for use in the rules file.
- Fix diazo.scheme definition to be correct. Previously, this was
defined as request.host.
- Support selectors matching multiple elements for merge attributes, e.g.
<merge attributes="class" css:theme="body" css:content="#one, #two"/>
- Also evaluate merged-condition. This means a rule tag will turn red
when a condition on an outer rules tag doesn’t match.
- use boolean(), not count() for if-content. Otherwise we
generate expressions like “count(nodeset and other_nodeset)”,
which aren’t valid.
- Output contents of error log as part of debugging output
- Debugging output.
- Don’t close the response unless Diazo is transforming it.
- fix error caused by empty style tag e.g. <style/>
- Handle error when serializing empty responses by returning an unthemed
response. Previously, empty text/html responses resulted in an raised
exception, resulting in a 500 response and no output.
- Allow attributes (i.e. xml:id) to pass through on drop @attribute nodes
- Fixed to not apply absolute prefix for relative urls starting with ‘#’.
- Preserve resolvers in the rules document when updating from an old namespace.
- Refactoring if WSGI middleware to use WebOb better and fix corner cases.
- Use same xpath prefix for css:if-not-content and css:if-content.
- Add support for @if-not-path.
Note: for older changes, see docs/changelog.rst.