Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



48 Commits

Repository files navigation


Loathsxome is a minimalist and opinionated program inspired by Blosxom.
It allows you to maintain a web log where individual entries are simple
text files. Its default behaviour is what I consider sensible for my own
journal, but it can be changed easily.

Loathsxome knows how to display two kinds of things: a single journal
entry or post, and an "index view" or list of posts (all posts, or those
that match some criterion, such as "tagged with 'horror'" or "written in
May 2009"). It features nice-looking URLs, RSS feed generation, support
for tagging and categorisation by directory, and so on. If you use Git
to maintain your web site, as I do, you'll find that Loathsxome works
very well with it.

The code is easy to follow, and well-documented; the plugin system is
simple but powerful. Plugins can affect any aspect of the program's
operation, from URL parsing to post selection and rendering. 

Compared to Blosxom, Loathsxome has two notable disadvantages: it is not
compatible with existing Blosxom plugins, and it does not support static
generation. (But the plugin interface is so similar that most plugins
can be ported with a few minutes' work; and I intend to implement static
generation in a future release.) 

Existing Blosxom users may find little reason to switch, especially if
they have invested some effort into selecting and configuring plugins.
But it takes real work to configure Blosxom to duplicate Loathsxome's
default behaviour, so new users who like that behaviour can save time
by using Loathsxome; and anyone who wants to extend the code will
appreciate its improved internal organisation.

Loathsxome is a CGI program written in Perl (without any CPAN
dependencies). This distribution contains loathsxome.cgi and some
plugins. It is distributed under an MIT-style open source license.
(See the included LICENSE file for details.) 

See for more details.

Getting started

First of all customize the configuration section in loathsxome.cgi.
Next you may wish to adapt the css in loathsxome.css or point
loathsxome.cgi to a customized css file.

Blog posts come to live in the directory specified by the $datadir
variable in loathsxome.cgi. Each of these plain text files ending on
the suffix .post must have the following structure:

meta: date=<publishing_date>
meta: tags=<tag1> <tag2> [...] <tagn>

<html text formatted according to your css>

The <publishing_date> should be given as YYYY-MM-DD HH:mm:ss
Tags are separated by whitespace, and therefore must not contain
whitespaces themselves (escaping is not supported).  A third meta line
may be added to link to another post (e.g. a manually generated table
of content) in the footer of the post:

meta: toc=<blog_post>[|<link text>]

<blog_post> denotes the path and base name of the post serving as link
target, the path must be relative to $datadir. If the <link text> is omitted
the link text will read "More on <tag1>...", or -- when no tags are given --
"Read more...". <link text> must neither end with a pipe sign
nor with an ellipsis (as the three dots are always added at the end).

Copyright 2009 Abhijit Menon-Sen <>


Minimalist web log software with Git integration, inspired by Blosxom







No releases published


No packages published