| 1234567891011121314151617181920212223242526272829303132 |
- import { getCollection } from "astro:content";
- export const prerender = true;
- const site = "https://simo.ng";
- function urlEntry(path: string, date?: Date) {
- const loc = new URL(path, site).toString();
- const lastmod = date ? `\n\t\t<lastmod>${date.toISOString()}</lastmod>` : "";
- return `\n\t<url>\n\t\t<loc>${loc}</loc>${lastmod}\n\t</url>`;
- }
- export async function GET() {
- const posts = await getCollection("blogs");
- const visiblePosts = posts.filter((post) => (import.meta.env.PROD ? !post.data.draft : true));
- const urls = [
- urlEntry("/"),
- urlEntry("/ram/"),
- urlEntry("/ram/embed/"),
- ...visiblePosts.flatMap((post) => [
- urlEntry(`/ram/${post.id}/`, post.data.pubDate),
- urlEntry(`/ram/embed/${post.id}/`, post.data.pubDate),
- ]),
- ];
- return new Response(`<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">${urls.join("")}\n</urlset>\n`, {
- headers: {
- "Content-Type": "application/xml; charset=utf-8",
- },
- });
- }
|