This is the first post that is published through Iris, the static website generator used by Testbit. Over the years I fine tuned and tweaked my editing and revisioning tools like probably all programmers/writers do and needed a way to apply this to the web.

First Steps

I’ve always felt at odds with the fact that I’m not able to use the same facilities for blog post creation as for programming. Looking back at my old posts, I’ve actually started out in 2005 with a command line tool that allowed me to easily upload simple text passages for planet aggregation.

I later started running my own Wordpress instance with full fledged online editing which turned out to be fairly entertaining in the beginning. But I never went back to produce posts as frequently as was the case when I had my command line tool.

These days, any content I’m working on needs to be tracked in a local Git repository. I want to diff, merge, rebase changes and edit things in-place in Emacs and a terminal. Not being able to utilize my familiar editing environment has really thwarted my efforts to blog even semi-regularly.

For the above and a plethora of other reasons, I’ve long wanted to move away from venerable Wordpress and any kind of dynamic website management, that includes the Mediawiki instance that used to be hosted on Testbit. Both served a role at some point, but lately the Wiki became more of an archive for old works and the blog felt more and more like a maintenance burden and writing block.

Build Tools

Moving blog and wiki to Git has been on my long standing Todo list. And for the past few years I’ve been hoarding bits and pieces needed for the construction of a statically generated blog.

The German DSGVO came as the perfect excuse to finally overhaul the Testbit website and create a build process for it. The site is now generated from a Python script, using a Python configuration file and a few jinja2 templates. The actual content is written in Asciidoc, converted with Asciidoctor to HTML and uses a newly created theme. That’s a combination not yet listed on StaticGen, which probably means it could be useful to polish up Iris for a release and add it amongst the static site generators.

A few features are now missing, like site search and a comment submission form. But I have fairly concrete ideas how to get those back without involving third party services. For now, comments need to be manually approved and can be sent via a 'mailto:' link at the bottom.

The old posts could be exported from Wordpress as an extended RSS feed and converted to AsciiDoc via pandoc, but that process is not entirely lossless, especially since attached media files need to be processed as well. So I’ll be merging converted old posts into the new site incrementally as rendering of the posts and media is fixed and verified.


Every once in a while, I’ve been looking into Asciidoctor themes, but lately didn’t notice much progress in that space. Since none of the available themes were a close fit to my vague ideas for a new Testbit layout, I’ve set down to pull the needed pieces for a new AsciiDoctor theme together myself. My first attempt started at utilizing the Asciidoctor theme engine as the documentation recommends. That ended in a somewhat laborious effort to get the dated Asciidoctor theme building setup up to speed with recent npm package versins and Foundation 4 (also fairly dated by now). But the resulting theme CSS was quite bloatet and contained lots of portions that fight each other as styling is applied on top of existing AsciiDoctor styling rules.

Also it struck me as overkill to employ a site building framework for the generation of an Asciidoctor theme, so I started a new theme from scratch, just using SCSS. The aim was to support all AsciiDoc Syntax Quick Reference features reasonably well. That turned out easier than initially expected, while the generated Asciidoctor HTML + CSS classes have some flukes, in most cases there’s a way to get what’s needed with CSS3. The result is the new Nirvi theme employed by the Testbit website, a fairly lean CSS file by comparison.

UPDATE: I’m cutting off the atom and rss feeds after a certain age now, because the aggregator on seems to be picking up all migrated postings, regardless of publishing date or age.

Post comment via email