November 8 2013
Why I moved from Wordpress to Jekyll
I started bdunagan.com in 2008 using Wordpress. Made sense. Wordpress was a solid blogging system that I could self-host. The anti-spam comment system, Akismet, was exceptional. There were lots of plugins to extend functionality, like syntax highlighting and related posts. I liked the control it offered, compared to other sites like Tumblr, and by self-hosting, I could tweak the PHP when necessary. Wordpress worked well.
By 2010, I found myself editing the live site a bit too often. I switched to using a staged site—slight overkill but whatever—and managing the system with Git. I could make changes on the staged version, test them out, commit and push them, then switch to the production site and merge them in. I could also backup the Wordpress database using “mysqldump –skip-extended-insert” to see individual row changes in the diffs. I wrote a post about the workflow. Using Wordpress with the Git safety net worked better.
Five years on, I’m tired of Wordpress. It’s a complete content management system, designed for people who don’t code, and I’m not the target audience. I want something closer to the metal.
Enter Jekyll
(Not that Jekyll is new. @mojombo’s first commit was two months after I started using Wordpress. I’m a late adopter.)
Jekyll is optimized for coders. It installs as a Ruby gem, leverages other gems to provide modular features like markdown support and syntax highlighting, and compiles text files into static files that you can host wherever, including @mojombo’s company—GitHub. Clean and transparent.
Migrating from Wordpress to Jekyll was remarkably easy. jekyll-import converted my local Wordpress db into a set of markdown files under _posts. I replaced the old markup for syntax highlighting with the new markup and de-htmlify entitles like < and >. I also updated Jekyll’s config.yml to use my Wordpress-style permalink, so that existing Google results continue to work. For a theme, I went with @muan’s scribble. It vaguely matched my Wordpress theme (a variant on the popular DePo Clean theme), but scribble was far cleaner and more responsive.
Overall, it took a day of futzing with Wordpress and Jekyll and then another day of futzing after I got the content into Jekyll.
Onward.