jekyll-series-links
A Jekyll plugin that lets you organize blog posts into multi-part series. Posts declare their series membership via front matter, and a Liquid tag renders navigation links to all parts.
Installation
Add the gem to your Jekyll site's Gemfile:
gem "jekyll-series-links"Then add it to the plugins list in your _config.yml:
plugins:
- jekyll-series-linksUsage
Front matter
Add series and series_part to each post in the series:
---
title: "Getting Started with Widgets"
series: "Widget Mastery"
series_part: 1
------
title: "Advanced Widget Techniques"
series: "Widget Mastery"
series_part: 2
---If a series_part is not defined, the plugin sorts by the date of the post with alphabetical order as a tiebreaker.
Rendering series navigation
Use the {% series_links %} Liquid tag in your post layout to render a navigation list linking to all parts:
{{ content }}
{% series_links %}This produces HTML like:
<nav class="series-nav">
<h4>Series: Widget Mastery</h4>
<ol>
<li class="series-nav-item series-nav-current"><strong>Part 1: Getting Started with Widgets</strong></li>
<li class="series-nav-item"><a href="/2026/01/15/advanced-widgets.html">Part 2: Advanced Widget Techniques</a></li>
</ol>
</nav>The current post is highlighted with the series-nav-current class and rendered as bold text instead of a link.
Custom template
To override the default markup, create _includes/series_links.html in your site. The following variables are available in the template:
-
series_name-- the name of the series -
series_posts-- an array of posts, each withtitle,url, andpart
Example:
<div class="my-series">
<h3>{{ series_name }}</h3>
<ul>
{% for post in series_posts %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</div>Compatibility
- Ruby >= 2.5
- Jekyll >= 3.7, < 5.0
