Slide 1

Slide 1 text

1

Slide 2

Slide 2 text

Jekyll is a parsing engine bundled as a ruby gem used to build static websites from dynamic components such as templates, partials, liquid code, markdown, etc. 2

Slide 3

Slide 3 text

A static site generator is a program that takes a series of files (like template and contents) generates your website with them. The “blog aware” part means that is more oriented towards the creation of a blog or a website with post‐like entries. 3

Slide 4

Slide 4 text

Although jekyll is oriented toward the creation of blogs it is not a blogging software. It does not come templates or any content. You have to build everything. 4

Slide 5

Slide 5 text

FAST Everything is static so it’s server fast. There’s no server processing, database queries to worry about. Small learning curve It easy to understand how jekyll works and how to use it. After you know its structure and some liquid templating you’re ready to go. No need to rely on server side technologies You don’t need to worry about updates, you don’t need to worry about one of your fancy server plugin being compatible with the last release of php. And you don’t need to worry about security issues. Scenario: If we have a big blog with lots of monthly traffic, what do we do in the end? We’ll implement some kind of caching mechanism and serve static pages. Jekyll only does that before publishing the website. 5

Slide 6

Slide 6 text

The basic structure of jekyll consists on four directories, one config file and the index. All jekyll directories and config files start with na inderscore and there’s a reason for that. These files will be used by jekyll and will not be copied to the _site directory. 6

Slide 7

Slide 7 text

_layout In the layout we have the templates for our pages and posts. Normally we have two templates, a default one (where you decalre the html, head, body) and a post template with the post structure. _post On the _post directory we have the actual content. The naming of the posts is important. They have to be named YEAR‐MONTH‐DAY‐title.markup. Jekyll needs this naming to be able to order the posts. As for the markup of the post it can be either markdown or textile _includes It’s pretty self explanatory. Any partial file you want for your layouts. _site The _site directory is where jekyll will place the rendered website. In the end you will only need the contents of this folder. Other folders and files that you create will be parsed and copied to the _site directory as long as they don’t start with an underscore. So, for example, you could have a folder for your assets, like css, js, images… 7

Slide 8

Slide 8 text

The config file holds the configuration for the website and all the custom variables added to this file will be available site wide through the site variable 8

Slide 9

Slide 9 text

The front-matter is what makes jekyll, jekyll. Every file that contains the YAML front matter as the first thing will be processes by jekyll as a special file. If you don’t add this, the file will be copied over as is. Between the dashed you can set values for predefined variables, like the layout you want to use, or add new variables that will be accessible when you are printing the post. 9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

Github actually runs a jekyll server so you only need to push the jekyll files and not the rendered website. Github will render it for you every time there’s a commit 11

Slide 12

Slide 12 text

Since it’s only html you can even host it on dropbox. And of course you can use any existent web server. You can find some interesting deploying scripts to render your website and put it automatically on a web server. 12

Slide 13

Slide 13 text

Here is some extra stuff that can improve jekyll even more. Disqus, will allow you to have comments on your website, which is great for a blog. With this you can still have your fast static website and, at the same time, allow community interaction. The jekyll-ga is a plugin that allows you to sort your posts according to google analytics metric for example the page views. As we saw, jekyll sorts the posts by date but with this plugin we can, for example, sort it be popularity. What must be taken into account is that jekyll will sort the posts when the website is build, so, to keep the sorting up to date you would need to rebuild the website periodically. 13

Slide 14

Slide 14 text

14