Jekyll related posts
Jekyll has related posts functionality built in, but it is flawed, especially when deployed on GitHub pages, because related posts are the same for each post. I wanted to be able to add related posts manually, and after little tweaking it turned out to be pretty easy.
I wanted to define related posts by title, but this can be easily changed. In your post template add this code snippet where you want the related posts to show up.
{% if content and page.related %}
<h2>Related Posts</h2>
<ul>
{% for post in site.posts %}
{% if page.related contains post.title %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
After you have added the code to your post template, just use related_posts
parameter in your YAML front matter. An example from this blog post.
---
layout: post
title: "Jekyll related posts"
category: blog
permalink: /blog/jekyll-related-posts
related: [
"A tiny rant: Jekyll vs. Octopress",
"6 Weeks of Daily Blogging",
"Bash Productivity Tips"
]
---
Blog post content here.
If you want to change the way how related posts are defined, just change the post parameter in if
condition: {% if page.related contains post.title %}
. For example, if you want to define related posts by url, the code would look like this: {% if page.related contains post.url %}