813 字
4 分钟

Astro Firefly 主题 RSS 配置:全文还是摘要,这是个问题

前言#

Firefly 是一款非常优秀的 Astro 主题,但在使用过程中我发现 RSS 订阅功能默认只能输出全文,对于一些内容较长的文章来说,RSS 阅读器会显得比较臃肿。如果能添加一个配置选项,让站长自主选择输出全文还是摘要,那就更完美了。

经过一番研究和实践,我找到了一个非常简单的实现方法,只需要修改 3 个文件,就能在配置文件中一键切换 RSS 的输出模式。今天就把这个方法分享给同样使用 Firefly 主题的朋友们。

记录实现的方法与步骤#

实现的方法总共只需要改动 Firefly 主题的三个文件。提前说明一下我当前使用的 Firefly 主题版本 v6.5.8关于这个需求作者后续有可能也会主动跟进。下面的实现过程只针对当前的版本,请自行判断风险。总归一句,多备份准没错。

1. src/config/siteConfig.ts#

analytics 后面加个 rss 配置:

// 统计分析
analytics: {
googleAnalyticsId: "",
microsoftClarityId: "",
},
// RSS 配置
rss: {
fullText: false, // true=全文,false=摘要
},
// 字体配置
font: fontConfig,

fullText: false 就是只输出摘要。

2. src/types/config.ts#

TypeScript 得知道有这个配置。文件末尾,analytics 后面:

analytics?: {
googleAnalyticsId?: string;
microsoftClarityId?: string;
},
rss?: {
fullText: boolean,
},

3. src/pages/rss.xml.ts#

这是关键。原来的代码大概是这样的:

feedItems.push({
title: post.data.title,
pubDate: post.data.published,
description: post.data.description || "",
link: url(`/posts/${post.id}/`),
content: sanitizeHtml(cleanedContent, {
allowedTags: sanitizeHtml.defaults.allowedTags.concat(["img"]),
}),
});

问题就在那个 content,全文都塞进去了。改成条件判断:

feedItems.push({
title: post.data.title,
pubDate: post.data.published,
description: post.data.description || "",
link: url(`/posts/${post.id}/`),
...(siteConfig.rss?.fullText && {
content: sanitizeHtml(cleanedContent, {
allowedTags: sanitizeHtml.defaults.allowedTags.concat(["img"]),
}),
}),
});

用的是展开运算符。fullTexttrue 时才加 content 字段。

修改后的实际效果#

摘要模式下 RSS 长这样:

<item>
<title>文章标题</title>
<description>这是文章摘要...</description>
<link>https://example.com/posts/article-slug/</link>
<pubDate>Mon, 06 Feb 2025 00:00:00 GMT</pubDate>
</item>

就一个 description,干净利落。

全文模式会多一个 content

<item>
<title>文章标题</title>
<description>这是文章摘要...</description>
<link>https://example.com/posts/article-slug/</link>
<pubDate>Mon, 06 Feb 2025 00:00:00 GMT</pubDate>
<content><![CDATA[<p>完整内容...</p>]]></content>
</item>

完整文章全在里面。

全文还是摘要,我怎么选?#

这得看文章类型。

摘要模式适合:

  • 文章超过 800 字
  • 代码块多、图片多
  • 想引导回网站看完整版
  • RSS 文件小一点,加载快点

全文模式适合:

  • 短文,300-500 字
  • 没啥图没啥代码
  • 希望读者在阅读器里直接看完
  • 技术文档类,内容即目的

我现在大部分用摘要,偶尔很短的通知类文章会切回全文。

但也留下了一点坑#

提醒自己要记得写 description。没写的话 RSS 会空着,很尴尬的~

改完要重启 npm run dev,不然配置不生效。

SEO 不受影响。搜索引擎爬的是 HTML 页面,不读 RSS。


改完之后 RSS 文件从几十 KB 降到几 KB,Feedly 刷新也快多了。读者看个大概,感兴趣的点链接回来看完整内容,这样做也希望好朋友们偶尔能回来看看。

如果你也在用 Firefly,有一样的需求不妨也试试。代码不多,三分钟搞定。

最后提醒:改完 build 一下,去 dist/rss.xml 看看效果。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Astro Firefly 主题 RSS 配置:全文还是摘要,这是个问题
https://blog.moewah.com/posts/firefly-theme-rss-full-text-summary-configuration-guide/
作者
GoWah
发布于
2026-02-06
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GoWah
Hello, I'm GoWah.
分类
标签
站点统计
文章
163
分类
9
标签
353
总字数
282,390
运行时长
0
最后活动
0 天前

目录