No release in over 3 years
A Jekyll plugin that lets blog posts declare membership in a series via front matter and renders navigation links to all parts.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.0
~> 13.0

Runtime

>= 3.7, < 5.0
 Project Readme

jekyll-series-links

Screenshot

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-links

Usage

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 with title, url, and part

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

License

MIT