I’m going to re-do my blog sometime soon.

The host my current blog is running on is going to retire “anytime soonish” (I happen to be responsible for that, so I will know when). So I will need to move my blog someplace else (I want to merge it into my regular web page, too). Right now, it’s based on an ancient version of Pyblosxom with a couple of custom hacks, and is pretty much unmaintainable.

So I’m also looking for an appropriate blog software, but I’m not yet sure about my requirements, so I don’t have a clear software favorite yet. I don’t need a browser based editor, and I’m not interested in interactive features such as comments or trackbacks.

Mnemosyne is one of my favourites, because it’s a rather low-level, bare-bones approach. Its templating is XML-based (KID) and it’s Python.

Ikiwiki actually calls itself a “wiki compiler”, but I know that some people use it for their blogs. It also does valid XHTML, although its templating isn’t designed for XML safety.

Features that I would like to have:

  • XHTML output, ensuring valid XML, and appropriate templating
  • File-based data storage, no MySQL
  • Python preferred, but pretty much ‘Anything but PHP’
  • Static rendering / caching
  • Tag based organization
  • Search engine optimization (static pages, sensible URIs)
  • Atom and RSS 2.0 output, ensuring valid XML

I guess I’ll just end up writing a blog software for myself. The current text files are an odd mixture of HTML and plain text anyway, so I’ll need to write an importer for the old data myself anyway (plus then I can also do some URI mapping to redirect old links). My current web pages are generated via an XSLT transformation, so I maybe just re-use that for templating.

The thing which probably gives the largest issues is pagination of list views. (Especially when you want the pagination to be stable even when new entries are added while a user is browsing the pages, which is nice to have because of search engines and links). I don’t think a fully static rendering will work here.

[Update: Sean pointed out that by using title-only in archive pages I can avoid having to paginate. Thanks! I also received TONS of software recommendations. Ranging from PHP over bash (URGH, I want valid XHTML) to mod_lisp based (no special Apache modules, please. Should run everywhere.)]