feat: add RSS xml (#34)

* feat: add RSS xml

---------

Co-authored-by: saicaca <zephyird@gmail.com>
This commit is contained in:
CorrectRoad
2024-04-22 23:42:47 +08:00
committed by GitHub
parent 0676b01b6a
commit e80999669a
4 changed files with 138 additions and 7 deletions

25
src/pages/rss.xml.ts Normal file
View File

@@ -0,0 +1,25 @@
import rss from '@astrojs/rss';
import {siteConfig} from '@/config';
import { getCollection } from 'astro:content';
import sanitizeHtml from 'sanitize-html';
import MarkdownIt from 'markdown-it';
const parser = new MarkdownIt();
export async function GET(context: any) {
const blog = await getCollection('posts');
return rss({
title: siteConfig.title,
description: siteConfig.subtitle || 'No description',
site: context.site,
items: blog.map((post) => ({
title: post.data.title,
pubDate: post.data.published,
description: post.data.description,
link: `/posts/${post.slug}/`,
content: sanitizeHtml(parser.render(post.body), {
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img'])
}),
})),
customData: `<language>${siteConfig.lang}</language>`,
});
}