A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts
Add this line to your site's Gemfile:
gem 'jekyll-feed'And then add this line to your site's _config.yml:
gems:
- jekyll-feedThe plugin will automatically generate an Atom feed at /feed.xml.
The plugin will automatically use any of the following configuration variables, if they are present in your site's _config.yml file.
titleorname- The title of the site, e.g., "My awesome site"description- A longer description of what your site is about, e.g., "Where I blog about Jekyll and other awesome things"url- The URL to your site, e.g.,http://example.com. If none is provided, the plugin will try to usesite.github.url.author- Global author information (see below)
Do you already have an existing feed someplace other than /feed.xml, but are on a host like GitHub Pages that doesn't support machine-friendly redirects? If you simply swap out jekyll-feed for your existing template, your existing subscribers won't continue to get updates. Instead, you can specify a non-default path via your site's config.
feed:
path: atom.xmlTo note, you shouldn't have to do this unless you already have a feed you're using, and you can't or wish not to redirect existing subscribers.
The plugin will use the following post metadata, automatically generated by Jekyll, which you can override via a post's YAML front matter:
datetitleexcerptidcategorytags
Additionally, the plugin will use the following values, if present in a post's YAML front matter:
author- The author of the post, e.g., "Dr. Jekyll". If none is given, feed readers will look to the feed author as defined in_config.yml. Like the feed author, this can also be an object or a reference to an author in_data/authors.yml(see below).
TL;DR: In most cases, put author: [your name] in the document's front matter, for sites with multiple authors. If you need something more complicated, read on.
There are several ways to convey author-specific information. Author information is found in the following order of priority:
- An
authorobject, in the documents's front matter, e.g.:
author:
twitter: benbalter- An
authorobject, in the site's_config.yml, e.g.:
author:
twitter: benbaltersite.data.authors[author], if an author is specified in the document's front matter, and a corresponding key exists insite.data.authors. E.g., you have the following in the document's front matter:
author: benbalterAnd you have the following in _data/authors.yml:
benbalter:
picture: /img/benbalter.png
twitter: jekyllrb
potus:
picture: /img/potus.png
twitter: whitehouseIn the above example, the author benbalter's Twitter handle will be resolved to @jekyllrb. This allows you to centralize author information in a single _data/authors file for site with many authors that require more than just the author's username.
Pro-tip: If authors is present in the document's front matter as an array (and author is not), the plugin will use the first author listed.
- An author in the document's front matter (the simplest way), e.g.:
author: benbalter- An author in the site's
_config.yml, e.g.:
author: benbalterimage- URL of an image that is representative of the post.
The plugin exposes a helper tag to expose the appropriate meta tags to support automated discovery of your feed. Simply place {% feed_meta %} someplace in your template's <head> section, to output the necessary metadata.
Great question. In short, Atom is a better format. Think of it like RSS 3.0. For more information, see this discussion on why we chose Atom over RSS 2.0.
- Fork it (https://github.com/jekyll/jekyll-feed/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request