import rss from "@astrojs/rss";
import { getCollection } from "astro:content";
import { SITE } from "../config";
const allPosts = await getCollection("blog");
const sortedPosts = Object.values(allPosts).sort(
(a, b) => new Date(b.data.date).valueOf() - new Date(a.data.date).valueOf(),
);
export const get = () =>
rss({
// `
` field in output xml
title: `${SITE.name} | Blog`,
// `` field in output xml
description: SITE.description,
// base URL for RSS - links
// SITE will use "site" from your project's astro.config.
site: import.meta.env.SITE,
// list of `
- `s in output xml
// simple example: generate items for every md file in /src/pages
// see "Generating items" section for required frontmatter and advanced use cases
items: sortedPosts.map((item) => ({
title: item.data.title,
description: item.data.description,
link: `blog/${item.slug}`,
pubDate: new Date(item.data.date),
})),
// (optional) inject custom xml
customData: `en-us`,
});