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

> 本文公开全文。

原文：https://utgd.net/article/8120

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

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

脚本下载 GitHub

## 从稍后不读到过滤文章

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

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

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

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

## 从消极过滤到积极过滤

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

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

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

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

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

## 从过滤文章到过滤订阅源

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

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

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

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

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

## 小结

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

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

🛍 我撰写的付费栏目《信息管理，文件为本位的方案》正在 UNTAG 售卖，对本文话题有进一步讨论，欢迎选购。

🔗 付费栏目链接

---

[前往标准阅读页](https://utgd.net/article/8120?audience=web)
