Templates for rendering RSS feeds for your Jekyll blog
Switch branches/tags
Nothing to show
Clone or download
meitar and georgemandis Add syndication module to provide easy configuration for update hints. (

This commit adds the `<sy:updatePeriod>` and `<sy:updateFrequency>`
elements to all feeds. These elements are defined in the RSS 1.0
Syndication Modules specification, described here:


The purpose of these elements is to provide hints for automated feed
consumers regarding how often to expect updates, which assists in
scheduling polling times so as not to overly tax a given server.

The templates use the default values intentionally so as to avoid
changing the default behavior of the feeds as-is. Configuration options
have been provided to make changing the values easier, since all that's
needed is an edit to `_config.yml`.
Latest commit 0f49d5d May 14, 2018


Jekyll RSS Feed Templates

NOTE: If you're a fan of this project you should checkout the sister project: jekyll-json-feeds.

A few Liquid templates to use for rendering RSS feeds for your Jekyll blog. Featuring four kinds of feeds:

  • feed.xml — Renders the 10 most recent posts.
  • feed.category.xml — Only renders posts for a specific category. This example renders posts for a "miscellaneous" category.
  • feed.links.xml — Only contains posts that link to external websites noted by a link variable in the YAML Front Matter. Not a common Jekyll convention, but a good way to generating a linked list.
  • feed.articles.xml — Only showing articles that don't link to external sites; The opposite of feed.links.xml

How to use

  • Update _config.yml as noted below, or manually replace the variables.
  • Copy one of the xml (ie, feed.xml) files to the root directory of your Jekyll blog.
  • Run jekyll.

In your generated _site folder you should find a properly formatted feed at feed.xml.

Customizing _config.yml

These templates rely on a customized version of _config.yml. The following lines have been added:

name: Your Blog's Name
description: A description for your blog
url: http://your-blog-url.example.com
feed_items: 10
feed_update_period: daily
feed_update_frequency: 1

This makes it easy to reference the title, description and URL for your site in the feed templates using {{ site.name }}, {{ site.description }} and {{ site.url }}. Even if you're not using these feed templates, you might find these variables useful when you're designing your layouts.

The feed_* items shown above are the default. You can safely omit them.


  • Note on YAML Front Matter block: The xml files contain an empty YAML Front Matter block. This is necessary because Jekyll will not process a page with Liquid unless there is a YAML block at the top of the file. Previously, this block contained the line layout: none but that was found to cause a separate issue for some: https://github.com/snaptortoise/jekyll-rss-feeds/commit/209b83b504fde14722491ea5d9753189566c8598

  • RSS Autodiscovery: If your template is not already setup to do so, make sure the RSS feeds are discoverable by browsers, bots, etc. by providing proper link tags to your Jekyll layout files (adapt href and title appropriately):

      <link href="/blog/feed.xml" type="application/rss+xml" rel="alternate" title="Latest 10 blog posts (atom)" />

    Refer to rssboard.org/rss-autodiscovery for details.

  • Validation: You can use the W3C Validator to make sure your feeds are formatted correctly: http://validator.w3.org/feed/

  • If you're a Pinboard user and found this repo useful, take a look at jekyll-pinboard. It allows you to load your Pinboard bookmarks into your Jekyll site with just a couple lines.

  • If you're looking for JSON feed templates to add to your Jekyll blog please checkout the sister project: jekyll-json-feeds.