blog/upgrading.markdown
2011-04-17 22:49:30 -05:00

3.7 KiB

Major changes

New Jekyll

Octopress is leaving Henrik's stale fork of jekyll for Mojombo's official Jekyll. Why? Back when Henrik's Jekyll fork was current, it offered some nice features like the option to use Haml and ruby instead of html and the liquid templating system. Switching from henrik-jekyll to jekyll, means Octopress will no longer support Haml layouts (until Jekyll does), but after using Octopress for a year and a half, I can see that it's far better for Octopress to be able to take advantage of the jekyll's active development, than to hold out for full Haml support.

Jekyll is Pluggable

Some new features make the transition worth it. You can write your own plugins which consist of generators, converters, and liquid tags. Now it's much easier to hack Jekyll without forking. I expect to see some great plugins emerge from the Jekyll community, and I'll be adding my favorites into Octopress.

More Than a Starting Point

I initially saw Octopress as the fastest way to get started with a fairly nice Jekyll blog, but now that Jekyll is so hackable, I'm hoping that Octopress will also become a great introduction to hacking Jekyll and a place to find great plugins from the community.

I've already been combing through plugins that other people are writing and I've found some gems. Octopress now has:

  • Sitemap generator - suitable xml for submitting to search engines
  • Haml converter - currently pages and posts can be converted, but not layouts
  • Liquid tag Github gists - embeds gists in a noscript tag for RSS readers and crawlers, then uses Github's javascript to display gists to site visitors

Octopress also has custom filters which work through Liquid's filtering system. I've added these for now:

  • Smart quotes for posts and pages
  • Title case an adaptation of John Gruber's intelligent title capitalization script
  • Absolute urls using '/' as a url opener for relative paths gets converted to an absolute url for RSS readers
  • Ordinal dates dates are output like "October 5th" or "July 3rd"

Of course Octopress still supports simple setup for Twitter, Disqus Comments, Google Custom Search, Google Analytics, Delicious Bookmarks, and now Pinboard Bookmarks.

Upgrading

Unfortunately upgrading isn't as smooth as I would like. Some things have changed that require a bit of fiddling on your part. It's less than ideal, but if you were adverse to fiddling, you'd be using Wordpress right?

Update configs

I've moved configurations out of layouts and into the _config.yml. This means settings like title, url, and twitter_user can be accessed on the site object, eg. site.title, site.twitter_user.

Post dates

Before you could add date and time to the post filename, but for some reason Jekyll is more strict and won't see posts with that format. If you had a post 2009-11-13_14-23-hello-world it should be renamed to 2009-11-13-hello-world, leaving out the time-stamp. If you want to keep the time-stamp data, you can now add dates to the post in the yaml front-matter, eg. date: 2009-11-13 14:23. It seems that you can also use parseable strings like November 13, 2009 2:23pm and Jekyll will generate the proper url and post metadata.

I've updated the new post rake task rake post[title for your new post] to correctly name new posts, and to automatically insert the time-stamp into the yaml front-matter for a new post. This way you can set the time when you want to publish without having to write out the whole post date.

Here are some steps you can take to get your blog running again on this update: