import { metadata } from "@/app/metadata" import { getAllPostsMeta } from "@/lib/posts" const SITE_URL = process.env.SITE_URL || "http://localhost:3000" 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 }, }) }