R.I.P. Tinkerer, welcome ABlog¶
Tinkerer is dead, or in the words of its author: retired in favor of Baku.
Baku is much simpler, uses Markdown and is not based on Sphinx. But Sphinx was the reason I chose Tinkerer in the first place, so I looked for alternatives and found ABlog.
ABlog imposes less restrictions on the directory layout of the source files. Which is a good thing because it means the directory structure of the old blog could just be copied and the URLs of the old blog posts stay the same.
Tinkerer uses some custom reStructuredText directives to markup blog posts,
while ABlog basically uses just one directive with arguments. A little script
to replace the directives from Tinkerer with ABlogs .. post::
directive
was quickly written.
Tinkerer markup with directives:
.. author:: default
.. tags:: a tag, and another tag
.. categories:: Example, Post
.. comments::
.. more::
Translated by the script to the ABlog post directive:
.. post:: 2023-07-28
:author: default
:tags: a tag, and another tag
:category: Example, Post
:comments:
:excerpt: 1
The post date is generated from the directory structure of Tinkerer which is
<year>/<month>/<day>/
, so this information is somewhat redundant. But this
is neccesary as ABlog allows any directory structure for the blog post
sources.
The .. more::
directive becomes the :excerpt:
argument and this needs
some manual tweaking after conversion. Unfortunenately ABlog doesn’t use the
content of the rendered blog post as is to generate an excerpt for the various
listings but extracts the first n paragraphs of text from the post. So any
special markup like admonitions, code listings, or raw html get lost in post
listings.
For instance the canvas element in Chasing a dot on a HTML5 canvas can not be seen in a post listing. Which is the only major drawback I’ve found so far in ABlog.
I’ve ported the hidemail extension from Tinkerer for the :email:
role to
obfuscate e-mail addresses. Damn those spammers…
For now the blog uses the default Alabaster theme. Maybe I keep that, or maybe I try to write my own theme that resembles the modern5 theme of Tinkerer later.