在去年写这个网站的时候就有想过加上 RSS 订阅,但是当时这个功能的优先级比较低,加上基本没想过有人会关注自己的博客,这件事就一直搁置了。
最初想起来这件事是一个月前看到一位小伙伴的文章 朋友圈,于是想着等不忙的时候去鼓捣一下 RSS。
结果由于最近工作比较忙没法上班写,周末也总是因为各种事情没法好好坐下来写代码,就又给忘记了。
后来我发的风信子那篇文章收到了一位小伙伴的留言,其中又提到了 RSS 订阅,才让我又想起来这件事情。正好那一周的周末两天有时间坐下来敲代码,于是周六下午就直接开始(算是从零开始,以前没有仔细了解过 RSS 是什么)鼓捣 RSS。
整个过程的话,一张谷歌浏览器的历史记录应该就可以看出来我以前对 RSS 的认知是多么欠缺哈哈哈(图片太长我给折叠起来了)。
图片有点长,点我查看
从历史记录里可以看出来,大致上分为下面几步:
- 最开始是想自己写代码来生成 RSS 文件,然后去 github 看了很多相关的实现代码
- 自己其实都没用过 RSS,于是又搜了一些 RSS 阅读器,准备先自己体验一下 RSS,看下 RSS 到底是怎么个样子,也方便自己最后验证 RSS 文件内容的正确性
- 访问了几个印象中支持 RSS 订阅的博客,把他们的 RSS 文件下载下来对比了一下,发现大家各自的实现都不一样
- 于是自己开始搜 RSS 的规范,找到了 RSS ADVISORY BOARD 这个网站,看了很久关于 RSS 2.0 的文档,大致上了解了 RSS 文件大部分常用字段的含义以及哪些是必需字段
- 知道规范后于是就自己自己网上找了一段不依赖第三方库的纯 Java 实现生成 RSS 文件的代码来改造。 RSS 要求时间格式需要采用 RFC822 标准,于是又花了很多时间去了解这个标准以及如何将常用的
LocalDateTime
类型的时间格式化为满足 RSS 要求的时间格式 - 生成 RSS 文件后再用 rss-validator 校验,不断修改代码直至完全通过校验。
- 目前本网站的方案是每次发布新的文章、更新文章、删除文章都会调用生成 RSS 文件的代码重新生成一次新的 RSS 文件
今天将相关的代码(rss-generator)整理了一下,发布到了 github,有需要的朋友可以直接 clone 下来引入到自己项目中使用。
2 条评论
大佬!
😭 Ctrl CV 工程师