Things I needed to know about Jekyll.

tl;dr: Go read about template data availlable in jekyll.

While jekyll is quite cool, what I needed to know about it was in a few different places.

Structure

Jekyll uses a specific folder structure, which you need to (more or less) follow to have it generate your site:

$ tree .
├── _includes                          # for use around your site
│   ├── footer.html
│   ├── navigation.html
│   └── style.html
├── index.html                         # you may know this
├── kisses.css
├── _layouts                           # layouts
│   ├── default.html
│   └── post.html
├── _posts                             # your posts, using markdown or textile
│   ├── 2012-05-03-anfangen.md
│   └── 2012-05-10-things-i-needed-to-know-about-jekyll.md
└── _site                              # the generated site

If you need to know more than this, read either the author's original blogpost about Jekyll or the wiki.

Markup

Each file that begins with a YAML front matter is considered a liquid template by jekyll. That is, you write your content as usual but use specific markup to insert other generated content into it.

Here's an example from my _layouts/post.html:

<article id="rambling">
    <h1>{{ page.title }}</h1>
    {{ content }}
    <footer class="article-meta">
        <p><a href="/p/me">lu</a> has written this sometime around
        <time date="now">{{ page.date | date: "%h %Y" }}</time>.</p>
    </footer>
</article>

There are better places to read more about liquid in general, some filters such as | date: "%h %Y" used above or jekyll's liquid extensions.

Template data

I was already familar with templating languages such as liquid or mustache, but I didn't know which data was availlable in jekyll's templates.

The ones you need to know are listed in here.

So, the site your viewing is open-source, as are many other sites.

Oh, jekyll is a text-based, static and possibly extensible site-generator (aka. blogging engine).