From a290a25c8ed5f7c10bb14f5fe97d74d03445d154 Mon Sep 17 00:00:00 2001 From: maropboia <164220066+maropboia@users.noreply.github.com> Date: Fri, 3 May 2024 11:38:44 +0600 Subject: [PATCH] improve --- .vitepress/hooks/rss.ts | 53 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/.vitepress/hooks/rss.ts b/.vitepress/hooks/rss.ts index ad98b006d..5febba100 100644 --- a/.vitepress/hooks/rss.ts +++ b/.vitepress/hooks/rss.ts @@ -1,11 +1,7 @@ import path from 'node:path' import { writeFileSync } from 'node:fs' import { Feed } from 'feed' -import { - createContentLoader, - type ContentData, - type SiteConfig -} from 'vitepress' +import { createContentLoader, type ContentData, type SiteConfig } from 'vitepress' import consola from 'consola' import { meta } from '../constants' @@ -21,29 +17,34 @@ export async function generateFeed(config: SiteConfig): Promise { copyright: `Copyright (c) 2023-present FMHY` }) - const posts: ContentData[] = await createContentLoader('posts/*.md', { - excerpt: true, - render: true, - transform: (rawData) => { - return rawData.sort((a, b) => { - return ( - Number(new Date(b.frontmatter.date)) - - Number(new Date(a.frontmatter.date)) - ) + try { + const posts: ContentData[] = await createContentLoader('posts/*.md', { + excerpt: true, + render: true, + transform: (rawData) => { + return rawData.sort((a, b) => { + return ( + Number(new Date(b.frontmatter.date)) - + Number(new Date(a.frontmatter.date)) + ) + }) + } + }).load() + + for (const { url, frontmatter, html } of posts) { + feed.addItem({ + title: frontmatter.title as string, + id: `${meta.hostname}${url.replace(/\/\d+\./, '/')}`, + link: `${meta.hostname}${url.replace(/\/\d+\./, '/')}`, + date: frontmatter.date, + content: html! }) } - }).load() - for (const { url, frontmatter, html } of posts) { - feed.addItem({ - title: frontmatter.title as string, - id: `${meta.hostname}${url.replace(/\/\d+\./, '/')}`, - link: `${meta.hostname}${url.replace(/\/\d+\./, '/')}`, - date: frontmatter.date, - content: html! - }) + writeFileSync(path.join(config.outDir, 'feed.rss'), feed.rss2()) + console.log('Generated rss feed.') + } catch (error) { + consola.error('Error generating rss feed:', error) } - - writeFileSync(path.join(config.outDir, 'feed.rss'), feed.rss2()) - return consola.info('Generated rss feed.') } +