import { getAllPosts } from "@/lib/devblog"; import { SITE_URL } from "@/lib/site"; const SITE_TITLE = "Highland Games Studio — Devblog"; const SITE_DESCRIPTION = "Behind-the-scenes updates, design decisions, and milestones from Highland Games Studio."; function escapeXml(input: string): string { return input .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } export async function GET() { const posts = getAllPosts(); const lastBuildDate = new Date().toUTCString(); const latest = posts[0]; const pubDate = latest ? new Date(latest.date).toUTCString() : lastBuildDate; const items = posts .map((post) => { const url = `${SITE_URL}/devblog/${post.slug}`; return ` ${escapeXml(post.title)} ${url} ${url} ${new Date(post.date).toUTCString()} ${post.author ? `${escapeXml(post.author)}` : ""} ${escapeXml(post.excerpt || "")} `; }) .join(""); const xml = ` ${escapeXml(SITE_TITLE)} ${SITE_URL}/devblog ${escapeXml(SITE_DESCRIPTION)} en ${lastBuildDate} ${pubDate} ${items} `; return new Response(xml, { headers: { "Content-Type": "application/rss+xml; charset=utf-8", "Cache-Control": "public, max-age=0, s-maxage=3600, stale-while-revalidate=86400", }, }); }