From 6898c03c8f17afc008cd404f7eec0d00142db0fa Mon Sep 17 00:00:00 2001 From: Devin Haska <2636402+wonderfulfrog@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:29:42 -0800 Subject: [PATCH] feat: add a firehose feed --- config/filters/index.js | 7 +++++++ eleventy.config.js | 2 ++ src/css/styles.11ty.js | 1 + src/pages/feeds.html | 4 ++++ src/pages/feeds/all.njk | 27 +++++++++++++++++++++++++++ src/pages/feeds/posts.njk | 2 +- 6 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/pages/feeds/all.njk diff --git a/config/filters/index.js b/config/filters/index.js index b2d5e3e..6666139 100644 --- a/config/filters/index.js +++ b/config/filters/index.js @@ -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(); diff --git a/eleventy.config.js b/eleventy.config.js index 3773a0a..b134dcc 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -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); diff --git a/src/css/styles.11ty.js b/src/css/styles.11ty.js index dac4dc1..c5b6d0f 100644 --- a/src/css/styles.11ty.js +++ b/src/css/styles.11ty.js @@ -30,6 +30,7 @@ export default class { return { permalink: `css/styles.css`, excludeFromSitemap: true, + eleventyExcludeFromCollections: true, rawFilepath, rawCss: css, }; diff --git a/src/pages/feeds.html b/src/pages/feeds.html index 3db7ce5..0ebcc21 100644 --- a/src/pages/feeds.html +++ b/src/pages/feeds.html @@ -24,4 +24,8 @@ description: Feed yourself a veritable bevy of feeds. Feeding all watching content. Also available in movies and shows varieties.

+
  • + Firehose +

    The Firehose - you get everything!

    +
  • diff --git a/src/pages/feeds/all.njk b/src/pages/feeds/all.njk new file mode 100644 index 0000000..d28ab50 --- /dev/null +++ b/src/pages/feeds/all.njk @@ -0,0 +1,27 @@ +--- +permalink: /feeds/all.xml +layout: null +eleventyExcludeFromCollections: true +excludeFromSitemap: true +--- + +{{ meta.siteName }} +{{ meta.siteDescription }} + + +{{ meta.url }}/ + +{{ meta.author }} + +{% for item in collections.all | filterByTags(["page"]) %} + + {{ meta.url }}{{ item.url }} + {{ item.data.title | escape }} + + {{ item.date }} + {# The first tag is always a type e.g. post, page, etc. #} + {%- for tag in item.data.tags %}{% if not loop.first %}{% endif %}{%- endfor %} + {{ item.content | escape }} + + {% endfor %} + diff --git a/src/pages/feeds/posts.njk b/src/pages/feeds/posts.njk index 46a746d..f5e6331 100644 --- a/src/pages/feeds/posts.njk +++ b/src/pages/feeds/posts.njk @@ -5,7 +5,7 @@ eleventyExcludeFromCollections: true excludeFromSitemap: true --- -{{ meta.siteName }} +Posts • {{ meta.siteName }} {{ meta.siteDescription }}