import { metadata } from '@/app/metadata' import { getAllPostsMeta } from '@/lib/posts' export const dynamic = 'force-static' const SITE_URL = process.env.SITE_URL function escapeXml(str: string) { return str .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, ''') } export async function GET(req: Request) { const posts = getAllPostsMeta() const updated = posts.length > 0 ? new Date(posts[0].date).toISOString() : new Date().toISOString() const entries = posts .map((p) => { const url = `${SITE_URL}/posts/${p.slug}` const date = new Date(p.date).toISOString() return ` ${escapeXml(p.title)} ${url} ${date} ${date} ${escapeXml(p.description)} ` }) .join('') const feed = ` ${SITE_URL}/ ${escapeXml(metadata.title!.toString())} ${updated} ${escapeXml(metadata.creator!.toString())} © ${new Date().getFullYear()} Frank Borisjuk ${entries} ` const accept = req.headers.get('accept') || '' const contentType = accept.includes('application/atom+xml') ? 'application/atom+xml; charset=utf-8' : 'application/xml; charset=utf-8' return new Response(feed, { headers: { 'Content-Type': contentType }, }) }