feat: add a firehose feed
This commit is contained in:
parent
c2b918a3c6
commit
6898c03c8f
6 changed files with 42 additions and 1 deletions
|
@ -86,6 +86,13 @@ export const filterFavourites = (collection) => {
|
|||
);
|
||||
};
|
||||
|
||||
export const filterByTags = (collection, tags = []) => {
|
||||
return collection.filter(
|
||||
(item) =>
|
||||
item.data.tags && !item.data.tags.every((tag) => tags.includes(tag)),
|
||||
);
|
||||
};
|
||||
|
||||
export const isOld = (dateArg) => {
|
||||
const date = dayjs(dateArg);
|
||||
const now = dayjs();
|
||||
|
|
|
@ -10,6 +10,7 @@ import {
|
|||
allTagCounts,
|
||||
entries,
|
||||
filter,
|
||||
filterByTags,
|
||||
filterFavourites,
|
||||
formatDate,
|
||||
isOld,
|
||||
|
@ -51,6 +52,7 @@ export default function (eleventyConfig) {
|
|||
eleventyConfig.addFilter("entries", entries);
|
||||
eleventyConfig.addFilter("filter", filter);
|
||||
eleventyConfig.addFilter("filterFavourites", filterFavourites);
|
||||
eleventyConfig.addFilter("filterByTags", filterByTags);
|
||||
eleventyConfig.addFilter("formatDate", formatDate);
|
||||
eleventyConfig.addFilter("isOld", isOld);
|
||||
eleventyConfig.addFilter("keys", keys);
|
||||
|
|
|
@ -30,6 +30,7 @@ export default class {
|
|||
return {
|
||||
permalink: `css/styles.css`,
|
||||
excludeFromSitemap: true,
|
||||
eleventyExcludeFromCollections: true,
|
||||
rawFilepath,
|
||||
rawCss: css,
|
||||
};
|
||||
|
|
|
@ -24,4 +24,8 @@ description: Feed yourself a veritable bevy of feeds.
|
|||
Feeding all watching content. Also available in <a href="/feeds/movies.xml">movies</a> and <a href="/feeds/shows.xml">shows</a> varieties.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/feeds/all.xml">Firehose</a>
|
||||
<p>The Firehose - you get everything!</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
27
src/pages/feeds/all.njk
Normal file
27
src/pages/feeds/all.njk
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
permalink: /feeds/all.xml
|
||||
layout: null
|
||||
eleventyExcludeFromCollections: true
|
||||
excludeFromSitemap: true
|
||||
---<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>{{ meta.siteName }}</title>
|
||||
<subtitle>{{ meta.siteDescription }}</subtitle>
|
||||
<link href="{{ meta.url }}/feeds/all.xml" rel="self" />
|
||||
<link href="{{ meta.url }}/" rel="alternate" type="text/html" />
|
||||
<id>{{ meta.url }}/</id>
|
||||
<author>
|
||||
<name>{{ meta.author }}</name>
|
||||
</author>
|
||||
{% for item in collections.all | filterByTags(["page"]) %}
|
||||
<entry>
|
||||
<id>{{ meta.url }}{{ item.url }}</id>
|
||||
<title>{{ item.data.title | escape }}</title>
|
||||
<link href="{{ item.url }}{{ post.url }}" />
|
||||
<pubDate>{{ item.date }}</pubDate>
|
||||
{# The first tag is always a type e.g. post, page, etc. #}
|
||||
{%- for tag in item.data.tags %}{% if not loop.first %}<category term="{{ tag }}" />{% endif %}{%- endfor %}
|
||||
<content type="html">{{ item.content | escape }}</content>
|
||||
</entry>
|
||||
{% endfor %}
|
||||
</feed>
|
|
@ -5,7 +5,7 @@ eleventyExcludeFromCollections: true
|
|||
excludeFromSitemap: true
|
||||
---<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>{{ meta.siteName }}</title>
|
||||
<title>Posts • {{ meta.siteName }}</title>
|
||||
<subtitle>{{ meta.siteDescription }}</subtitle>
|
||||
<link href="{{ meta.url }}/feeds/posts.xml" rel="self" />
|
||||
<link href="{{ meta.url }}/" rel="alternate" type="text/html" />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue