2585 字

基于blogdown的在线rss阅读器

我们这批活着的地球人在有一点上是相对平等的,那就是网龄。2007年大二时我在网吧启用了 google reader,但相当长的一段时间里我都没有看。直到2010年初,去向定下来后我陷入一种无聊状态,此时开始使用 rss 阅读器,等刚搞明白怎么回事并感觉打开新世界后,谷歌就退出中国了。假如我开窍晚一个周,可能后面很多事就不可能发生了,有时想来真的是无因无果的随机扰动改变了一切。

为了能正常使用GR,我很快开启了个人翻篱笆工程,而在GR上也逐渐积累了很多优质资源,顺藤摸瓜关注了很多能提供优质资源的用户,因为我兴趣比较分散,很快就发现了不同领域里对同一问题的对立观点并在评论区见识到了更多不同意见。应该说那时我才搞明白“和而不同”是啥意思,而篱笆的存在事实上分割了两种认知水平。

我一度沉迷 GR 到每天有四五个小时都在上面吸收新知识,而过度的使用也让我意识到知识管理的重要性,不到半年时间,我就把 GR 每日使用时间锁定到了1个小时并严格执行,这样其实给了更多大脑自由整合知识的时间。同时,伴随 RSS 源的不断积累,我也逐渐克服阅读英文文章的障碍(其实大学英语水平完全够用,就看你想不想用),并纳入了科技论文查新体系。

跟很多这个年龄段的毛头小子一样,毫无来由的见识优越感让我重启了另一个2006年起就不断重复的“从入门到放弃”工程:写作,或者更具体些,博客。我06年才把上网列入刚需,当时就开了百度空间,而qq空间印象中是需要邀请的,我懒得求人也对其较慢的加载速度不满,但大学学业还是比较重的,所以空间到最后关闭都没写几篇。08年买了笔记本后我很虚伪地限定自己只做跟学习有关的事,但其实当时还是沉迷技术论坛,那时看到自己的帖子被放在首页推荐我是肯定会跑食堂吃点好的的,那时没有现在对知识产权搞得这么功利化,就觉得分享是美德。但论坛归属感很快就因为社区里出现的一些事情而烟消云散,写的东西也不愿再看。但在接触 GR 后,我重新觉得可以写点东西了,然后就有了科学网博客,当时我可是等了好几天才实名通过认证的。而10年8月份我就写了一篇专门介绍 GR 的,现在看里面很多不懂装懂的成分,不过有了输出后整合型思考开始出现,我更多从学他人变成了整合入自己的知识体系,这点其实很重要。

好景不长,GR 退出大陆我是可接受的,因为有无数种办法可以重新连上。但谷歌放弃掉 GR 的内部分享时我意识到这个产品最大的特色已经丢掉了,很多分享者还没来得及说声谢谢就失联了。到2013年谷歌放弃 GR 时,我就开始考虑使用本地阅读器了。 feedly 等替代品在功能上是没问题的,但用户聚不到一起了,这就没多大意义了。随之而来的自媒体浪潮更是把很多博主改造成了公众号运营者或投向知识付费的大浪潮里,很现实的情况就是阵地还在,人没了,大家都进入黑暗森林了。就我个人的 rss 来源而言,原来每季度我都要找半天来整理,现在一年都不整理一次了,每次整理都会看到大量的源年输出量小于1,成了纪念馆。现在每天更新的大都是新闻跟有专人运营的博客,个体户少了,分享搬运工就更少了。内容产生的源头动力不足,分享者则根本找不到基于 rss 的在线评论分享平台,只能跑到朋友圈或微博里活动,而那里面你控制不了的东西太多。

但凡事都有转机,谢大的 blogdown 可以说是我见过的最简单易用的内容生产工具,而静态网站也符合绝大多数内容生产者的实际需求。你可能说背后还不就是 hugo?类似的工具很多,github pages 背后的jekyll也挺简单。甚至谢大最近提到的netlify 也提供了技术平台。如果你的需求就是文字,那确实够了,但稍微跟技术沾边的都需要点代码支持,特别是我相信文学化编程会是一个小众但不可忽视的趋势,让别人知道你如何实现一件事更真诚,也更符合我心中互联网应有的样子,所以支持 rmarkdown 这个杀手级应用的 blogdown 自然是我的首选。没错,这仅是个人喜好,我当然知道大风气跟现状是什么,但每个人都有不顺应潮流的自由。

但就算不断有人加入内容生产,另一个问题也很致命,那就是共享平台,特别是 rss 内容的共享平台。现在各个互联网公司都把能让用户留下作为重要目标,rss 这种上古工具自然不太受待见,广告不好发不说用户基本是匿名的,商业价值有限。GR 当初的优势在于用 google 账户可以进行用户区分与关注,眼下这样的平台是绝不会轻易提供类似 rss 阅读器这种大流量低附加值的服务的。不过 Disqus 倒是个例外,因为其可以跨平台支持评论,而且也通过评论广告的模式可以运营下去,国内的类似平台多说则直接关闭了。当然还是老问题,需要科学上网。另一个类似的服务是 gitment,利用 github 的issue功能来提供评论服务,唯一的缺点就是第一条评论需要用户开启才能用。

我个人的强项不是开发,但功能整合是可以做的,在跟谢大年初交流后,他提出了一个取代某广告横行网站的思路,后续我发现其实可以更进一步直接用 blogdown 做在线的 rss 阅读器,解析 rss 需要点 xml 或 json 基础,把解析的 rss 转成文本则只需要在 yaml 头文件里做点文章,利用 github 的命令行 PR 功能与 cron 的每日任务功能,我们可以构思出这样一个处理流程:

每天固定时间启动一个脚本,首先检查一个 rss 地址列表,然后去爬源文件回来,看看跟之前一天有没有变化,如果有就写一个 yaml 文件,然后 hugo 会把这个文件解析成网页,当然只有摘要,因为作为一个在线阅读器,如果抓全文就有不必要的麻烦,但有原文链接。

在网站的首页设计上,我套用了谢大的 xmag 模版,但做了修改:点击标题跳转原文,点击摘要则跳转一个摘要页面,这个页面是支持 gitment 或 Disqus 的,这样如果你想跟人交流就可以在这里讨论分享。当然为了让网站有点区别度,我又设计了一个日报机制,也就是说,你如果每天固定时间来看这个网站,都只能看到当天更新的内容,之前的内容是没有入口的,错过了就错过了,这样你大概永远不会看到 1000+。但我的恶趣味在于保留了页面数,虽然你能看到前面很多页,但对不起,首页里只有当天更新的入口。如果真的想看,这个 rss 阅读器本身也提供 rss 输出,你可用其他 rss 阅读器来看到过往文章。

这个在线阅读器的一个优势在于完全自动且基于 GitHub,你如果想增加 rss 来源,只需要对这个rss源文件PR就可以了,作为一个懒汉,我已经把个人干预降到了最低。同时,这也是个模版网站,你完全可以自己建一个放到 netlify 上,例如我就为环境期刊搞了一个,用来督促师弟师妹看文献。

当然,这个也是有原型的,谢大的 twitter-blogdown。这个网站已经悄悄运行了两个月了,目前的问题在于我并没有完全开放 gitment 的评论,而修改版的主题默认支持的是Disqus。