20 lines
663 B
JavaScript
20 lines
663 B
JavaScript
import rss from '@astrojs/rss';
|
|
import { getCollection } from 'astro:content';
|
|
import siteConfig from '../data/site-config.ts';
|
|
import { sortItemsByDateDesc } from '../utils/data-utils.ts';
|
|
|
|
export async function GET(context) {
|
|
const posts = (await getCollection('blog')).sort(sortItemsByDateDesc);
|
|
return rss({
|
|
title: siteConfig.title,
|
|
description: siteConfig.description,
|
|
site: context.site,
|
|
items: posts.map((item) => ({
|
|
title: item.data.title,
|
|
description: item.data.excerpt,
|
|
link: `/blog/${item.id}/`,
|
|
pubDate: item.data.publishDate.setUTCHours(0)
|
|
}))
|
|
});
|
|
}
|