Skip to main content

Jekyll: The configuration file

The Jekyll configuration file (_config.yml) houses important information for your site. This post highlights some items used in my previous homepage that used Jekyll Github repository to build as a static site.

This file has quite a few areas of editing, especially if you want to override some of the default Jekyll options.

My _config.yml contains 3 sections, which are explain in more detail below.

Site Settings

This section define what and where your site is.

  • title: This is usually your company name, etc.
  • description: is used to fill in the meta-tag for description.
  • baseurl: As the official docs put it "serves the site from specified URL". Do NOT include your host name.
  • url: the url of your blog
  • timezone: What time zone your in. Be sure to use a format such as: America/Toronto, or America/New_York.
  • plugins: Any plugins that the site uses.
# Site settings
title: Jennifer Tesolin
description: "This is Jennifer Tesolin's personal web site. Located on this site are tutorials and tips for web developers."
baseurl: ""
url: "https://jenntesolin.com"
timezone : "America/Toronto"
plugins: [jekyll-paginate]

Build Settings

This section will tell Jekyll how to and what files to use to generate your production site.

  • exclude: this section tells Jekyll what not to include in your build. Format is: [file1, file2]
  • markdown: Which markdown flavour you will use with your site
  • markdown_ext: file extensions you may use for markdown files.
  • permalink: what your website links will look like. For example: /blog/:year/:month/:day/:title/
  • paginate: how many articles do you want to see per page (as an integer number)
  • paginate_path: what site link format your paginated results will be. In format: "blog/page:num"
  • gems: Jekyll specific gems included in the build file.
  • names: your site name
  • feed path: location of rss/atom file
# Build Settings
exclude: [Gemfile, Gemfile.lock, README.md, vendor, bin,changelog.md,wordpress.xml,package.json,Gruntfile.js,node_modules, .ruby-version]
markdown: kramdown
markdown_ext:  markdown,mkdown,mkdn,mkd,md
textile_ext:   textile
permalink: /blog/:year/:month/:day/:title/
paginate: 10
paginate_path: "blog/page:num"
gems:
  - jekyll-feed
name: Jennifer Tesolin Website
feed:
  path: atom.xml

Author information

This section is used to display information on the company/site owner using information such as name, email, twitter handle, Github repository, location, etc. The sub information must be 1 tab under "author:"

author :
  name : Jennifer Tesolin
  email : [email protected]
  location : Toronto (Canada)
  github : jennifert
  twitter : jenntes

Issues encountered

Unfortunately, it seems like new elements can not be created and used in other files. For example, when converting this site to Jekyll, I was unable add other social network item I entered under the author section to then use the links in the include/footer.html and humans.txt file.

Additional information and elements

The Configuration Docs from the Official JekyllRB site is a must read. They include a ton of useful information and other tags that you can use in your file.

Bonus: Git ignore for Jekyll

Here is a sample of my git ignore file:

# OS X / Windows Files
.DS_Store
Thumbs.db

# NODE
.node_modules
node_modules
*/node_modules
/node_modules/*
npm-debug.log
package-lock.json
.env

# JEKYLL
.sass-cache/
.jekyll-cache/
.jekyll-metadata
.rvmrc
*.gem