As promised, GitHub Pages has moved to the Jekyll 3.1 branch with an upgrade to Jekyll 3.1.6. Jekyll 3.1 brings significant performance improvements to GitHub Pages. By using Liquid::Drops, rather than Ruby Hashes, Jekyll now calculates document and site metadata on demand, rather than calculating every possible value at build time.

While this should be a seamless transition for most GitHub Pages users, we recommend that all users test locally using the GitHub Pages Gem before pushing. This ensures that your site will continue to build as expected. Three things to note as you upgrade:

  1. All front matter defined in layouts are now accessible only via {% raw %}{{ layout }}{% endraw %}. In you define a variable width: full in your layout’s YAML front matter, access it with layout.width.
  2. The inheritance of front matter values properly merges a child layout’s front matter over its parent’s front matter. If you define a variable color: purple in a layout called post which has a parent layout of default, and you define color: blue in the default layout, then {% raw %}{{ layout.color }}{% endraw %} will be purple. For more on this, read the pull request that made the change.
  3. If you are using the Jekyll Bootstrap theme, you must update the contents of _includes/JB/setup to use {% raw %}{{ }}{% endraw %} instead of {% raw %}{{ }}{% endraw %}.

Beyond the performance improvements, Jekyll 3.1.6 includes over 100 changes, including many bug fixes, both to the rendering process and to the experience of previewing Jekyll locally.

For a full list of changes, see the Jekyll changelog and of course, if you have any questions, please get in touch with us.