Since I don’t know how to have two versions of Jekyll on a single computer (without using a VM, I mean), I installed jekyll 2.0.3 on my MacBook Air. (Up to now, I’ve written this blog on my awesome Mac Mini.)

Set up Ruby Environment on my MacBook Air

I more or less followed the directions here.

Installing Jekyll 2.X on my MacBook Air

I more or less followed the directions here.

Setting up the blog on my MacBook Air

I created a completely new location for the blog since I want to stop using the jekyll theme that I have been using. In that directory I generated a new jekyll source directory ($ jekyll new george.entenman.name).

$ cd ~/Dropbox/ge/george.entenman.name.jekyll2
$ jekyll new george.entenman.name

This created the base system with a sample post (the original version of this page).

Then I selectively copied my posts, pages, assets, CNAME, etc. to the new directory. It has worked very nicely and I like the simple look of the default theme.

Don’t forget the CNAME file

I did scare myself a bit when (http://george.entenman.name)[http://george.entenman.name] suddenly stopped working. After looking at the github docs, I realized that I hadn’t copied the CNAME file to the new directory. Things work now.

Workflow

Create a post

For example, this post is located in a file named _posts/markdown/2014-05-16-move-to-jekyll20.markdown.

This post has this header:

---
layout: post
title:  "I've moved my blog to Jekyll 2.0"
permalink: /markdown/jekyll/2015-05-16-move-to-jekyll20.html
date:   2014-05-16 14:12:54
categories: markdown jekyll
---

Test the post by generating the HTML from the markdown source and viewing it locally at http://localhost:4000.

$ jekyll serve

By the way, I keep the local copy of the website in a separate directory from the source by adding the following directive the the _config.yml file:

destination: ../ge.github.io

Given the location of the jekyll source, this outputs the HTML pages into ~/Dropbox/ge/george.entenman.name.jekyll2/ge.github.io.

How to upload my jekyll blog to github

On github.com, I created a repository named ge.github.io.

On my Mac:

I told jekyll to output its pages into ~/Dropbox/ge/george.entenman.name.jekyll2/ge.github.io.

After creating my post file, I generate the HTML site:

I then generated the pages:

$ cd ~/Dropbox/ge/george.entenman.name.jekyll2/george.entenman.name
$ jekyll build

Then I put the pages onto github (use my github passphrase):

$ cd ../ge.github.io
$ git init
$ git add .
$ git commit -m "jekyll 2.0 blog"
$ git remote add origin git@github.com:ge/ge.github.io.git
$ git push -u origin master

The site will now be visible at http://ge.github.io/.

Because I also have a CNAME file containing the line george.entenman.name, and because I’ve set up a CNAME record at my domain name service, the site is also visible at http://george.entenman.name.

It was amazingly hard and confusing to figure out how to do something so simple. The clues are scattered all around, but I seem to have finally assembled them into a coherent story. Whew!

Enhancements

Fix CSS

I need to fix the stylesheets so that photos are smaller, centered, etc. I’ve done that with the earlier version of this blog, so that shouldn’t be hard.

Excerpts

I want to add a short excerpt to the post list in index.html. I don’t think that will be hard since the posts themselves already contain the necessary code.

Use Jekyll without installing it on my computer

It looks possible to simply write my posts on my computer and then push them to github and let github turn them into HTML and serve them. This appears to be very simple. I wonder… Currently there are no markdown files there, only html files.

Original Jekyll Sample Post

You’ll find this post in your _posts directory - edit this post and re-build (or run with the -w switch) to see your changes! To add new posts, simply add a file in the _posts directory that follows the convention: YYYY-MM-DD-name-of-post.ext.

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.