diff --git a/src/pages/rss.xml.ts b/src/pages/rss.xml.ts new file mode 100644 index 0000000..ac7465b --- /dev/null +++ b/src/pages/rss.xml.ts @@ -0,0 +1,24 @@ +import rss from "@astrojs/rss"; +import type { Frontmatter } from "@utils/types"; +import type { MarkdownInstance } from "astro"; + +const postImportResult = import.meta.glob>( + "../contents/*.md", + { + eager: true, + } +); +const posts = Object.values(postImportResult); + +export const get = () => + rss({ + title: import.meta.env.PUBLIC_SITE_TITLE, + description: import.meta.env.PUBLIC_SITE_DESC, + site: import.meta.env.SITE, + items: posts.map(({ frontmatter }) => ({ + link: frontmatter.slug, + title: frontmatter.title, + description: frontmatter.description, + pubDate: new Date(frontmatter.datetime), + })), + });