aboutsummaryrefslogtreecommitdiffstats
path: root/src/gen/json.11ty.js
blob: 017b69c2e2d8ab90e82144726dbad7d8eae7b60f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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())
        });
    }
};