From 769c764feb45f8acced6f6ce6cd93e7075898ed8 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Mon, 27 Apr 2026 09:10:36 +0100 Subject: [PATCH] website: add rss feed for microlog --- website/src/pages/microlog/rss.xml.ts | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 website/src/pages/microlog/rss.xml.ts diff --git a/website/src/pages/microlog/rss.xml.ts b/website/src/pages/microlog/rss.xml.ts new file mode 100644 index 0000000..fa04b32 --- /dev/null +++ b/website/src/pages/microlog/rss.xml.ts @@ -0,0 +1,29 @@ +import path from "node:path"; +import rss from "@astrojs/rss"; +import type { APIContext } from "astro"; +import { getCollection } from "astro:content"; +import { renderGemtextToHtml } from "../../renderGemtextToHtml"; + +export async function GET(context: APIContext) { + // `site` is guaranteed to exist because we define it in our Astro config + const site = context.site!; + const posts = await getCollection("microlog"); + + return rss({ + title: "Joe Carstairs’ microlog", + description: "My private X feed I guess?", + customData: ` + /images/headshot.webp + en-GB + `, + site: path.join(site.toString(), "microlog"), + trailingSlash: false, + items: posts.map((post) => ({ + link: `/microlog/${post.id}`, + title: post.id, + content: renderGemtextToHtml(post.body ?? ""), + pubDate: new Date(post.id.replace(/\.[0-9]+$/g, "")), + author: "Joe Carstairs", + })), + }); +}