Theme

The theme is actually a drupal theme I purchased and converted into a diazo theme.

Customizing html

With this theme, instead of customizing templates to adapt the html markup for the theme, which is what I typically do, I used inline XSLT in the Diazo rules file for my customizations. If you're not familiar with XSLT, I'd suggest learning it. Knowing it can give you a lot of power with Diazo.

Disquis integration

Even the disquis integration on this site is done in the theme--no add-on required.

Inline XSLT hints

By using XSLT in your Diazo rule files you can customize your site's rendered markup.

Modify content html structure inline

Example rewritten body content to use article tag and other mods:

<replace content="div[@id='content-core']/div[@id='parent-fieldname-text']">
    <article class="post type-post status-publish format-standard hentry">
        <div class="divider-colors"></div>
        <span class="cat-links">Post</span>
        <xsl:apply-templates />
    </article>
</replace>

Add class to element:

<xsl:template match="ul[@id='portal-globalnav']/li/@class[contains(., 'selected')]">
    <xsl:attribute name="class"><xsl:value-of select="." /> current-menu-item</xsl:attribute>
</xsl:template>

Final thoughts

With these simple XSLT concepts and other Diazo basics, you can be very powerful theming Plone without customizing any of Plone's templates or code.