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.
_config.yml contains 3 sections, which are explain in more detail below.
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]
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
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 : name : Jennifer Tesolin email : [email protected] location : Toronto (Canada) github : jennifert twitter : jenntes
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