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