diff --git a/src/_data/meta.js b/src/_data/meta.js index 34e0a8b..2fe86c3 100644 --- a/src/_data/meta.js +++ b/src/_data/meta.js @@ -33,6 +33,11 @@ export const blog = { title: 'Atom Feed', url: '/feed.xml', type: 'application/atom+xml' + }, + { + title: 'JSON Feed', + url: '/feed.json', + type: 'application/json' } ], // Tags diff --git a/src/common/feed.njk b/src/common/rss-feed.njk similarity index 53% rename from src/common/feed.njk rename to src/common/rss-feed.njk index 4336248..626c224 100644 --- a/src/common/feed.njk +++ b/src/common/rss-feed.njk @@ -2,31 +2,28 @@ permalink: /feed.xml eleventyExcludeFromCollections: true excludeFromSitemap: true -eleventyComputed: - absoluteContent: "{{ content | htmlToAbsoluteUrls(url) }}" --- - + {{ meta.blog.name }} {{ meta.blog.description }} - - - {% set postslist = collections.posts %} + + {{ postslist | getNewestCollectionItemDate | dateToRfc3339 }} - {{ meta.url }}/ + {{ meta.url | addPathPrefixToFullUrl }} {{ meta.author.name }} - {{ meta.author.email }} - {%- for post in postslist -%} - {%- set absolutePostUrl = post.url | absoluteUrl(meta.url) -%} + {% set postslist = collections.posts %} + {%- for post in postslist | reverse -%} + {%- set absolutePostUrl = post.url | absoluteUrl(meta.url) -%} {{ post.data.title }} {{ post.date | dateToRfc3339 }} {{ absolutePostUrl }} - - {{ post.data.absoluteContent }} + + {{ post.content | renderTransforms(post.data.page, meta.url) }} {%- endfor -%} diff --git a/src/common/rss-json.njk b/src/common/rss-json.njk new file mode 100644 index 0000000..0968414 --- /dev/null +++ b/src/common/rss-json.njk @@ -0,0 +1,32 @@ +--- +permalink: /feed.json +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- +{ + "version": "https://jsonfeed.org/version/1.1", + "title": "{{ meta.blog.name }}", + "language": "{{ meta.lang or page.lang }}", + "home_page_url": "{{ meta.url | addPathPrefixToFullUrl }}", + "feed_url": "{{ permalink | htmlBaseUrl(meta.url) }}", + "description": "{{ meta.blog.description }}", + "authors": [ + { + "name": "{{ meta.author.name }}" + } + ], + "items": [ + {%- set postslist = collections.posts -%} + {%- for post in postslist | reverse -%} + {%- set absolutePostUrl = post.url | absoluteUrl(meta.url) -%} + { + "id": "{{ absolutePostUrl }}", + "url": "{{ absolutePostUrl }}", + "title": "{{ post.data.title }}", + "content_html": {% if post.content %}{{ post.content | renderTransforms(post.data.page, metadata.base) | dump | safe }}{% else %}""{% endif %}, + "date_published": "{{ post.date | dateToRfc3339 }}" + } + {% if not loop.last %},{% endif %} + {%- endfor %} + ] +} \ No newline at end of file