added RSS feed for devlog

This commit is contained in:
2025-12-23 18:12:07 +00:00
parent f52d94751b
commit 3489060156
4 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
export const prerender = true;
import { posts, type DevlogPost } from "../posts";
const xml = (tposts: Map<string, DevlogPost>) => `<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:atom="https://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>denizk0461</title>
<link>https://denizk0461.dev/projects/projectn5/devlog/</link>
<description><![CDATA[Development log for the game Homesick by denizk0461]]></description>
${getEntries()}
</channel>
</rss>`;
function getEntries(): String {
var val = "";
var entries = posts.entries().map((post, index) =>
`<item>
<title><![CDATA[${post[1].title}]]></title>
<description><![CDATA[${post[1].description}]]></description>
<link>https://denizk0461.dev/projects/projectn5/devlog/${post[0]}</link>
<guid isPermaLink="true">https://denizk0461.dev/projects/projectn5/devlog/${post[0]}</guid>
<pubDate><![CDATA[${new Date(post[1].date)}]]></pubDate>
</item>
`)
entries.forEach(entry => {
val += entry;
})
return val;
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export async function GET() {
const headers = {
'Cache-Control': 'max-age=0, s-maxage=600',
'Content-Type': 'application/xml',
};
const body = xml(posts);
return new Response(body);
}