Zac Blanco     Blog     Education     Projects     About

Adding Flavor to Jekyll

So you’ve got your Jekyll site running, you can write some posts, but it still doesn’t feel like your own.

This is where Jekyll can be awesome, but also slightly confusing.

At the core, Jekyll takes a markdown file and uses it’s templating system called liquid to help insert html and structure pages, and all of this is then converted into static html files that can be served on a web server.

For the rest of this post I’m going to assume that you at least know how to build your site with Jekyll and serve it locally to your web browser.

Liquid

I’m going to breeze over liquid right now, but I suggest that you take a look at the liquid templating features in Jekyll.

To be brief, liquid allows us to pull sitewide variables and html code and place them right into our pages with ease.

In your posts and any pages on your Jekyll site by calling sitewide variables to insert values into your pages. In one of your posts, try adding the following.

##### [Homepage]({{ site.url  }})

The previous code should produce a link that directs you to your blog’s homepage. See below for it in action!

Homepage

Changing the Style of Your Site

Jekyll has a whole host of themes that can change the look of your site. This includes downloading and installing prebuilt themes, or diving straight in to the sass, css, and _layouts foldera of the site to change how it looks.

sass and CSS

No, this sass is not the same thing that you gave to your mother when you were a teenager. Sass is a version of css that can be run through a compiler to compile css. If you’d like to learn more about sass, click here

Take a look inside the css or _sass folder within the directory of your jekyll site. Although these files are not .css files, you can still write normal css, and if you know sass, you can write sass too. The files that you modify will change the corresponding sitewide visuals based on those files.

_Layouts

The _layouts folder is where you can write html templates for certain types of pages on your site. There should currently be at least one layout with the name default, page, and post. These names are the same names you will specify in the yaml at the beginning of a post, or page that you write. An example of the yaml header for this page is:

    ---
    layout: post
    title: Adding Flavor to Jekyll
    tags: [jekyll, poole, site, css, web]
    ---

We can see that the layout type for this post is post which tells Jekyll to use the post.html layout to format and style this page. You can also edit these files to change the look of your site.

Poole

Personally on this site I use a theme called Poole. If you would like to use this theme for your own site you can download and replace all of the layout and css files with the ones from Poole. It’s a very simple and easy to use theme. Follow the documentation for the installation procedure.

Wrapping Up

Hopefully from here you can better understand how Jekyll generates the site pages on your site. A bit of research and some work can make your site unique! You can also add new features and pages too by using the layouts and css files too.

I hope now that you have enough knowledge about the structure of a Jekyll site to be able to customize it to your liking.