Switching to a website generator that fits my schedule
In working with Hakyll the biggest problem was my lack of familiarity with Haskell, and my lack of time to learn it sufficiently to feel comfortable with the software. After a while I started to get irritated by my lack of understanding, and decided that (unless I dedicated more time to learning Haskell) I needed to move over to something in a language I was more familiar with (Python)... thus the move to Acrylamid.
Installing on FreeBSD turned out to be relatively simple, given that the
software is available for install using easy_install
or pip
. I chose pip
because I have an issue with software that cannot be easily uninstalled.
Acrylamid was installed using the following incantation.
# pip install acrylamid
On my system, that actually installed a few other packages in addition to acrylamid, specifically Jinja2, Markdown (in python), and translitcodec.
Configuration took a bit more finagling than I expected because the tokens for
the hour and minute of publication were not available when generating each post.
As a result I requested a fix via pull request which was accepted
within a day. Unfortunately the fix only applied to the current development
branch, not the release available via pip. The lack of a release which could be
installed via pip
was not a show-stopper, because the procedure to have pip
install from a git repository was well documented and only
required pointing pip at my forked repository.
# pip install git+git://github.com/sinecure/acrylamid.git
Another speed-bump was how to set the timezone within each post. Because of
previous conversions I had laboriously converted all time/date stamps to UTC
time, and it was not obvious how to indicate the timezone within the post ("UTC"
was not accepted with one error, "+0000" was not accepted with another).
Luckily, I found others had encountered a similar difficulty, and the solution
to my problem (setting TZINFO = "UTC"
in conf.py
) was in the
comments.
The next piece of the puzzle was getting all the ancillary files which may be
with a post (image/video/text files) into the same directory as the post. This
was easily solved using the STATIC definition in the conf.py
file, and
translating the (hand-named) post directories to the standard "slug" format. It
turned out the slugs are generated using a public domain python
function.
Overall, this was a relatively painless and simple process requiring minimal time before the site was transferred. Most of the delay was in the actual conversion of date/time information to a format without timezone information, and a few errors by the operator (me) along the way.