Hello Jekyll!

October 25, 2015

In A Break I mentioned that I had tinkered with Octopress 2 & 3, experimenting with the idea of converting my blog from WordPress to Octopress. I also stated that I abandoned the idea after a few days, favouring WordPress as more practical on the whole.

But ever since Dockerising ALL THE THINGS I’d been wanting to give it another go. The thing that prompted me to reconsider was that in doing that Dockerisation I had to scale up my web VPS from a 1GB Linode to a 2GB Linode1, adding an extra $10 to the amount I spend on servers per month.

So, having finished what turned out to be basically 6 months of work on Liquidity, I gave it another go. Hence this post.

Fairly early on in the conversion I realised that I actually didn’t need or want Octopress, and that Jekyll alone is sufficient. I’m using jekyll-docker both for local previews and for building the site that gets copied into an Nginx Docker image for deployment.

A summary of the key benefits for me of using Jekyll, relative to WordPress:

The Conversion

I used exitwp to get the process started, along with copying the WordPress install’s wp-content/uploads directory as assets into the Jekyll root of the Git repo that now contains all of the blog source2.

Then I made a series of commits (some automated, some manual) to correct and improve the Markdown sources that exitwp generated.

In my early years using WordPress I was quite liberal with my use of 3rd party plugins and with embedding content from other locations (most notably Google Maps views of cycling routes recorded with My Tracks).

Although I made an effort in the later years to stop and counter the practice3, and although exitwp was a very helpful start, I still had to do a fair amount of work on the generated Markdown.

Key issues that I had to resolve were:

Some of the more trivial changes that I made to the generated Markdown sources follow. I automated most of them using find to exec sed:

  1. That was because in doing the Dockerisation I had elected to make maple.dhpiggott.net’s Piwik install and piggott.me.uk’s WordPress install have their own MySQL containers. I could have made them share one and would probably have then been able to stick with the 1GB Linode, but having them isolated was just a much more maintainable and practical setup.
  2. Prior to the conversion it only contained the configuration and machinery used for deploying and maintaining the WordPress install, but not the actual WordPress data itself.
  3. Most notably by exporting the My Tracks routes and spreadsheets from Google, hosting my own copies as WordPress uploads, and editing posts that had embedded Google Maps views of the routes so they were instead displayed using the WP GPX Maps plugin to render views of the KML route files.
  4. The majority of posts from 2009 to 2011 are records of individual bike rides. On the one hand, it wasn’t a bad habit to be in, as it can’t have been bad for my motivation, but on the other, it hardly makes for interesting reading. Recognising that, I started in 2012 to periodically log multiple rides in a single post. In 2013 I stopped using My Tracks and switched to Endomondo, which I continue to use today. It logs more than enough in the way of data for me, and my blog is now hopefully less samey.
  5. I’m not showing categories anywhere now, but have changed them to tags rather than deleting them because that could change.