aboutsummaryrefslogtreecommitdiffstats
path: root/src/gen/json.11ty.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen/json.11ty.js')
-rw-r--r--src/gen/json.11ty.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gen/json.11ty.js b/src/gen/json.11ty.js
new file mode 100644
index 0000000..017b69c
--- /dev/null
+++ b/src/gen/json.11ty.js
@@ -0,0 +1,28 @@
+module.exports = class {
+ async data() {
+ return {
+ permalink: "/feed.json"
+ };
+ }
+
+ async render(data) {
+ return JSON.stringify({
+ version: "https://jsonfeed.org/version/1.1",
+ title: data.metadata.title,
+ language: data.metadata.language,
+ home_page_url: data.metadata.url,
+ feed_url: new URL(data.page.url, data.metadata.url),
+ description: data.metadata.description,
+ author: {
+ name: data.metadata.author.name
+ },
+ items: await Promise.all((data.collections.posts || []).map(async post => ({
+ id: new URL(post.url, data.metadata.url),
+ url: new URL(post.url, data.metadata.url),
+ title: new URL(post.url, data.metadata.url),
+ content_html: await this.convertHtmlToAbsoluteUrls(post.templateContent, new URL(post.url, data.metadata.url)),
+ date_published: post.date.toISOString()
+ })).reverse())
+ });
+ }
+}; \ No newline at end of file