最近又有几个哥们找我的博客交换友链,问我要 RSS 订阅地址,之前一直没想着整,今天动手吧。

何为 RSS?

RSS,中文名是简易信息聚合(也叫聚合内容)是一种基于XML的标准,在互联网上被广泛采用的内容包装和投递协议。

RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用。RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。发布一个 RSS 文件后,这个 RSS Feed 中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的 XML 格式,所以也能在其他的终端和服务中使用,是一种描述和同步网站内容的格式。[2]

RSS 广泛用于网上新闻频道,blog 和 wiki,主要的版本有 0.91, 1.0, 2.0。使用 RSS 订阅能更快地获取信息,网站提供 RSS 输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持 RSS 的聚合工具软件,在不打开网站内容页面的情况下阅读支持 RSS 输出的网站内容。

就本质而言,RSSAtom 是一种信息聚合的技术,都是为了提供一种更为方便、高效的互联网信息的发布和共享,用更少的时间分享更多的信息。同时 RSS 和 Atom 又是实现信息聚合的两种不同规范。1997 年 Netscape(网景)公司开发了 RSS,“推”技术的概念随之诞生。然而 RSS 的风行却是近两年的事,由于 Blog 技术的迅速普及和 Useland、Yahoo 等大牌公司的支持,2003 年 RSS 曾被吹捧成可以免除垃圾邮件干扰的替代产品,一时形成了新技术的某种垄断。这时 Google 为了打破这种垄断,支持了IBM软件工程师 SamRuby 2003 年研发的 Atom 技术,由于 Google 的加入,Atom 迅速窜红。Useland 公司的戴夫·温那(Dave Winner)也迅速将 RSS 升级到2.0版本,形成了两大阵营的对峙。但为了方便用户使用和市场实际的双重压力,两种标准有统一的可能,温那在(2010)3月表示 RSS 将与 Atom 合并。多数版本的阅读器都可以同时支持这两种标准。

插件安装与配置

Hexo 官网插件 页面中搜索 rss,经过简单筛选,最多人用的是 hexo-generator-feed 插件。

该插件的作用和使用效果:

Generate Atom 1.0 or RSS 2.0 feed.

In the front-matter of your post, you can optionally add a description, intro or excerpt setting to write a summary for the post. Otherwise the summary will default to the excerpt or the first 140 characters of the post.

通过 npm依赖包文档 可知,安装命令:

1
npm install hexo-generator-feed

你可以在项目根目录的 _config.yml 添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
feed:
type: atom
path: atom.xml
limit: 20
hub:
content:
content_limit: 140
content_limit_delim: ' '
order_by: -date
icon: icon.png
autodiscovery: true
template:

其中配置项:

  • type - Feed type. atomrss2. 指定 ['atom', 'rss2'] 可以输出两种类型。 默认 atom,用例:

    1
    2
    3
    4
    feed:
    # 生成 atom feed
    type: atom
    path: atom.xml
    1
    2
    3
    4
    5
    6
    7
    8
    feed:
    # 生成 atom 和 rss2 两种 feeds
    type:
    - atom
    - rss2
    path:
    - atom.xml
    - rss2.xml
  • path - Feed path. 当指定了这两种类型时,路径必须遵循类型值的顺序。(默认 atom.xml/rss2.xml)

  • limit - Feed 中的最大帖子数量 (使用 0false 可以展示所有帖子)

  • hub - URL of the PubSubHubbub hubs (如果不使用,请留空)

  • content - (可选) 设置为 true 可以将整个帖子的内容包括在提要中

  • content_limit - (可选) 摘要中使用的帖子内容的默认长度。仅在 content 设置为 false 且不存在自定义帖子描述的情况下使用

  • content_limit_delim - (可选) 如果 content_limit 用于缩短发布内容,则仅在达到字符限制之前的最后一个分隔符处剪切。默认情况下不使用

  • order_by - Feed 排序规则 (默认 -date)

  • icon - (可选) 自定义 Feed 图标。默认为在主配置中指定的电子邮件 Gravatar

  • autodiscovery - Add feed autodiscovery. (默认 true) 许多主题已经提供了这一功能,因此如果您希望禁用它,可能还需要调整主题的配置

  • template - 自定义模板路径,该文件将用于生成 Feed XML 文件,请参阅默认模板: atom.xmlrss2.xml

    即使该插件被配置为输出两种提要类型,也可以只指定一个自定义模板,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # [可选]禁止将自定义模板复制到 public/ 文件夹
    # 或者,您也可以在文件名前加下划线,例如 _custom.xml
    # https://hexo.io/docs/configuration#Include-Exclude-Files-or-Folders
    exclude:
    - 'custom.xml'
    feed:
    type:
    - atom
    - rss2
    template:
    - ./source/custom.xml
    # atom 将使用 custom.xml 生成 Feed 文件
    # rss2 将使用 默认模板 生成 Feed 文件

除了上方给出的官方示例,你也可以直接参考我的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# hexo-generator-feed
# Feed生成插件 https://github.com/hexojs/hexo-generator-feed
# 插件配置教程 https://blog.meta-code.top/2024/04/11/2024-11/
feed:
type:
- atom
- rss2
path:
- atom.xml
- rss2.xml
limit: 15
hub:
content:
content_limit: 140
content_limit_delim: ' '
order_by: -date
icon: /img/friends/Barry-Flynn.jpg
autodiscovery: true
template:

生成并部署

通过执行生成命令:

1
hexo s

即可在 /public 目录下发现,成功新增了 atom.xmlrss2.xml 两个 Feed 文件。

然后执行部署命令:

1
hexo d

即可获得在线订阅地址,如本站的:


【参考内容】

[1] 搜狐 - 现在常见的Rss 与 Feed 到底是什么?

[2] 易晓阳.图书馆学研究.广东省科技图书馆.2006年.第8期 RSS:含义、本征与应用