This document describes all Jekyll plugins used by the site.
Plugins are configured in two places:
plugins:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jemoji
- jekyll-include-cache
- jekyll-redirect-from
group :jekyll_plugins do
gem "jekyll-paginate"
gem "jekyll-sitemap"
gem "jekyll-gist"
gem "jekyll-feed"
gem "jemoji"
gem "jekyll-include-cache"
gem "jekyll-algolia"
gem "jekyll-redirect-from"
gem "kramdown"
gem "liquid"
end
Purpose: Splits blog posts across multiple pages.
Configuration:
paginate: 7 # Posts per page
paginate_path: /page:num/ # URL pattern
Output:
/ - First page (posts 1-7)/page2/ - Second page (posts 8-14)Usage in Templates:
Paginator Object:
| Property | Description |
|———-|————-|
| paginator.posts | Posts on current page |
| paginator.page | Current page number |
| paginator.total_pages | Total number of pages |
| paginator.previous_page | Previous page number |
| paginator.next_page | Next page number |
Purpose: Automatically generates sitemap.xml for search engines.
Configuration: No configuration needed.
Output: /sitemap.xml
Excluding Pages:
---
sitemap: false
---
Purpose: Embed GitHub Gists in content.
Usage:
<script src="https://gist.github.com/username/gist_id.js"> </script>
<script src="https://gist.github.com/username/gist_id.js?file=file.rb"> </script>
Example:
<script src="https://gist.github.com/hwschuur/abc123def456.js"> </script>
Purpose: Generates Atom feed for RSS readers.
Configuration:
atom_feed:
hide: true # Hide feed link in footer
Output: /feed.xml
Customization:
feed:
path: atom.xml # Custom path
excerpt_only: true # Only excerpts
posts_limit: 20 # Limit posts
Purpose: GitHub-style emoji support.
Usage:
This is great! :+1:
I love Jekyll :heart:
Common Emojis:
| Code | Emoji |
|——|——-|
| :+1: |
|
| :heart: |
|
| :rocket: |
|
| :star: |
|
| :warning: |
|
Full List: Emoji Cheat Sheet
Purpose: Caches include files for faster builds.
Usage:
<div class="masthead">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
<a class="site-title" href="/">
Henk van der Schuur</a>
<ul class="visible-links"><li class="masthead__menu-item">
<a href="/">Home</a>
</li><li class="masthead__menu-item">
<a href="/work/">Work</a>
</li><li class="masthead__menu-item">
<a href="/contact/">Contact</a>
</li></ul>
<button class="greedy-nav__toggle hidden" type="button">
<span class="visually-hidden">Toggle menu</span>
<div class="navicon"></div>
</button>
<ul class="hidden-links hidden"></ul>
</nav>
</div>
</div>
</div>
When to Use:
When NOT to Use:
Purpose: Creates redirects from old URLs to new ones.
Redirect TO another page:
---
permalink: /old-url/
redirect_to: /new-url/
---
Redirect FROM old URLs:
---
permalink: /new-url/
title: "My Page"
redirect_from:
- /old-url/
- /another-old-url/
- /legacy/path/
---
How it Works:
Purpose: Algolia search integration.
Status: Listed in Gemfile but not configured.
To Enable:
_config.yml:
algolia:
application_id: YOUR_APP_ID
index_name: YOUR_INDEX_NAME
search_only_api_key: YOUR_SEARCH_KEY
ALGOLIA_API_KEY=your_admin_key bundle exec jekyll algolia
Only certain plugins work with GitHub Pages’ built-in build:
Gemfile:
group :jekyll_plugins do
gem "new-plugin-name"
end
_config.yml:
plugins:
- new-plugin-name
bundle install
bundle update
Or update specific plugin:
bundle update jekyll-feed
bundle list | grep jekyll
Gemfile and _config.yml
bundle install
If a plugin doesn’t work with GitHub Pages:
Check for version conflicts:
bundle exec gem dependency jekyll-plugin-name
| See also: Deployment | Theme Configuration |