So I have been working away in the background on the migration of my blog away from the Apache Roller powered blog platform that I currently use. One of the issues that annoyed me, and I never got around to fixing (although it would probably have been easy to fix), is the fact that all my posts appear at a URL that includes the word "blog" twice. It was redundant, and irritated me, and because I never fixed it, removing that means that when I migrate the blog I'll need to set up a redirect for the old links to still work, which also annoys me, but is the cost of this migration I suppose. So I am going to do a review of the process, what I wanted to do, how far I have got, how I did it, and what is left to do.
The first thing I wanted to do is build a static site with roughly the same layout as my current site. This I decided to do in Jekyll, a decision I must admit was made before I did the requirements capture I was so keen on at the start. I have largely completed this as far as layout goes for the site, but I still need to include content on most of the pages. I didn't much like the default "minima" theme Jekyll includes for new sites, so I have largely replaced this with one I have written from scratch based on my current website. This was made easier as the way themes work in jekyll is based on including files that hold common parts of a webpage, with variables for things like page titles etc, and this is very similar to how I had built my site in PHP, so it made sense on that level. The syntax of these included files is different, but that was no great barrier. As with everything I do in web design, it's a work in progress, I'm not a great designer, so it probably always will be.
I wanted to make sure I could get all the content from my current blog without having to manually copy it across, including features like showing posts with a given tag, and showing a tag cloud, and an RSS or ATOM feed for people to easily follow my blog. As I mentioned in my last post I have managed to do this with a pull request to the official jekyll-import project. There are a few tweaks that I may need to do to that for completeness, particularly around data around comments (my blog doesn't have many comments, but that doesn't mean it won't be useful to other users). And the team who manage that project would like to see tests, which doesn't seem like an unreasonable request for future changes. For the pages for posts by tag, and so that I don't end up with one massive page of all the posts, but that they are split up into smaller pages I'm using the jekyll-paginate-v2 plugin, and the auto pages feature. For the Atom Feed I'm using the jekyll-feed plugin, which was all but installed and configured out of the box. The tag cloud was more involved, and meant using the features of jekyll to pull all of the tags out and sort them based on their usage. It didn't need a plugin as such, but it did take more effort than I expected it too. I may share the code for that down the line, maybe in my first blog post created in Jekyll, who knows. The layout of the blog turned out to be one of the easier parts of this process, jekyll allows you to set a "permalink" and this was easy to extract from the Roller Database.
This whole process has been reasonably straight forward, and it is only through laziness, and lack of free time, that it has taken me this long to get to this stage. I haven't solved the issue of allowing comments, but as I have a total of 3 comments against 49 blog posts I'm not too worried about that right now. There are various cloud based commenting options out there, I may look into it in more depth later.