Jekyll Powered

I’ve finally moved this site away from Movable Type. I’ve thought quite a bit about how I was going to write my own software to scratch my itches. I started writing pretty rusty-but-serviceable Ruby code to get me there, and then I came across Jekyll. It had a lot of the same goals I had in mind when I started writing mine: it’s written in Ruby, so I’m comfortable hacking and extending it; it renders simply, to a static site structure that can be served with little fanfare; it allows me to post simply by putting a formatted text file (in Markdown, Textile or HTML) in a spot on my server. Best of all, it was farther along than mine.

I initially tried to use the bundled Movable Type migration script, and even worked on it to fix a few problems (it didn’t use the originally authored on date for posts and didn’t include a lot of metadata about the post that was available). Come to think about it, I should send a pull request–that might be useful for someone else. But I ultimately hacked up a converter I wrote to use a Movable Type export file to create the posts for Jekyll. That code is pretty specific to my case, but it could be used pretty easily by someone with a will to get a better export of their data.

Anyhow, this site is now Jekyll-powered, and I’m free to add a few things it’s missing to get me back to having the features I want here, but none that I don’t. Really, the big missing things that were here before are categories, monthly indexes and search. Search isn’t too worrying to me; since everything here is public, I’ll let Google handle the indexing. Speaking of Google, it’s the main reason that I need monthly and category index pages, since that search engine has those pages ranked pretty highly for the site and I want those URLs to resolve to something useful. The categories are a bit of a shame–the category handling in Jekyll is a low point for sure. I exported all of the categories and tags from Movable Type and have them included in each post so once I write some code to expose them, the data will show itself again.

Then I’m planning to add a few things I’ve wanted more control over, but wasn’t willing to invest the time doing on MT. I want good handling of picture-related posts. I’m not sure exactly what that means, but I’ll probably come up with a way to share pictures as a type of post all by themselves, hopefully with a decent way to link up to my Flickr photostream. I also want a way to create posts that have a permanent life here from other sources of data: Twitter, Strava, etc. MT had Action Streams, and I even wrote a quick plugin to support Garmin Connect in it, but I want the data to be persistent like a post is.

Anyway, the basics are in place and now I just have to find some time to code. :)