Skip to main content

Migrating to Nikola

I decided I wanted to migrate away from Drupal but I still wanted something similar to manage my blog content. However, I also wanted something to be able to format code for the times I wanted to publish source code of SQL, Shell Scripts. Python or whatever.

My first stop was to look at Markdown (used in places like github). And there were a variety of products that supported Markdown (aka MD) including Hyde, Jekyll, Octopress, Pelican, Sphinx, and Nikola.

I was in the middle of learning Python so I chose to focus on Pelican and Nikola since they were both written in python. I felt that if there were any issues, I could at least debug the source code of either generator and fix it myself. Both had a series of plug-ins that would give me flexibility to extend the capabilities.

As I looked into Markdown, I was impressed with the features and how using a simple text editor I could create content for my blog and still make it somewhat "pretty" by adding some limited formatting commands (things like italics, lists, and bolding text) as well as the ability to include pictures (or diagrams). So having settled on using either Pelican or Nikola, I started with Pelican (it seemed to be more popular) and created some blog posts and created the blog to view it. It looked pretty good, but I couldn't display the "gallery" of pictures I was looking at. This was probably user error on my part, but I could never figure out how to render the sample pictures I wanted. So I attempted to do the same things with Nikola and it was more successful for me after a quick test.

As I played with Nikola, before I rolled it out onto my primary web site, I discovered that Nikola supports reStructured Text (RST). This was very similar to Markdown, but it allowed some extensions to support things like syntax highlighting (color coding source code to make it more readable). This really sounded like what I was looking for.

It took some time, but I finally converted most of my blog over to RST and published it to my web server. My main page now loads in about 300ms and my formatting is a lot simpler.