Brool brool (n.) : a low roar; a deep murmur or humming

Installing Blosxom

 |  blog

Set up this blog once again, using Blosxom this time. Previously it was MoveableType, which was powerful but also seemed baroque… not to mention that I kept forgetting my administrative password and could never figure out how to get it back again. Frustrating, the second time. Although, to be fair, anything would seem baroque compared to the microness that is Blossom: 150 lines of code? C’mon! Elegant doesn’t begin to describe it.

Installation was quick but complicated by the fact that a) I uploaded blosxom.cgi in binary mode, causing a “premature end of script” error when anything was done, and b) when I uploaded the plugins, I put a CGI extension on them — out of blind habit, I guess. The plugins do not work if they have an extension, but this was only obvious to me after I spent the time debugging it with:

sub head {
    ${$_[2]}.= "more output here";

… all over the place. The thing with Blosxom is that several times already I’ve had that “this-is-incredibly-frustrating-I-know-I’m-being-stupid” experience with it — usually because I look at the meager documentation and not at the Perl code. For example, I added the hide plugin in order to hide the colophon from the blog list… yet couldn’t get it to work… tried it again… and again… until I finally I figured out that, contrary to the Perldoc, the hide file needs to be specified as a regexp against the entire filename. So, for example, to exclude the “aboutme.txt” entry that is in your datadir, you need to specify:


specifically, the following will not work:


Argh. Incredibly frustrating before, incredibly embarrassing after.

Other things that I ran into:

Use the test plugin at the start just to make sure that you really do have the plugins working. And, if they aren’t working, make sure that you weren’t an idiot like me and put an extension on them.

To enable breadcrumbs, just put \$breadcrumbs::breadcrumbs in your head.html file in your datadir. That’s all that needs to be done.

Writebacks can be done any number of ways, but I just went for the easiest: use interpolate_fancy, and put the following in your story.html:

<a name=“writeback”/>
<?\$path_info unlike=“(\1+/?\$)|(\^\$)|(index\.\w+\$)”>

This includes the writeback if and only if the individual story is being shown. Put a link to the permalink + anchor in the story.html:

<a href=”\$url\$path/\$fn.\$flavour#writeback”>\$writeback::count comment(s)</a>

And that’s all you need to do…

The current plugin list:

Blosxom is highly recommended if you want a small, elegant blogging tool.

  1. \^\. [return]


Comments are moderated whenever I remember that I have a blog.

There are no comments on this article.

Add a comment