This site is creating using blosxom, which is intended for blogs, but makes a pretty good tool for generating static web sites with a consistent appearance.
Blosxom is a relatively simple perl script, extensible via plugins, that uses the file system as its database. In brief, each blog entry is a file in the file system. The directory hierarchy is used to categorize entries.
Most of the site is generated using blosxom in static mode, with some plugins and config files which ensure that most directories just contain a single output file. The blog part of the site uses blosxom in dynamic mode, where it renders pages on the fly. The static part of the site is generated with a different copy of the script with some different settings.
The hard part was setting up blosxom in a way that worked for static rendering. Some of the standard plugins don’t work well in static mode, so I had to modify some existing plugins, and write some of my own to get things to work properly.
I modified or wrote the following plugins:
I also use a bunch of standard plugins:
- file (Hi Nelson!)
- interpolate_conditional (needed
so that variables in
fileincludes get expanded)