Nate Aune: Deliverance - a compelling way to theme Plone sites

published Oct 29, 2009

By Nate Aune, Jazkarta, USA

This talk will be a case study of how we used Deliverance to streamline the process of theming a Plone site. The customer requirement was to use an existing HTML/CSS design but replace the backend CMS with Plone. We were able to complete the theming part of the project in a fraction of the time that it would have taken had we replicated the theme as a Plone product.

Deliverance moves elements from your content into place holders in the theme. And you don't even have to touch the theme to do this.

The knowledge you need for this is html, css, firebug and an editor. The web designer does not need to learn templating in yet another CMS.

Who is using deliverance?

Our customer, HaiVision, wanted to move to Plone, but use their current design, and wanted to be able change the html and css themselves, and within two weeks. Deliverance to the rescue!

Seven steps to heaven:

  1. Check out and run the Deliverance demo buildout:

    svn co http://svn.plone.org/svn/collective/deliverancedemo/trunk delidemo
    
  2. Prepare your HTML/CSS files.

  3. Stick the static files in a static folder in your buildout.

  4. Identify css selectors in the plone site. Firebug is fantastic for this, so http://www.getfirebug.com

  5. and identify the css selectors in the static theme where you want to put them.

  6. Create a rules file. Note: you must place drop rules before replace rules.

  7. Setup an apache vhost. You must add ProxyPreserveHost there.

See the slides for details once they are up.

Performance:

  • Deliverance respects caching headers.
  • Pages load fast, because javascript and images that are not used in the theme are not loaded.
  • Deliverance itself has a small memory footprint and hardly takes any server resources.

collective.dvsites: wsgi middleware that maps domains to different rules files:

[sites]
domains =
    *.mysite.com  %(here)s/mainrules.xml
    another.mysite.com  %(here)s/another.xml

Banjo: jQuery-powered rules generation front-end. Sprint this weekend? jQuery help needed, python programmers wanted, and user interface gurus please.

Thanks to: Paul Everitt, Ian Bicking, Aaron Vanderlip, Jordan Baker, Eric Steele, Fred van Dijk, Reinout van Rees.

More info: http://deliverance.openplans.org

Example buildout: the plone conference website: http://svn.plone.org/svn/collective/ploneconf/buildout/ploneconf/trunk