Oct 28, 2008

This site used to be hosted with Drupal, which is a very capable and high-powered content management system. However, I had always felt that it was a bit more complicated than I needed; I didn’t actually know how large portions of it worked, and it had lots of features I had no interest in using but added to the complexity even if turned off.

So, after hearing about it from Mark Dominus’ blog, I decided to look at blosxom. It turns out that it’s pretty much exactly what I want: a blogging tool that’s dead simple but very capable and extensible by plugins (I love plugins). However, it’s written in Perl, which I didn’t want to have to deal with. There was a port of it to Python, which would be my language of choice, but looking at the documentation, it’s a lot more complicated than the original (the distribution has 72 files!).

So, long story short, I wrote my own direct port of blosxom to Python. I’m calling it constrictor, since the whole purpose is to constrict the feature set. I’ve always been a fan of simple, sharp tools, and having worked with this intimately for a couple weeks this fits the bill pretty well. The plugin architecture is largely the same as blosxom’s as well, and as a result I’ve already got three constrictor plugins going: one for allowing raw python in the interpolation, one to disable posts in a particular directory from being displayed in the date-based listings, and one to massage my posts to add paragraph tags and such. Porting blosxom plugins is pretty direct as well, so I expect to have more shortly.

I’ll be futzing with the layout and things for a while, but overall I think things are good to go.