My DasBlog-based blog at http://www.georgevreilly.com/blog/ has been out of commission for months. I’ve been meaning to replace it for a long time, but I only just got around to making a serious effort, as I realized that otherwise I would have no posts at all for 2014. I received only a handful of complaints about its absence; if there had been more, I would have fixed it sooner.
DasBlog is a fairly lightweight blogging engine that runs on ASP.NET. It doesn’t require a database, but it does require the ability to write XML blogpost entries to the local filesystem. That’s a non-standard configuration for ASP.NET and IIS websites, which inevitably causes problems. Whenever the hosting company moved my site to another machine, the blog always required special handholding to get it running again. The CTO of the hosting company has graciously hosted several sites of mine at no cost for a decade, for which I’m thankful. (I worked for him at another company in the mid–90s.) Although DasBlog has served me well for that decade, I’ve grown tired of it and of dealing with hosting problems.
I’m in the process of moving the blog to a static website generator, where I generate all the HTML and other files on my own computer, and upload those generated files to the website. Since there’s no dynamic code running on the server, there’s very little to break down—or to be broken into. I did this two years ago for the Northwest C++ Users’ Group website, when I moved it from a hosted instance of the Joomla CMS to a static website generated by Pelican at Github Pages.
Hundreds of static site generators exist, but I had two criteria that reduced the list to three contenders, Acrylamid, Nikola, and Pelican. The SSG had to support reStructuredText markup and I strongly preferred that it be implemented in Python, as that’s been my primary language since 2008.
I have all 800+ of my old blog posts in reStructuredText files. My old process had been to craft a reST-formatted blog post in Vim locally, then to paste the generated HTML into DasBlog’s edit form. The new process is still to edit the post locally, but then to run a command to deploy the updated content. I’m a developer. I’m far more comfortable with reST and Vim and Git and command-line tools than I am with writing in some second-rate HTML WYSIWYG editor.
I had extensive experience with Pelican, thanks to the NWCPP website. It works well enough for a pure blog, where you always want the latest post first, but its support for a mixed website where you have other articles is weaker. Also, it’s slow at rebuilding the website since it rebuilds all files whenever there’s a change.
I played briefly with Nikola over Thanksgiving and I no longer recall why I preferred Acrylamid.
Acrylamid is faster than Pelican, though its diagnostics when you have a syntax error are not great. I don’t much care for the default theme but I’ve been too busy to try another one yet.
Mainly over the last few days, I’ve been trying to port my content over to Acrylamid. First, I extracted permalinks from a copy of the original blog which is running in a Windows virtual machine by spidering through all the posts. Then I associated those permalinks with the original reST posts, though many yet remain to be updated. Finally, I’ve been working on a script that modifies the original posts so that they’re structured in the way that Acrylamid wants them, with the right reStructuredText metadata at the top.
The permalinks aren’t quite right, as they all end in .html instead of .aspx, and of course they’re currently on the wrong domain.
As of now, I’m hosting this at http://georgevreilly.github.io/, on GitHub Pages. I may later point the www.georgevreilly.com domain to GitHub Pages, or I may set up my own Linux server later at Linode or AWS or somewhere else.
Unlike the NWCPP website, which is a Project Pages site at GitHub Pages, this site is a User Pages site. The net effect of that is that I have to publish to the master branch of my Git repository instead of the gh-pages branch, which threw me at first.
I’m reasonably happy with the results so far, but more cleanup is required.