diff --git a/category-feed-json.njk b/category-feed-json.njk new file mode 100644 index 0000000..d7612f0 --- /dev/null +++ b/category-feed-json.njk @@ -0,0 +1,69 @@ +--- +eleventyExcludeFromCollections: true +eleventyImport: + collections: + - categoryFeeds +pagination: + data: collections.categoryFeeds + size: 1 + alias: categoryFeed +permalink: "categories/{{ categoryFeed.slug }}/feed.json" +--- +{ + "version": "https://jsonfeed.org/version/1.1", + "title": "{{ site.name }} — {{ categoryFeed.name }}", + "home_page_url": "{{ site.url }}/categories/{{ categoryFeed.slug }}/", + "feed_url": "{{ site.url }}/categories/{{ categoryFeed.slug }}/feed.json", + "hubs": [ + { + "type": "WebSub", + "url": "https://websubhub.com/hub" + } + ], + "description": "Posts tagged with \"{{ categoryFeed.name }}\" on {{ site.name }}", + "language": "{{ site.locale | default('en') }}", + "authors": [ + { + "name": "{{ site.author.name | default(site.name) }}", + "url": "{{ site.url }}/" + } + ], + "_textcasting": { + "version": "1.0", + "about": "https://textcasting.org/" + {%- set hasSupport = site.support and (site.support.url or site.support.stripe or site.support.lightning or site.support.paymentPointer) %} + {%- if hasSupport %}, + "support": {{ site.support | textcastingSupport | jsonEncode | safe }} + {%- endif %} + }, + "items": [ + {%- for post in categoryFeed.posts %} + {%- set absolutePostUrl = site.url + post.url %} + {%- set postImage = post.data.photo %} + {%- if postImage %} + {%- if postImage[0] and (postImage[0] | length) > 10 %} + {%- set postImage = postImage[0] %} + {%- endif %} + {%- endif %} + {%- if not postImage or postImage == "" %} + {%- set postImage = post.data.image or (post.content | extractFirstImage) %} + {%- endif %} + { + "id": "{{ absolutePostUrl }}", + "url": "{{ absolutePostUrl }}", + "title": {% if post.data.title %}{{ post.data.title | jsonEncode | safe }}{% else %}null{% endif %}, + "content_html": {{ post.content | htmlToAbsoluteUrls(absolutePostUrl) | jsonEncode | safe }}, + "content_text": {{ post.content | striptags | jsonEncode | safe }}, + "date_published": "{{ post.date | dateToRfc3339 }}", + "date_modified": "{{ (post.data.updated or post.date) | dateToRfc3339 }}" + {%- if postImage and postImage != "" and (postImage | length) > 10 %}, + "image": "{{ postImage | url | absoluteUrl(site.url) }}" + {%- endif %} + {%- set attachments = post.data | feedAttachments %} + {%- if attachments.length > 0 %}, + "attachments": {{ attachments | jsonEncode | safe }} + {%- endif %} + }{% if not loop.last %},{% endif %} + {%- endfor %} + ] +}