Okay! I’ve migrated my blog to Jekyll (and GitHub).

I followed this tutorial: https://girliemac.com/blog/2013/12/27/wordpress-to-jekyll/

Notably since I ran a very old WordPress blog, I had to manually copy over all the images and things NOT found in the /assets/ folder. This has made my tree a bit less organized (/assets/wp/, /wp-includes/) but at least it’s all there.

Repo is here: https://github.com/mikekasprzak/blog

(not that anyone other than me cares)

Other Setup issues

The default layout Jekyll doesn’t show any post content, just a list of posts. This required some tweaking of the scripts.

Jekyll themes are implicit. If a file exists in your layout, your version is used instead. Files use liquid syntax: https://gist.github.com/smutnyleszek/9803727

I’m using the minima theme as my base: https://github.com/jekyll/minima

Doing a gem install minima installs the theme in /var/lib/gems/2.3.0/gems/minima-2.3.0/.

This post here suggested how to show the first post, but neglected the actual render code: https://stackoverflow.com/questions/17890493/how-can-i-show-just-the-most-recent-post-on-my-home-page-with-jekyll

This Gist included the correct code: https://gist.github.com/nimbupani/1421828

Notably you can only include files in the _includes folder, so you can’t just use the default article renderer without moving it.

The problem with the above code is markdown is disabled. This thread lists solutions: https://github.com/jekyll/jekyll-archives/issues/28

The one I used is content | markdownify.

In closing

Below is the default Welcome text, just as a reminder.

Welcome to Jekyll!

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

To add new posts, simply add a file in the _posts directory that follows the convention YYYY-MM-DD-name-of-post.ext and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

Jekyll also offers powerful support for code snippets:

def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.

Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.