Moving From Wordpress To Jekyll - Part 1
When I first started this blog I started with Wordpress because I already knew how to use it and it was SUPER easy to get going. 4 years into this process I’ve started looking around for alternative CMS projects because of annoyances I’ve run into with Wordpress. I started looking at static site generators because of the performance I knew it bring and Jekyll seems to be one of the more prominent players in this space (I’m actually writing this using my new Jekyll setup and I’ll post it into my Wordpress setup when I’m done).
Installation
Install Jekyll is easy if you already have ruby installed:
$ gem install jekyll
Getting Started
Starting up the site on my local computer was fairly straight forward:
$ jekyll new jekyll.tpt.com
And then testing and generating the site is easy too.
jekyll serve
Configuration file: /Users/scottkeckwarren/Projects/jekyll.tpt.com/_config.yml
Source: /Users/scottkeckwarren/Projects/jekyll.tpt.com
Destination: /Users/scottkeckwarren/Projects/jekyll.tpt.com/_site
Generating...
done.
Auto-regeneration: enabled for '/Users/scottkeckwarren/Projects/jekyll.tpt.com'
Configuration file: /Users/scottkeckwarren/Projects/jekyll.tpt.com/_config.yml
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
It even automatically regenerates the site when there are changes.
Moving over my Existing Content
Posts
Jekyll provides a WordPress importer that’s fairly easy to use:
ruby -rubygems -e 'require "jekyll-import";
JekyllImport::Importers::WordpressDotCom.run({
"source" => "wordpress.xml",
"no_fetch_images" => false,
"assets_folder" => "assets"
})'
It appears that all of my content was moved over correctly (I haven’t gone through every post to check) but there were a few annoyances…
One of the things I didn’t like was that it placed all my posts inside a single folder. It was easy enough to fix but it was annoying:
cd _posts
mkdir 2015
mv 2015-* 2015/
mkdir 2014
mv 2014-* 2014/
mkdir 2013
mv 2013-* 2013/
mkdir 2012
mv 2012-* 2012/
Another annoyance is that instead of putting my information in a single file and refer to it everywhere all the meta-data for my authors are listed at the top of the post:
meta:
_edit_last: '3'
author:
login: warren5236
email: warren5236@gmail.com
display_name: Scott Keck-Warren
first_name: Scott
last_name: Keck-Warren
That meta:_edit_last
part even shows up on all of the pages…
Comments
Because Jekyll is a static site generator it doesn’t have a built in comments system. Luckily it was easy to move my existing comments to Discus. I’m actually happier about this because it means less bots trying to spam my site
Overall
Overall, I’m very happy with the switch so far. I wouldn’t suggest any of my non-technical family members or clients use Jekyll but I’m happy. I still have some cleanup and I want to learn how to write a new layout but I’ll work on that.
The biggest downside I’ve seen so far is that now that I have 300+ posts it takes a longer time to generate the site. Even if I just change one file it regenerates the entire thing… Edit: I’ve found a fix for this.
Regenerating: 1 file(s) changed at 2015-12-16 20:48:25 ...done in 2.255741 seconds.
I still have some playing to do but I think I’ll be very happy here.
Scott Keck-Warren
Scott is the Director of Technology at WeCare Connect where he strives to provide solutions for his customers needs. He's the father of two and can be found most weekends working on projects around the house with his loving partner.
Top Posts
- Working With Soft Deletes in Laravel (By Example)
- Fixing CMake was unable to find a build program corresponding to "Unix Makefiles"
- Upgrading to Laravel 8.x
- Get The Count of the Number of Users in an AD Group
- Multiple Vagrant VMs in One Vagrantfile
- Fixing the "this is larger than GitHub's recommended maximum file size of 50.00 MB" error
- Changing the Directory Vagrant Stores the VMs In
- Accepting Android SDK Licenses From The OSX Command Line
- Fixing the 'Target class [config] does not exist' Error
- Using Rectangle to Manage MacOS Windows