新轮子: Planet.js
发布于 7 年前 作者 phoenixlzx 2904 次浏览 来自 分享

经常泡在开源社区,特别是 GNU/Linux 系的社区里的话,应该对 planet 这个东西很熟悉。它是一个社区用户的聚合,通过定时任务获取订阅频道的 Feed,然后按照更新时间聚合起来,展示在网页上并提供统一的 RSS 源。

Planet 用一种古老而简单的办法将社区成员联系在一起,共享自己的生活和兴趣。

目前经常使用的就是 planetplanet.org (活跃开发在 planet venus? 不明这之间的联系)的程序,很多发行版也将这个工具收到了自家仓库里。但是最近在折腾的时候遇到了很多 caveats 而且大部分都是需要 patch 程序而不是修改环境或配置即可修复的。包括:

  • 莫名其妙无法获取 feed,浏览器访问正常,用 curl 正常
  • 莫名其妙无法读取 feed 内容,其他 feedparser 均正常
  • 对文章内使用相对链接的内容无能为力
  • 模板语言落后
  • 输出路径一直是 cwd,不知道是不是 feature。但是这导致我的 home 下面到处都是 output 目录

所以…强迫症的重写了一个轮子。

既然要造轮子总得考虑得更周全一些。相比较 planet venus,这个轮子的一些 feature 包括:

  • 支持 Gzip 压缩的 Feed 和多种编码(并统一输出 UTF-8)
  • 更完善的相对路径的处理(针对 aimg
  • 自定义允许的标签(a, p, b …)和允许的标签属性(src, href, data-* …)
  • http proxy(不要问我为什么加上这个)
  • 长文展示 summary,以免过长但读者未必有兴趣的文章占据过多翻页时间,长文的字符数是可以自定义的
  • 支持使用相对路径、绝对路径的 URI 和 Gravatar email 作为 avatar
  • (其他一些细节)

源码和安装说明戳 -> https://github.com/phoenixlzx/planet.js

这里是一个正在使用的站点 -> https://planet.nyaa.cat/

以及我的博客文章 -> https://blog.phoenixlzx.com/2017/02/18/dont-ask-me-why-invent-another-planet-river-of-news/

欢迎试着折腾下&发现问题请反馈

1 回复
回到顶部