Jekyll - websites in a new(old) way

[Disclaimer: This post is an adapted translation of my original Norwegian post]

I’ve had websites, in one form or another, continuously since 1996. There has been a massive change in the ecosystem, since I started coding simples sites in Notepad). I’ve been through several tools, like Frontpage and Dreamweaver, and platforms like Drupal, Joomla, and of course Wordpress. But since I have to admit that my content production has been somewhat lacking, I’ve felt that these solutions might be overkill, primarily driven by curiosity. By accident, I stumbled across something that got my attention; something that would take my “content publication” back to basics. I found Jekyll.

What is Jekyll?

Jekyll is a tool for generating static websites. It’s developed in Ruby, and uses a combination of templates, and textfiles written in Markdown for content. Using this, it generates a regular website, with pages consisting of HTML, CSS, and Javascript. These can then be hosted on any webserver, since they don’t require advanced features like PHP og databases like MySQL. These also makes them generally faster to load, than dynamically generated websites.

Jekyll is easy to install on your own computer, to enable you to generate the website before it’s uploaded to a server. But the easiest method is actually to let Github handle the hosting. If your not frightened by Git, you can let then generate the website for you on push to you repository, and host it on Github Pages.

There are of course some caveats. You loose some functionality brought by plug-ins, if they’re not used by Github. It can also be a bit cumbersome to commit, push, and wait for the site to re-generate, just to check som minor changes while developing your site. I would recommend installing Jekyll locally anyhow, if not for anything but convenience during development.

How hard is it to get started?

If you consider something like Jekyll, I assume your technical skill level is somewhere above average. With that in mind, I wouldn’t say this will be too hard, if you do some reading before you start. I spent a couple of hours from start, until all content was transfered from Wordpress and my domain pointed towards Github Pages. And when your initial setup is done, the hard part ahead is creating the content.

How hard is it to use?

As many other publishing platforms, Jekyll also separates content from presentation. The big difference is that in Jekyll, the content is stored in plain text-files, instead of a database like in Wordpress. You create (or download) a theme with templates, using HTML, CSS, and Javascript. In these templates you use a shortcode syntax called Liquid, to merge you content and template into a page. The content is written in text files, each per page og post. These get a header called “Front matter”, defining some attributes for the post or page. When building the site, Jekyll goes through all these, and generates the pages.

You can write your content in HTML if you want, but the better choice is using Markdown. What Markdown is, could be a whole new post, but in short it’s created by John Gruber at Daring Fireball, as a easy alternative to HTML-syntex, for formatting text. The markdown syntax is the generated to HTML, when Jekyll build the site.

A small example of Markdown

And this is a bit smaller (H3)

In markdown you can have bold and italic text.

You can link directly or using a footnote.

#### A small example of Markdown

## This is a header (H2)

### And this is a bit smaller (H3)

In markdown you can have **bold**** and *italic* text.

You can link [directly](directly) or using a [footnote][6].

[6]:fotnote

So what’s the conclusion?

It’s easy to be over the moon, when you find something new and exciting. But I feel that Jekyll can serve my purpose going forward. For some people, a platform like Wordpress will be the best solution, but if you just want to share some toughts from time to time and don’t want to manage infrastructure, Jekyll might be what you’re looking for.