Creating Multiple Feeds with the 11ty RSS Plugin
Creating a feed using the 11ty RSS plugin is pretty straightforward and doesn’t require much configuration. Less obvious to me was how to create a second feed for a filtered subset of my data. In this case I wanted to create a feed of only posts tagged with ‘Drupal’ that can be submitted to Planet Drupal.
Since the plugin required so little configuration, it wasn’t clear to me if there was a way to make the plugin aware of a second feed template. As it turns out, the plugin is smart enough to pick up on any number of feed templates, located anywhere in your codebase. I created a /src/_feeds
directory that contained by default feeds.njk
template and my new Drupal-specific drupal.njk
template. As long as you add a unique permalink in this template’s json frontmatter, the plugin will generate a new feed for you. In this case I used:
"permalink": "drupal.xml",
Next was determining how to filter my 11ty collection based on a specific tag. This quick tip on creating tag pages gave me what I needed. Instead of iterating through collections.all
as I did in my default feed, I added the following tag filter:
{`%- for post in collections[ 'drupal' ] | reverse %`}
As a result, I had only my content tagged with Drupal. The resulting drupal.njk
feed template looked like this:
Now all I have to do is write some Drupal related posts…