The architecture for PyBlosxom has evolved over time. The mission is to build an easily augmented blog server that uses the file system for data storage. Using the file system allows PyBlosxom to fit in with other applications rather than forcing PyBlosxom to solve all problems all by itself.
In general, this chapter is lacking pretty severely. The code itself is fairly well documented and you should always consider the code to be an authority when the code and this manual are in disagreement.
FIXME - rework this whole chapter.
PyBlosxom is composed of several parts:
pyblosxom.cgi - This is the CGI script that is executed by your web-server, pulls in configuration variables from config.py and then instantiates PyBlosxom objects to handle the request.
the Pyblosxom package - This is the Python package that holds the PyBlosxom objects and utility functions that handle the request.
the entries package - Handles the abstraction allowing PyBlosxom to use entries other than those solely found on the file system.
the renderers package - PyBlosxom can handle different renderers. The renderer gets a list of entries to be rendered and can render them using whatever means it so desires: blosxom templates, htmltmpl templates, Cheetah templates, hard-coded RSS 2.0 markup, ...
the cache package - PyBlosxom allows for entry-level caching. This helps in cases where your entries are stored in a format that requires a lot of processing to convert to HTML.
PyBlosxom's look'n'feel and behavior is then augmented by:
plugins - Plugins allow you to augment PyBlosxom's default behavior. These you can get from the plugin registry or write yourself.
flavour templates - Flavour templates allow you to create the look and feel of your blog. These you can get from the flavour registry or write yourself.