泛泛之交与忘年挚友:谈 DEVONthink 与 RSS 过滤

发布于:2022-09-23

目录

我曾使用免费的 NetNewsWire,从在线过滤到飞跃到本地过滤;此后,我发现 DEVONthink 能够以开放格式保存 RSS 全文,且自动化功能更丰富,遂迁移至此。应读者要求,这篇文章先于 NetNewsWire 的文章发布。

把过滤做成一门生意,比过滤这个需求本身还要悲哀。我原本计划为 DEVONthink 编写一套鲁布哥德堡般复杂的 RSS 工具,从正则表达式过滤、自然语义识别标签匹配到文章自动分拣,但在写完第三个脚本之前,我就意识到了更重要的事情:好文章,根本不需要过滤。高质量订阅源的首要特征就是爱惜羽毛,其读者不需要特别提防软广。

巴别塔在前几层就停工了,但我获得了更重要的东西。如今,我每次刷出 500 条左右的文章,被过滤掉的不过十几二十篇,且仅仅是因为话题不感兴趣(比如,对 Facebook 的近况和扎克伯格又亏了多少钱我就一点都不感冒)。过滤机制的直接功能是过滤文章,长久来看,则是过滤订阅源本身。最终,我们不应当花费过多精力在过滤上,就像与人交往,与其处心积虑背后抱怨,不如一开始就认真择友。本文仍然会提供 RSS 过滤工具,但初衷不再是和广告之间的军备竞赛。

从稍后不读到过滤文章

RSS 常被用作稍后读工具,同时,后者的血缘诅咒也被继承下来:稍后读,往往会变成稍后不读。我曾经对这种调侃感到不可思议,尤其发现这不仅仅是一种自嘲,而是一个广泛存在现象时。直到我忍不住偷窥他人的收藏列表,看看其中正在腐烂的僵尸文章究竟为何物时,方恍然大悟:这些别人不读的东西,和我过滤掉的文章几乎如出一辙。1

稍后不读,并不仅仅是意志力的指标,更是订阅源本身质量的尺度。之所以辛辛苦苦收集——往往还是向人讨要——一堆订阅源,收到文章后却又弃如敝履,原因在于没有做好过滤整理工作,尤其是过滤工作。盖阅读就像交友,有的订阅源只是点头泛泛之交,有的则值得深入交往;而没有过滤功能的 RSS 阅读器,就像一场永不散场的宴席,吃到后来身边全是酒肉朋友,以至于分不清谁值得深交,谁又只需要点头微笑就行。交友不慎,最后变成游戏人生;阅读饕餮,来者不拒,最终就没有重点,哪篇文章都想读,都以为自己有水平读或有时间看,稍后不读的条件也就水到渠成。

Alt text
DEVONthink 过滤 RSS

DEVONthink 本身并没有“屏蔽”一说,但我们可以把不想看到的文章标为已读或直接删除,效果上就近似过滤(最好是标为已读而不要删除,否则容易误删有用的文章)。我准备了一个 AppleScript 脚本,首先在下图箭头所指的括号内填写屏蔽关键词,然后选中 DEVONthink 中的 RSS 文章,再运行脚本即可——可直接使用系统脚本编辑器,有能力的读者也可以考虑自制 DEVONthink 自动化动作。此处只提供可以运行的脚本。

Alt text
填写需屏蔽的关键词

关键词需用英文双引号 "" 包裹,如有多个关键词,可用英文逗号 , 隔开。关键词不限语种,也可以混用,比如 VR 头戴,毕竟其原理只是字符匹配,无所谓语言差异。示例脚本仅根据标题过滤文章,但 DEVONthink 也允许将 URL 甚至文章内容设为过滤条件,你可以前往脚本编辑器中查看 DEVONthink 的语法,在 record(一篇文章就算一个 record)的属性中选择需要的过滤条件。

Alt text
可供选择的过滤条件非常丰富

从消极过滤到积极过滤

过滤功能并不常见于 RSS 阅读器,而支持过滤的阅读器往往都要付费。过滤已经成了一门生意,就和减肥、无添加食品以及极简主义家具一样,越少越费钱。

但过滤又不等于屏蔽,这点是终日忙于造城墙的 RSS 服务私死活想不通的。屏蔽广告当然是过滤的基础含义,但这只是消极的过滤;过滤还可以积极分拣,给重点关注的内容打上星号,或者把暂时处理不了、只能留待周末腾时间对付的文章专门放进一个文件夹,甚至能够对正文做筛选,把包含图表或代码实例的文章——这些都透露着干货的气息——预先挑出来。一旦把过滤拓展到积极的方面,NetNewsWire 便显得吃力(更不要说所有的在线服务),最终搬到 DEVONthink 里读文章,也就势在必行。DEVONthink 中的文章都是 HTML 格式,而 DEVONthink 本身又是一个文件管理工具,于是我们在文件管理中的那一套——分类整理、标签管理、标记加星、全文搜索等等——可以全部用在 RSS 上。2

Alt text
DEVONthink 标记 RSS

标记方式和屏蔽类似,也是先在脚本中填好需要留意的关键词,然后选中订阅源中的所有文章,运行脚本,即可标出需要关注的文章。同样,此处的关键词也可以填写多个。考虑到同一个标题可能既包含需关注的元素,又有想要屏蔽的字符,未避免殃及池鱼,最好先标记一遍,再去剩余的文章中运行过滤脚本。一定程度上,积极过滤比消极屏蔽更重要,因为单纯没被归为垃圾的文章,也可能只是快餐性质,不见得都要读;而标记出来的文章,更可能是自己翘首以盼的。

Alt text
填写需标记的关键词

从屏蔽到分拣,阅读就成了任务管理:避之不及的垃圾,都阻挡在书斋之外;能够在乘车或者候餐时马上读掉的,奉行两分钟原则;而暂时读不了的大家伙,则分门别类,留给以后。如此,抓取新文章后的选择就不是只有“读”或“稍后读”两个选项——硬要说的话,当然还有无视文章,但我们往往患有松鼠症,倾向于收藏而不是果断抛弃——而是有一套完整的分类和文件管理体系。苟指望在线服务提供这些功能,则是痴心妄想;而搬出现有的文件管理系统,一切又一拍即合。

总之,过滤不等于屏蔽,而是分类管理。苟过滤得当,则稍后不读的症状应当大大缓解。和处朋友一样,避开那些狐朋狗友,也不高攀名流公知,真正的好友也就像退潮后的礁石一样显露出来。

从过滤文章到过滤订阅源

第一道过滤针对文章,第二道过滤则直接触及订阅源本身。

在做了一段时间的过滤工作后,我发现战斗并没有升级,因为那些不断换用肉麻标题、防不胜防的订阅源,早早就被我退订,我终归没有陷入兵来将挡水来土掩道高一尺魔高一丈的焦油坑中。不想被人践踏草坪的话,最优美的办法是种满花卉。惟不设防或者只用一两个关键词就能打理干净的订阅源,才值得留在 RSS 阅读器中;当 RSS 阅读器中多为和自己意趣相投的订阅源,垃圾信息也就没有了生长的温床——而过滤工作,到此基本可以打住。

惟将居室打扫干净,方有心思装点打扮。此时,诸如标签管理、翻译文章、自定义 CSS 样式等想法,也接连冒了出来。我很快走出了和垃圾信息以及信息爆炸的战争,转向正面的工作。

Alt text
原始样式和自定义样式

虽然可以支持正则表达式,但我自己从来没有用过,因为在一两次过滤之后,某个订阅源的品性就昭然若揭,如果它来者不善,或者我高攀不起,则是否值得继续交往,自然心中有数。苟若某个订阅源不断升级广告植入方式,逼人编写复杂的表达式,那最好的应对方法就是与其说再见——就像对付电信诈骗,不听、不接、不理会,比和他斗智斗勇要管用得多。欧美的 RSS 订阅源通常比较实诚,打广告的话,会在标题中明确标出“Sponsor”,直接填上关键词就能屏蔽。3而中文互联网,简直让人感叹汉语的博大精深,在暧昧标题方面日新月异,有时候甚至读完正文才会发现是软文——这种事情只要碰上一次,整个网站都可以退订,毕竟,您怎么能指望在一个骗子那里占便宜呢?

其实,除了——可能也包括——正则表达式以外的过滤功能基本都是防君子不防小人,如果一个订阅源能够突破关键词过滤,则它只能算是小人一个,与之割席分坐就好,犯不着搬出重兵利器。至少我对我自己而言,正则表达式更大的意义是一种威慑,让我知道自己有能力可以阻挡几乎任何形式的垃圾信息,但是我基本没有动用过这枚核武器。这就像交朋友,人品不好就足以一票否决。

小结

本文提及了 DEVONthink 的诸多特性,用于 RSS 阅读仿佛天造地设;比工具更重要的是,我发现并遵守了一套与订阅源交往的守则,这远比某一款工具的适用范围要广。

DEVONthink 和 RSS 碰撞出的迷人火花,包括但不限于:屏蔽垃圾信息,自定义关键词;标记重点文章,自定义关键词;用正则表达式做到前两项;将外文 RSS 批量翻译成中文;自定义 CSS 主题样式;全文搜索,可指定文件夹或全局搜索;批量保存文章为离线文件,比如富文本或 PDF……不过 DEVONthink 毕竟不容易上手,这篇文章以展示效果、提供工具和分析思路为主,不能在一篇文章中涉及所有内容。如果读者兴味盎然,则也可能再写几篇技术方向的文章。


  1. 这里的过滤,指第一道过滤,即过滤文章,尤其是广义上的文章过滤。 

  2. 如果你有需要,可以通过 DEVONthink 把 RSS 文章转换——而且是批量转换——为富文本或 PDF。后者的话,分页或连续的都行。 

  3. 大概率,懂得 RSS 订阅技术的老古董们,也不是这些推广的目标用户。 

关联文章

相关文章

UNTAG Premium 第六期

UNTAG Premium 第六期

Hum 在这期的某篇文章里放飞了自我,文刀在这期的某篇文章中展示了他的上流音乐品味。 来自 UNTAG 团队的第六期会员内容。会员内容会在每周一更新。 本期内容...

欢迎加入鹈鹕社

请登录您的账户

注册账户

请填写以下注册信息

找回密码

请输入您的用户名或邮件地址,重置密码

“这篇文章不 Work 啦!”

本文中有错误或过时的内容吗?
向“不 Work 机器人”报错,
第一时间获得更新通知。

此功能仅供 Untag 订阅会员使用。
你可以购买会员资格后使用。