An example HTML5 manifest.cfg file:
[theme] title = My Theme description = Description of your theme rules = /++theme++my.theme/directory/rules.xml prefix = /++theme++my.theme/directory doctype = <!DOCTYPE html>
Another nifty little trick I've seen yesterday was the use of xsl:apply-templates and css:select. For instance if you want to do something silly with your breadcrumb.
<xsl:if css:test="#breadcrumb-1"> <append css:theme="#breadcrumb"> <xsl:for-each css:select="#portal-breadcrumbs > span:not(#breadcrumbs-you-are-here) > *" method="raw"> <xsl:choose> <xsl:when css:test=".breadcrumbSeparator"> <span class="separator"> > </span> </xsl:when> <xsl:otherwise> <xsl:apply-templates css:select="a, span"/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </append> </xsl:if>
The above example basicly does this:
: This tests if the "breadcrumb-1" id is available (when you have
more than just home)
: Select the div with the breadcrumb id
: Loops through all the children of spans, directly under
portal-breadcrumbs, that do not have the "breadcrumbs-you-are-here" id.
: For when you have multiple scenarios. In this case sort of if
else, but you could have lots of different cases.
: First scenario, in this case selecting the breadcrumb separator
and changing it.
: Yes, you can add html structure like this.
: If none of the above scenario's match, then do this.
: Put the content you select into the theme side. In case of a
for-each the selection is relative to the for each select.
The xsl:apply-templates bit I used to do by useing xsl:copy-of, which put the content there, but takes it out of the xdv loop. The xsl:apply-templates way leaves it in.
Other fun tricks
You can use an href to draw in content from outside of the content page.
In plone you can use it for browser view for instance. The following
example gets in the html in the
@@login-form browser view: <append
css:theme="" css:content="form" href=%22@@login_form" />
To select comments, for instance one that has the word 'base' somewhere
in there use
//comment()[contains(., 'base')]. The following example
moves the base tag from the content to the comments in the theme that
contain the word base: <replace theme="//comment()[contains(.,