烧饼博客

Web Feed 倡议书

独立博客应该提供 RSS/Atom 输出,以便读者可以订阅博客。

原文作者:涛叔

为了推动开放 Web 生态的发展,涛叔设计并开发了 Web Feed 扩展,使用 Web Feed,用户可以在浏览器中方便地订阅独立博客,从而获取类似微信公众号的体验。但目前基于 Web Feed (RSS/Atom) 的订阅方案还有不少问题。今天向广大作者发出倡议,希望能一起解决这些问题。

1、方便读者快速订阅博客

我们虽然可以在博客上指明 Feed 链接,但不同博客的链接位置却不尽相同,多数在页面的右上角,少数在页面底部,还有一些在左边或者右边。有的网站虽然提供 Feed 链接,却只在首页等特殊页面展示。如果用户只是阅读某篇特定的文章,则不能第一时间发现 Feed 链接。

为了解决这个问题,我建议所有作者都为博客加入 rss-autodiscovery 支持。简单来说就是在每个页面<head> 部分都添加特殊的 <link> 标签:

<link rel="alternate"
      type="application/atom+xml"
      title="RSS"
      href="https://u.sb/atom.xml">

这里的 type 属性指明 Feed 类型。如果是 RSS 需要写成 application/rss+xml,Atom 则需要写成 application/atom+xml

有了这样标准化的 <link> 标签,我们才有可能实现自动发现、一键订阅等功能。

2、选择合适的 Feed 类型

我们知道 Feed 类型分为 RSSAtom,虽然 RSS 历史更久远,兼容性更好,我还是建议大家选用 Atom 格式。这是因为在 RSS 规范里面,每一个 <item> 只有一个 <description> 字段。有的站长用它输出摘要,有的站长用它输出全文。局面比较混乱。而 Atom 规范则分别定义了 <summary><content>,在语义上更加清晰,客户端在解析的时候也更加简单。

3、Feed 文件体积过大

很多作者为了方便读者订阅,不但在 Feed 中输出了全文,而且还把所有的历史文章都加到了 Feed 中。这样会生成一个非常大的 XML 文件。Feed 文件体积过大,一方面会消耗不必要的服务器流量,导致下载时间过长,另一方面还会给客户端解析带来非常大的负担。更重要的是,我们不可能在短时间内写很多文章,所以用户订阅 Feed 的时候大多数情况下下载的 XML 文件内容都只有很少变化或者根本没有变化。

为此,我建议各位作者把 Feed 当成一种更新同步机制,而非内容同步机制。也就是说,大家只需要把最新发布的内容输出到 Feed 中就可以了。比如,我们可以只针对最新的十篇文章生成 Feed 文件。读者只需按照一定的周期来检查是否有新的 Feed 就不会错过新发布的文章。为了进一步减少 Feed 文件的体积,我进一步呼吁大家只在 Feed 中输出文章摘要。如果读者有兴趣,则可以作者的博客上继续阅读。

顺便提一个小细节。有的作者为了让读者回源站阅读全文,不但没有在 Feed 中输出全文,而且在输出的摘要的最后还附加了一个超链接,来引导读者跳转到自己的博客。其实这大可不必。因为 Feed 信息中已经包含了文章链接,阅读器一般也都会再显示一个阅读原文按钮。如果在文章摘要中再输出一个,那就会显示两个原文跳转链接,非常难看。

4、Feed 信息不完善

这个问题基本不影响用户订阅 Feed。但我还是建议作者能把网站标题、网站图标、主页链接、个人邮箱等信息加现 Feed 文件。

5、统一内容编码

建议大家统一使用 UTF-8 编码。

以上就是我所想到的 Feed 订阅问题。总结一下就是使用 Atom 格式,加入自动发现的 <link> 标签,只输出最新几篇文章的摘要,完善站点信息,比如一使用 UTF-8 编码。欢迎大家留言讨论。也欢迎大家关注 Web Feed 项目

本文短网址:https://z.sh/7nigF

Web Feed 倡议书
无责任编辑
Showfom
发布时间
May 3rd, 2022
版权协议
人過留名,雁過留聲,翺翔的飛鳥總會尋到屬於自己的領地
記得,要讓簡樸而純粹的心靜靜地感受,你要相信,美好的世界總會自己尋路向你走來