Skip to content

Commit d6a7366

Browse files
Add RSS feed (#109)
1 parent 52fddb7 commit d6a7366

File tree

4 files changed

+73
-0
lines changed

4 files changed

+73
-0
lines changed

app/posts/feed.njk

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
permalink: feed.xml
3+
layout: false
4+
eleventyExcludeFromCollections: true
5+
metadata:
6+
title: X-GOVUK
7+
subtitle: "Notes and updates on projects being developed across government teams"
8+
language: en
9+
url: https://x-govuk.github.io
10+
---
11+
<?xml version="1.0" encoding="utf-8"?>
12+
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.url }}">
13+
<title>{{ metadata.title }}</title>
14+
<subtitle>{{ metadata.subtitle }}</subtitle>
15+
<link href="{{ permalink | absoluteUrl(metadata.url) }}" rel="self"/>
16+
<link href="{{ metadata.url }}"/>
17+
<updated>{{ collections.post | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
18+
<id>{{ metadata.url }}/</id>
19+
{%- for post in collections.post | reverse %}
20+
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.url) %}
21+
<entry>
22+
<title>{{ post.data.title }}</title>
23+
<link href="{{ absolutePostUrl }}"/>
24+
<updated>{{ post.date | dateToRfc3339 }}</updated>
25+
<id>{{ absolutePostUrl }}</id>
26+
{% if post.data.authors %}
27+
{% for author in post.data.authors %}
28+
<author>
29+
<name>{{ author.name }}</name>
30+
{% if author.url %}<uri>{{ author.url }}</uri>{% endif %}
31+
</author>
32+
{% endfor %}
33+
{% elif post.data.author %}
34+
<author>
35+
<name>{{ post.data.author.name }}</name>
36+
{% if post.data.author.url %}<uri>{{ post.data.author.url }}</uri>{% endif %}
37+
</author>
38+
{% endif %}
39+
<content xml:lang="{{ metadata.language }}" type="html">
40+
<![CDATA[ {{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }} ]]>
41+
</content>
42+
</entry>
43+
{%- endfor %}
44+
</feed>

eleventy.config.js

+13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
const govukEleventyPlugin = require('@x-govuk/govuk-eleventy-plugin')
2+
const rssPlugin = require("@11ty/eleventy-plugin-rss");
23

34
module.exports = function (eleventyConfig) {
5+
6+
eleventyConfig.addPlugin(rssPlugin);
7+
48
eleventyConfig.addPlugin(govukEleventyPlugin, {
59
icons: {
610
mask: 'https://raw.githubusercontent.com/x-govuk/logo/main/images/x-govuk-mask-icon.svg?raw=true',
@@ -11,12 +15,21 @@ module.exports = function (eleventyConfig) {
1115
},
1216
opengraphImageUrl:
1317
'https://raw.githubusercontent.com/x-govuk/logo/main/images/x-govuk-opengraph-image.png',
18+
feedUrl: 'https://x-govuk.github.io/posts.xml',
1419
homeKey: 'X-GOVUK',
1520
url: process.env.GITHUB_ACTIONS && 'https://x-govuk.github.io/',
1621
header: {
1722
logotype: 'x-govuk'
1823
},
1924
footer: {
25+
meta: {
26+
items: [
27+
{
28+
href: "/feed.xml",
29+
text: "Subscribe to feed"
30+
}
31+
]
32+
},
2033
contentLicence: {
2134
html: 'An unofficial community project. <a class="govuk-footer__link" href="https://github.com/x-govuk/x-govuk.github.io">GitHub source</a>.'
2235
},

package-lock.json

+15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"dependencies": {
2424
"@11ty/eleventy": "^2.0.0",
2525
"@11ty/eleventy-fetch": "^4.0.0",
26+
"@11ty/eleventy-plugin-rss": "^1.2.0",
2627
"@x-govuk/govuk-eleventy-plugin": "^6.0.0"
2728
},
2829
"devDependencies": {

0 commit comments

Comments
 (0)