Conference Session

Using Deliverance to Theme a Website

By: Ian Bicking

About Ian Bicking

Ian Bicking has been a Python web developer for over eight years and has been blogging about Python and programming nearly as long at  He is the author of many open source Python libraries, including WebOb, Paste, and virtualenv.  As a developer at The Open Planning Project he is working on techniques to make open source web software more generally reusable.

About the session

This talk will discuss Deliverance, a tool for theming. The emphasis will be on the new Deliverance HTTP proxy. The Deliverance HTTP lives in front of multiple application servers (Zope/Plone, Apache/PHP/WordPress, etc) rewriting HTML to apply a single site theme to applications. The new version of Deliverance allows for sophisticated XML configuration to control the layout of your site and how the theming is applies.


  1. Introduction to Deliverance

    1. A demo of what it does, applied to an existing site (e.g.,
    2. A description of "theming", its scope, a little about the mechanics
    3. A description of the proxying and its configuration
  2. The motivations of Deliverance

    1. Plone customization can be hard, and fragile, and Deliverance is easier and much less fragile
    2. Why you should suck it up and make your stack heterogeneous
    3. Now your site looks like a hodgepodge: you need theming!
    4. HTTP as the universal language
  3. Comparing Deliverance to other options

    1. CSS: an alternative, and a complement, and an adversary
    2. Plone customization techniques
    3. XSLT
    4. Server-side includes
  4. The details of Deliverance

    1. Moving boxes around
    2. Using the Deliverance log and interactive tools
    3. Including dynamic content with subrequests
    4. Customization with Python (more what-you-can-do than how-you-do-it)
    5. Page classes and defining regions of your site
  5. The unanswered questions (covered very briefly, more acknowledgment than real discussion)

    1. Interaction problems with Plone or other tools
    2. Unifying authentication
    3. Defining the interaction of pieces of your site
    4. Site search
    5. Site-wide notification of updates

This is a Talk (45 min)