fix atom feed, add json feed

This commit is contained in:
madrilene 2024-06-30 11:30:18 +02:00
parent 9a712b54c8
commit a64ea2033e
3 changed files with 46 additions and 12 deletions

View file

@ -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

View file

@ -2,31 +2,28 @@
permalink: /feed.xml
eleventyExcludeFromCollections: true
excludeFromSitemap: true
eleventyComputed:
absoluteContent: "{{ content | htmlToAbsoluteUrls(url) }}"
---
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ meta.url }}/">
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="{{ meta.lang or page.lang }}" xml:base="{{ meta.url }}/">
<title>{{ meta.blog.name }}</title>
<subtitle>{{ meta.blog.description }}</subtitle>
<link href="{{ meta.url }}/feed.xml" rel="self" />
<link href="{{ meta.url }}/" />
{% set postslist = collections.posts %}
<link href="{{ permalink | htmlBaseUrl(meta.url) }}" rel="self" />
<link href="{{ meta.url | addPathPrefixToFullUrl }}" />
<updated>{{ postslist | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
<id>{{ meta.url }}/</id>
<id>{{ meta.url | addPathPrefixToFullUrl }}</id>
<author>
<name>{{ meta.author.name }}</name>
<email>{{ meta.author.email }}</email>
</author>
{%- 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) -%}
<entry>
<title>{{ post.data.title }}</title>
<link href="{{ absolutePostUrl }}" />
<updated>{{ post.date | dateToRfc3339 }}</updated>
<id>{{ absolutePostUrl }}</id>
<content xml:lang="{{ meta.locale }}" type="html">
{{ post.data.absoluteContent }}
<content type="html">
{{ post.content | renderTransforms(post.data.page, meta.url) }}
</content>
</entry>
{%- endfor -%}

32
src/common/rss-json.njk Normal file
View file

@ -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 %}
]
}