Add atom/rss/json feeds
This commit is contained in:
1 parent
c8c5981bd3
commit
b10dfae5dd
19 files changed
+466
-181
No files matched your search
@@ -6,6 +6,7 @@
|
||||
"site": {
|
||||
"name": "LewisDale.dev",
|
||||
"domain": "lewisdale.dev",
|
||||
"url": "https://lewisdale.dev",
|
||||
"description": "",
|
||||
"language": "en"
|
||||
}
|
||||
|
||||
@@ -5,16 +5,16 @@ includePrism: true
|
||||
<main class="wrapper-md stack-lg">
|
||||
<article class="stack-md h-entry">
|
||||
<h1 class="p-name"><a href="{{ url }}" class="u-url">{{ title | safe }}</a></h1>
|
||||
<p class="published">Published: <time class="dt-published" datetime="{{ date | rfc3339 }}">{{ date | dateDisplay }}</time></p>
|
||||
<p class="published">Published: <time class="dt-published" datetime="{{ date | dateToRfc3339 }}">{{ date | dateDisplay }}</time></p>
|
||||
<div class="e-content stack-md">
|
||||
{{ content | safe }}
|
||||
</div>
|
||||
{% if post.tags | length %}
|
||||
{% if tags | length %}
|
||||
<section>
|
||||
<h2>Tags:</h2>
|
||||
<ul role="list">
|
||||
{% for tag in post.tags %}
|
||||
<li><a class="p-category" href="/post/tag/{{ tag.slug }}" rel="tag">#{{ tag.name }}</a></li>
|
||||
{% for tag in tags %}
|
||||
<li><a class="p-category" href="/post/tag/{{ tag }}" rel="tag">#{{ tag }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ pagination:
|
||||
{% for item in pagination.items %}
|
||||
<li class="stack-xs">
|
||||
<h2><a href="{{ item.url }}">{{ item.data.title | safe }}</a></h2>
|
||||
<time class="block" datetime="{{ item.date | rfc3339 }}">{{ item.date | dateDisplay }}</time>
|
||||
<time class="block" datetime="{{ item.date | dateToRfc3339 }}">{{ item.date | dateDisplay }}</time>
|
||||
<div class="e-content p-summary">{{ item.content | excerpt }}</div>
|
||||
<a href="{{ item.url }}" class="inline-block">Read more</a>
|
||||
</li>
|
||||
|
||||
+10
-9
@@ -2,24 +2,25 @@
|
||||
title: Blog
|
||||
layout: base.njk
|
||||
pagination:
|
||||
data: tags
|
||||
data: collections.tags
|
||||
size: 1
|
||||
alias: tag
|
||||
eleventyComputed:
|
||||
permalink: "/post/tag/{{ tag.slug }}/"
|
||||
feed: "/post/tag/{{ tag.slug }}/feed/"
|
||||
permalink: "/post/tag/{{ tag }}/"
|
||||
feed: "/post/tag/{{ tag }}/feed/"
|
||||
---
|
||||
|
||||
<main class="wrapper-md stack-lg">
|
||||
<h1>Posts tagged “{{ tag.name }}”</h1>
|
||||
<h1>Posts tagged “{{ tag }}”</h1>
|
||||
|
||||
<ol class="stack-xl" role='list'>
|
||||
{% for item in tag.posts %}
|
||||
{% set posts = collections.posts | filterBy(tag) %}
|
||||
{% for item in posts %}
|
||||
<li class="stack-xs">
|
||||
<h2><a href="/post/{{ item.slug }}">{{ item.title.rendered | safe }}</a></h2>
|
||||
<time datetime="{{ item.date | rfc3339 }}" class="block">{{ item.date | dateDisplay }}</time>
|
||||
{{ item.excerpt.rendered | safe }}
|
||||
<a href="/post/{{ item.slug }}" class="inline-block">Read more</a>
|
||||
<h2><a href="{{ item.url }}">{{ item.data.title | safe }}</a></h2>
|
||||
<time datetime="{{ item.date | dateToRfc3339 }}" class="block">{{ item.date | dateDisplay }}</time>
|
||||
<div class="e-content p-summary">{{ item.content | excerpt }}</div>
|
||||
<a href="{{ item.url }}" class="inline-block">Read more</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
---json
|
||||
{
|
||||
"permalink": "atom.xml",
|
||||
"eleventyExcludeFromCollections": true
|
||||
}
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.site.url }}">
|
||||
<title>{{ metadata.site.name }}</title>
|
||||
<subtitle>{{ metadata.site.description }}</subtitle>
|
||||
<link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self"/>
|
||||
<link href="{{ metadata.site.url }}"/>
|
||||
<updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
|
||||
<id>{{ metadata.site.url }}</id>
|
||||
<author>
|
||||
<name>{{ metadata.author.name }}</name>
|
||||
<uri>{{ metadata.site.url }}</uri>
|
||||
</author>
|
||||
{%- for post in collections.posts | reverse %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
<entry>
|
||||
<title>{{ post.data.title }}</title>
|
||||
<link href="{{ absolutePostUrl }}"/>
|
||||
<updated>{{ post.date | dateToRfc3339 }}</updated>
|
||||
<id>{{ absolutePostUrl }}</id>
|
||||
<content xml:lang="{{ metadata.site.language }}" type="html">{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</content>
|
||||
</entry>
|
||||
{%- endfor %}
|
||||
</feed>
|
||||
@@ -0,0 +1,31 @@
|
||||
---json
|
||||
{
|
||||
"permalink": "feed.json",
|
||||
"eleventyExcludeFromCollections": true
|
||||
}
|
||||
---
|
||||
{
|
||||
"version": "https://jsonfeed.org/version/1.1",
|
||||
"title": "{{ metadata.site.name }}",
|
||||
"language": "{{ metadata.site.language }}",
|
||||
"home_page_url": "{{ metadata.site.url }}",
|
||||
"feed_url": "{{ permalink | absoluteUrl(metadata.site.url) }}",
|
||||
"description": "{{ metadata.site.description }}",
|
||||
"author": {
|
||||
"name": "{{ metadata.author.name }}",
|
||||
"url": "{{ metadata.site.url }}"
|
||||
},
|
||||
"items": [
|
||||
{%- for post in collections.posts | reverse %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
{
|
||||
"id": "{{ absolutePostUrl }}",
|
||||
"url": "{{ absolutePostUrl }}",
|
||||
"title": "{{ post.data.title }}",
|
||||
"content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %},
|
||||
"date_published": "{{ post.date | dateToRfc3339 }}"
|
||||
}
|
||||
{% if not loop.last %},{% endif %}
|
||||
{%- endfor %}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
permalink: /rss.xml
|
||||
eleventyExcludeFromCollections: true
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.site.url }}" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ metadata.site.name }}</title>
|
||||
<link>{{ metadata.site.url }}</link>
|
||||
<atom:link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self" type="application/rss+xml" />
|
||||
<description>{{ metadata.site.description }}</description>
|
||||
<language>{{ metadata.site.language }}</language>
|
||||
{%- for post in collections.posts | reverse %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
<item>
|
||||
<title>{{ post.data.title }}</title>
|
||||
<link>{{ absolutePostUrl }}</link>
|
||||
<description>{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</description>
|
||||
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
|
||||
<dc:creator>{{ metadata.author.name }}</dc:creator>
|
||||
<guid>{{ absolutePostUrl }}</guid>
|
||||
</item>
|
||||
{%- endfor %}
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
pagination:
|
||||
data: collections.tags
|
||||
size: 1
|
||||
alias: tag
|
||||
eleventyComputed:
|
||||
permalink: "/post/tag/{{ tag }}/atom.xml"
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.site.url }}">
|
||||
<title>{{ metadata.site.name }}</title>
|
||||
<subtitle>Posts tagged #{{ tag }}</subtitle>
|
||||
<link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self"/>
|
||||
<link href="{{ metadata.site.url }}"/>
|
||||
<updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
|
||||
<id>{{ metadata.site.url }}</id>
|
||||
<author>
|
||||
<name>{{ metadata.author.name }}</name>
|
||||
<uri>{{ metadata.site.url }}</uri>
|
||||
</author>
|
||||
{%- for post in collections.posts | filterBy(tag) | reverse %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
<entry>
|
||||
<title>{{ post.data.title }}</title>
|
||||
<link href="{{ absolutePostUrl }}"/>
|
||||
<updated>{{ post.date | dateToRfc3339 }}</updated>
|
||||
<id>{{ absolutePostUrl }}</id>
|
||||
<content xml:lang="{{ metadata.site.language }}" type="html">{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</content>
|
||||
</entry>
|
||||
{%- endfor %}
|
||||
</feed>
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
pagination:
|
||||
data: collections.tags
|
||||
size: 1
|
||||
alias: tag
|
||||
eleventyComputed:
|
||||
permalink: "/post/tag/{{ tag }}/feed.json"
|
||||
---
|
||||
{
|
||||
"version": "https://jsonfeed.org/version/1.1",
|
||||
"title": "{{ metadata.site.name }}",
|
||||
"language": "{{ metadata.site.language }}",
|
||||
"home_page_url": "{{ metadata.site.url }}",
|
||||
"feed_url": "{{ permalink | absoluteUrl(metadata.site.url) }}",
|
||||
"description": "Posts tagged #{{ tag }}",
|
||||
"author": {
|
||||
"name": "{{ metadata.author.name }}",
|
||||
"url": "{{ metadata.site.url }}"
|
||||
},
|
||||
"items": [
|
||||
{%- for post in collections.posts | filterBy(tag) | reverse %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
{
|
||||
"id": "{{ absolutePostUrl }}",
|
||||
"url": "{{ absolutePostUrl }}",
|
||||
"title": "{{ post.data.title }}",
|
||||
"content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %},
|
||||
"date_published": "{{ post.date | dateToRfc3339 }}"
|
||||
}
|
||||
{% if not loop.last %},{% endif %}
|
||||
{%- endfor %}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
pagination:
|
||||
data: collections.tags
|
||||
size: 1
|
||||
alias: tag
|
||||
eleventyComputed:
|
||||
permalink: "/post/tag/{{ tag }}/rss.xml"
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.site.url }}" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ metadata.site.name }}</title>
|
||||
<link>{{ metadata.site.url }}</link>
|
||||
<atom:link href="{{ permalink | absoluteUrl(metadata.site.url) }}" rel="self" type="application/rss+xml" />
|
||||
<description>Posts tagged #{{ tag }}</description>
|
||||
<language>{{ metadata.site.language }}</language>
|
||||
{% set posts = collections.posts | filterBy(tag) | reverse %}
|
||||
{%- for post in posts %}
|
||||
{%- set absolutePostUrl = post.url | absoluteUrl(metadata.site.url) %}
|
||||
<item>
|
||||
<title>{{ post.data.title }}</title>
|
||||
<link>{{ absolutePostUrl }}</link>
|
||||
<description>{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</description>
|
||||
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
|
||||
<dc:creator>{{ metadata.author.name }}</dc:creator>
|
||||
<guid>{{ absolutePostUrl }}</guid>
|
||||
</item>
|
||||
{%- endfor %}
|
||||
</channel>
|
||||
</rss>
|
||||
+4
-22
@@ -4,31 +4,13 @@ permalink: /sitemap.xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/</loc>
|
||||
<loc>{{ metadata.site.url }}/</loc>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/now/</loc>
|
||||
</url>
|
||||
{% for page in collections.all %}
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/blog/</loc>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/links/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/user-manual.html</loc>
|
||||
</url>
|
||||
{% for tag in tags %}
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/post/tag/{{ tag.slug }}/</loc>
|
||||
</url>
|
||||
{% endfor %}
|
||||
{% for post in posts %}
|
||||
<url>
|
||||
<loc>https://{{ metadata.site.domain }}/post/{{ post.slug }}/</loc>
|
||||
<lastmod>{{ post.date | rfc3339 }}</lastmod>
|
||||
<loc>{{ page.url | absoluteUrl(metadata.site.url) }}</loc>
|
||||
<lastmod>{{ page.date | dateToRfc3339 }}</lastmod>
|
||||
</url>
|
||||
{% endfor %}
|
||||
</urlset>
|
||||
Reference in new issue
Block a user