为博客添加 RSS 订阅

作者:mCell日期:2025/10/15

同步至个人站点:为博客添加 RSS 订阅

062.png

为博客添加 RSS 订阅

我时常关注一些博客、技术论坛或者公众号,但是每次阅读都很麻烦:因为我需要在不同网站或者平台间来回切换,甚至有些平台插入了不少的广告。

为了更高效地聚合我所关注的博客和新闻源,我最近开始使用一个名为 Folo 的信息聚合应用。在探索 Folo 的过程中,我认识了 RSS——一种经典但依旧强大的信息同步协议。

059.png

这让我萌生了一个想法:我的个人博客 CellStack 是使用 VitePress 构建的,能不能也成为一个 RSS 源,让我的内容可以被其他人和聚合器轻松订阅呢?

答案是肯定的。而且,借助社区现成的插件,整个过程异常简单,几乎只需要进行一些配置即可。

什么是 RSS

你可能在很多网站上见过这个长得像 WIFI 的橙色的图标。

RSS

RSS(Really Simple Syndication)是一种格式规范,用于发布和聚合网页内容的更新。可以让用户通过 RSS 阅读器(如 Folo、Feedly)订阅自己感兴趣的网站。一旦网站发布了新内容,订阅者就能在他们的阅读器中即时收到更新,而无需一次又一次地访问原始网站。

这就像是你订阅了你喜欢的 Up 主,他更新了视频,平台就会自动推送给你一样。对于内容创作者来说,RSS 提供了一种绝佳的方式,将自己的更新直接推送给最忠实的读者。

关于更多 RSS 的内容请看这篇帖子:高效获取信息,你需要这份 RSS 入门指南

使用 vitepress-plugin-rss

VitePress 的生态系统非常活跃,对于生成 RSS 这种常见的需求,社区已经有了成熟的解决方案:vitepress-plugin-rss。这个插件可以无缝集成到 VitePress 的构建流程中,自动根据你的内容生成 feed.xml

下面,我们来看看集成的具体步骤。

相关 commit:feat(docs): 集成 RSS 订阅功能并配置相关插件

步骤一:安装插件

首先,使用你偏好的包管理器将插件安装为开发依赖。

1# 使用 npm
2npm i vitepress-plugin-rss -D
3
4# 或使用 pnpm
5pnpm add vitepress-plugin-rss -D
6

步骤二:在 VitePress 配置中启用插件

接下来是核心步骤。打开你的 VitePress 配置文件(通常是 .vitepress/config.js.vitepress/config.mjs),引入插件并进行配置。

1// .vitepress/config.mjs
2
3import { defineConfig } from "vitepress"
4import { RssPlugin } from "vitepress-plugin-rss"
5
6// RSS 插件配置
7const RSS = {
8  title: "CellStack - 工程师技术笔记",
9  description:
10    "计算机科学的工程实践和个人思考。涵盖前端开发、后端架构、DevOps运维、AI工程等技术领域的深度文章和实战经验分享。",
11  baseUrl: "https://stack.mcell.top",
12  url: "https://stack.mcell.top/feed.xml", // RSS feed 的完整 URL
13  filename: "feed.xml", // 生成的文件名
14  copyright: `© ${new Date().getFullYear()} mCell`,
15  language: "zh-cn",
16  author: {
17    name: "mCell",
18    link: "https://stack.mcell.top",
19  },
20  // 关键:通过过滤器精确控制哪些内容需要被收录
21  // 这里我们只收录 'blog' 目录下的文章
22  filter: (post) => post.url && post.url.startsWith("/blog/"),
23}
24
25export default defineConfig({
26  // ... 你的其他站点配置
27
28  vite: {
29    plugins: [
30      RssPlugin(RSS), // 将插件实例挂载到 Vite
31    ],
32  },
33})
34

配置要点解析:

  • filter 过滤器:这是我认为最实用的一个配置。通过一个简单的函数,你可以精确地控制哪些页面应该被包含在 RSS Feed 中。在我的配置里,我只希望将 /blog/ 目录下的文章分享出去,像“关于”页面、首页等就不需要收录。这个函数很好地满足了这一需求。

步骤三:让订阅源可以被发现

最后,我们需要做两件小事来确保浏览器、爬虫和 RSS 阅读器能够顺利地找到你的订阅源。

1. 添加 <head> 链接

在 VitePress 的配置中,通过 head 选项添加一个 <link> 标签。这是一种标准的方式,用于向外界声明你的网站拥有一个 RSS feed。

1// .vitepress/config.mjs
2
3export default defineConfig({
4  // ...
5  head: [
6    [
7      "link",
8      {
9        rel: "alternate",
10        type: "application/rss+xml",
11        href: "/feed.xml", // 确保这里的路径与插件配置中的 filename 对应
12        title: "CellStack RSS Feed",
13      },
14    ],
15  ],
16  // ...
17})
18

2. 更新 robots.txt

如果你的网站根目录 public 文件夹下有 robots.txt 文件,建议明确允许爬虫抓取你的 feed 文件。这有助于搜索引擎和其他服务发现并索引你的 RSS 源。

1# public/robots.txt
2
3User-agent: *
4Allow: /
5# ... 其他规则
6
7Allow: /feed.xml
8

完成以上步骤后,重新构建并部署你的网站。现在,一个与你的博客内容实时同步的 RSS 源已经成功上线了!你可以将 https://你的域名/feed.xml 这个地址添加到 Folo 或任何你喜欢的 RSS 阅读器中,亲自体验一下订阅自己创作的乐趣。

比如这里,我的 FOLO 订阅了 CellStack 的 RSS 源之后,就可以看到 CellStack 的最新内容:063.png

结语

相比于手动编写脚本,使用 vitepress-plugin-rss 插件无疑是一种更高效、更可靠的方式。它将复杂的 RSS 规范封装起来,我们只需要关心清晰的配置项即可。

这不仅是一次简单的技术实践,更是对内容传播渠道的一次拓展。在这个算法推荐盛行的时代,RSS 这种看似“古老”的协议,却赋予了我们——无论是读者还是创作者——更多的主动权。它建立了一条纯粹的、无干扰的桥梁,连接了内容和真正关心它的人。

如果你也在使用 VitePress,强烈推荐你花几分钟时间,为你的站点也加上这个小而强大的功能。

(完)


为博客添加 RSS 订阅》 是转载文章,点击查看原文


相关推荐


webSocket快速入门
一只游鱼2025/10/13

webSocket快速入门  一、WebSocket 是什么? WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。 简单说,它能让客户端(浏览器)和服务器之间实时双向通信。 对比传统 HTTP 特性 HTTP WebSocket 连接方式 请求-响应 持久连接 通信方向 客户端 → 服务端 双向 实时性 差,需要轮询


推荐 12 款开源美观、简单易用的 WPF UI 控件库,让 WPF 应用界面焕然一新!
追逐时光者2025/10/12

前言 今天大姚给大家分享 12 款开源美观、简单易用、主题控件齐全的 WPF UI 控件库,帮助大家轻松打造现代化 WPF 桌面应用,提升开发效率与视觉体验! WPF 介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。 HandyControl HandyControl是一套WPF控件库,它几乎重写了所有原生样式,同时包含80余款自定义控件。使用Ha


微硕WSD2018DN22 N沟MOSFET,汽车副驾桌板LED照明负载开关
MOS管-冠华伟业2025/10/10

随着“办公座舱”概念升温,副驾折叠桌板需集成5V/9V USB、LED照明、触控按键等模块,空间被压缩至“毫米级”,却必须满足“零继电器噪音+零待机功耗+1mm高度”三重要求。微硕WINSOK推出DFN2×2-6S N沟MOSFET WSD2018DN22,凭10mΩ低导通电阻与12A峰值电流,为12V平台桌板LED照明提供“芯片级”静音负载开关方案,一键实现“无感”点亮与μA级待机。 一、市场趋势催生器件需求 2025年中国副驾桌板渗透率预计达28%,单车灯节点由1路增至4路,核心痛点:


程序员副业 | 2025年9月复盘
嘟嘟MD2025/10/9

本文首发于公众号:嘟爷创业日记 。 我已经坚持日更600天+,欢迎过来追剧~ 大家好,我是嘟嘟MD,一个10年程序员,现在离职创业,有700天了,我每个月都会写一篇总结复盘,让大家可以近距离看看一个离职程序员都在干什么,今天这篇是九月份的总结,大概2000字,略长,有空的可以翻翻,希望对大家有一丢丢的借鉴作用! 一、月度大事 大家好,九月结束了,忙碌的一个月又结束了,这个月有些事情变化挺大,需要做出取舍。 1:公众号运营+B站视频运营 公众号和B站视频运营还是我的最高优先级,算是我的主业


【Ubuntu 20.04升级python3.9后终端打不开的bug】
woshihonghonga2025/10/7

3. 把Python3.9改为Python3首选项     sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1     sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2     sudo update-alternatives --config python3     


HBase的自动负载均衡,提升大数据存储性能
AI量化价值投资入门到精通2025/10/6

HBase自动负载均衡:让大数据存储像排队买奶茶一样高效 关键词 HBase、自动负载均衡、Region分布、大数据存储、性能优化、RegionServer、Master 摘要 在大数据存储领域,HBase凭借高可靠性、强一致性和可线性扩展的特性,成为电商订单、用户行为日志、物联网传感器数据等场景的首选。但随着数据量爆炸式增长,一个隐形的“性能杀手”会逐渐浮现——Region分布不均:有的RegionServer(数据节点)扛着100个Region(数据分片)忙得“喘不过气”,有的却只拿


Python 的内置函数 all
IMPYLH2025/10/4

Python 内建函数列表 > Python 的内置函数 all all() 是 Python 提供的一个高效工具,它可以快速判断可迭代对象中的所有元素是否都为真值(Truthy)。它的使用非常简单,但结合不同的场景,可以写出非常优雅的代码。 all 的函数原型如下: def all(iterable): ''' 判断可迭代对象内容是否全部为真值 :param iterable: 一个可迭代对象 :return: 如果 iterable 的所有元素均为真值


什么是Fork/Join?
karry_k2025/10/3

ForkJoin Fork/Join 是什么? 它是Java7 引入的一个 并行计算框架, 位于 java.util.concurrent 包下 。 主要解决的问题是:把大任务拆分成多个小任务并行执行,然后合并结果。 核心思想:分治法+工作窃取 核心类 ForkJoinPool 一个特殊的线程池,支持“工作窃取”算法。 每个线程都有自己的任务队列,如果某个线程空闲,会去偷别人的任务执行。 RecursiveTask<V> 代表有返回值的任务。 必须重写 prote


《探索C语言中数组的奥秘(下)》
小龙报2025/10/2

《探索C语言中数组的奥秘(下)》 前言 学习了二维数组,我们已经基本了解了C语言中数组的使用方式,接下来就让我们进入二维数组的学习吧! 一、二维数组的创建 1.1⼆维数组的概念 ⼀维数组的数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称为多维数组。 1.2二维数组的创建 语法规则: type arr_name[常量值1][常量值2]; 例如: int arr[3][5]; double data[


【展厅多媒体】解析VR虚拟驾驶实现多场景自由切换
bmcyzs2025/10/2

VR虚拟驾驶技术的场景切换能力,彻底打破了物理展厅的空间局限,为体验者带来前所未有的自由探索感。系统内置丰富的数字场景资源库,涵盖多种精心设计的驾驶情境——从晨光映照的海岸公路,到霓虹流转的未来都市,用户只需通过直观的选单界面,便能轻松切换不同驾驶世界。 为实现流畅自然的体验过渡,模拟驾驶平台着重优化场景加载效率,通过预加载与渲染技术,极大缩短场景切换等待时间,保障体验过程的连贯性与沉浸感。在汽车展厅中,这项功能被灵活运用于展示车辆性能:切换到山地模式可突显SUV的爬坡能力,选用雨天场景则能清晰

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0