zhar.net template system

zhar.net template system

zts v0.8

I've been working with the system and have improved it some but am finding limitations to the design and have some new ideas that don't work with the full template driven site as I've implemented it. So I'm sticking a fork in this for the moment and am going to try something new in a bit after I've finished another project that I haven't put up yet.

Before stopping I did get some good refactoring done. In addition to converting to using Tempita as a templating system and eliminating a lot of Cheetah related cruft I've added a basic plugin system and moved some of the functionality to it. The documentation for the new stuff is a bit lacking, so mail me if your curious. Due to the plugin system the number of files grew a bit so I have packaged it up as a tarball.

  1. zts.tar.gz - tarball of the scripts and plugins.
  2. layout.tmpl - my top level template (this is in the archive below as well).
  3. zhar-template.tar.gz - a tarball of the directories/templates used to generate this site (sans images and other big files). Provided as an example.

It is a pretty simple system written in Python consisting of just a few files. It currently uses Tempita for its basic template rendering and a simple hierarchical directory layout for organization. At this point it would be mostly of use to people already familiar with Python or willing to get that way. It is pretty flexible, but requires python for any significant change from its default setup.

The basic structure is to have a top level template that is used for every page. The layout is a directory based hierarchy with one page per directory. The main template has a hook to pull in the body of the page. Each an every bit of content is rendered as its own template, so you can build up the pages from parts and pull in content from other areas. Other features include a site map, modification caching/tracking to speed up processing, command line option parsing with config file support, plus a few other things. The code is commented a bit, but I wrote it primarily for my own use and thus documentation is lacking. If you think it might be useful to you but have some questions please drop me a line and I'll do all I can to help.