Half the fun of having a blog is migrating to new technologies. Today, I made the move from Wordpress to Jekyll because jekyll leverages git, ruby, sass and other open-source technologies.

Best of all I can write my web pages in a markdown language (kramdown actually) using my programming editor, Textmate. I can even display fancy source code snippets:

Timecop.freeze(10.years.ago)
apple = Investment.new(10000)

If only that worked in real life.

Installing was easy

Read the Jekyll Documentation – it’s beautiful.

  • I have a Mac, so I already have ruby installed.
  • gem install jekyll downloads the code to run locally
  • jekyll new ibeck created my new ibeck web folder with sample files
  • jekyll build --watch compiles my pages as I save them
  • jekyll serve starts a local web sever at http://localhost:4000 to preview the site

Enter a few simple settings in _config.yml:

title: iBeck.com
email: chris@ibeck.com
description: Ruminations on technology, faith, sports, food and life.  Did I miss anything?
twitter_username: ccmcbeck
github_username:  ccmcbeck
markdown: kramdown

And I’m ready to start blogging!

Editing is fun

Just modify the sample post in the _posts folder and follow the Jekyll Guide on Posts. Here is what the previous sentence looks like coded in kramdown:

Just modify the sample post in `_posts` using `kramdown` following
the [Jekyll Guide on Posts](http://jekyllrb.com/docs/posts/).

No HTML. No muss. No fuss. jekyll compiles everything into your _site folder which is thoughtfully included in your default .gitignore.

Deploying was easy

There are lots of ways to deploy a Jekyll site:

Amazon S3

If you don’t have a server follow this recipe:

  • gem install s3_website to be able to deploy directly to S3
  • s3_website cfg create to generate an s3_website.yml
    • Enter your s3_id, s3_secret, s3_bucket into s3_website.yml
  • s3_website cfg apply to connect to your S3 bucket
  • s3_website cfg push to transmit your pages to S3

Rsync

If you have a server follow this recipe:

rsync --compress --recursive --checksum --delete _site/ user@ibeck.com:/public_html

What’s next?