Add atom/rss/json feeds

This commit is contained in:
Lewis Dale committed 2023-12-30 15:38:09 +00:00
1 parent c8c5981bd3
commit b10dfae5dd
19 files changed
+466 -181

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
---json
{
"permalink": "atom.xml",
"eleventyExcludeFromCollections": true
}
---
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.site.url }}">
<title>{{ metadata.site.name }}</title>
<subtitle>{{ metadata.site.description }}</subtitle>
<link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self"/>
<link href="{{ metadata.site.url }}"/>
<updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
<id>{{ metadata.site.url }}</id>
<author>
<name>{{ metadata.author.name }}</name>
<uri>{{ metadata.site.url }}</uri>
</author>
{%- for post in collections.posts | reverse %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
<entry>
<title>{{ post.data.title }}</title>
<link href="{{ absolutePostUrl }}"/>
<updated>{{ post.date | dateToRfc3339 }}</updated>
<id>{{ absolutePostUrl }}</id>
<content xml:lang="{{ metadata.site.language }}" type="html">{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</content>
</entry>
{%- endfor %}
</feed>
+31
View File
@@ -0,0 +1,31 @@
---json
{
"permalink": "feed.json",
"eleventyExcludeFromCollections": true
}
---
{
"version": "https://jsonfeed.org/version/1.1",
"title": "{{ metadata.site.name }}",
"language": "{{ metadata.site.language }}",
"home_page_url": "{{ metadata.site.url }}",
"feed_url": "{{ permalink | absoluteUrl(metadata.site.url) }}",
"description": "{{ metadata.site.description }}",
"author": {
"name": "{{ metadata.author.name }}",
"url": "{{ metadata.site.url }}"
},
"items": [
{%- for post in collections.posts | reverse %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
{
"id": "{{ absolutePostUrl }}",
"url": "{{ absolutePostUrl }}",
"title": "{{ post.data.title }}",
"content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %},
"date_published": "{{ post.date | dateToRfc3339 }}"
}
{% if not loop.last %},{% endif %}
{%- endfor %}
]
}
+26
View File
@@ -0,0 +1,26 @@
---
permalink: /rss.xml
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.site.url }}" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ metadata.site.name }}</title>
<link>{{ metadata.site.url }}</link>
<atom:link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self" type="application/rss+xml" />
<description>{{ metadata.site.description }}</description>
<language>{{ metadata.site.language }}</language>
{%- for post in collections.posts | reverse %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
<item>
<title>{{ post.data.title }}</title>
<link>{{ absolutePostUrl }}</link>
<description>{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</description>
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
<dc:creator>{{ metadata.author.name }}</dc:creator>
<guid>{{ absolutePostUrl }}</guid>
</item>
{%- endfor %}
</channel>
</rss>
+31
View File
@@ -0,0 +1,31 @@
---
pagination:
data: collections.tags
size: 1
alias: tag
eleventyComputed:
permalink: "/post/tag/{{ tag }}/atom.xml"
---
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.site.url }}">
<title>{{ metadata.site.name }}</title>
<subtitle>Posts tagged #{{ tag }}</subtitle>
<link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self"/>
<link href="{{ metadata.site.url }}"/>
<updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
<id>{{ metadata.site.url }}</id>
<author>
<name>{{ metadata.author.name }}</name>
<uri>{{ metadata.site.url }}</uri>
</author>
{%- for post in collections.posts | filterBy(tag) | reverse %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
<entry>
<title>{{ post.data.title }}</title>
<link href="{{ absolutePostUrl }}"/>
<updated>{{ post.date | dateToRfc3339 }}</updated>
<id>{{ absolutePostUrl }}</id>
<content xml:lang="{{ metadata.site.language }}" type="html">{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</content>
</entry>
{%- endfor %}
</feed>
+33
View File
@@ -0,0 +1,33 @@
---
pagination:
data: collections.tags
size: 1
alias: tag
eleventyComputed:
permalink: "/post/tag/{{ tag }}/feed.json"
---
{
"version": "https://jsonfeed.org/version/1.1",
"title": "{{ metadata.site.name }}",
"language": "{{ metadata.site.language }}",
"home_page_url": "{{ metadata.site.url }}",
"feed_url": "{{ permalink | absoluteUrl(metadata.site.url) }}",
"description": "Posts tagged #{{ tag }}",
"author": {
"name": "{{ metadata.author.name }}",
"url": "{{ metadata.site.url }}"
},
"items": [
{%- for post in collections.posts | filterBy(tag) | reverse %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
{
"id": "{{ absolutePostUrl }}",
"url": "{{ absolutePostUrl }}",
"title": "{{ post.data.title }}",
"content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %},
"date_published": "{{ post.date | dateToRfc3339 }}"
}
{% if not loop.last %},{% endif %}
{%- endfor %}
]
}
+30
View File
@@ -0,0 +1,30 @@
---
pagination:
data: collections.tags
size: 1
alias: tag
eleventyComputed:
permalink: "/post/tag/{{ tag }}/rss.xml"
---
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.site.url }}" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ metadata.site.name }}</title>
<link>{{ metadata.site.url }}</link>
<atom:link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self" type="application/rss+xml" />
<description>Posts tagged #{{ tag }}</description>
<language>{{ metadata.site.language }}</language>
{% set posts = collections.posts | filterBy(tag) | reverse %}
{%- for post in posts %}
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
<item>
<title>{{ post.data.title }}</title>
<link>{{ absolutePostUrl }}</link>
<description>{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</description>
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
<dc:creator>{{ metadata.author.name }}</dc:creator>
<guid>{{ absolutePostUrl }}</guid>
</item>
{%- endfor %}
</channel>
</rss>