摘抄一直于阅读中位居要津,以至于给人感觉,只有摘下来了,才算读过一篇文章、一则新闻或者一本书。尽管我并不认为摘抄是阅读的终点,但摘抄起码留下了阅读的足迹,日后想要回顾、引用或者分享也有迹可循。
既然是摘抄,自然就和采摘果实一样需要妥当的容器,避免读到的好句子散落四处;同时,摘抄工具的外观最好也考究一些,让回顾的过程赏心悦目。几年前,和 Hum 讨论之后,我们曾经将印象笔记(后与其国际版 Evernote 分家)作为摘抄的容器,可惜其近两年来的臃肿姿态与“创新模式”也是有目共睹,我甚至需要 掏钱 才能读自己的摘抄1。这并不是印象笔记特有的毛病,所有的“云笔记”其实都不属于我们,用户实际上拥有的只是数据访问权而非所有权。
撇开隐私问题不谈,仅仅想到我居然把摘抄写在一本租来的本子上,就如芒刺在背。其实,离开云笔记并不意味着放弃了同步,完全可以把笔记写在本地,然后走网盘的云同步服务。我采用的思路是“Markdown 文本文档+网盘同步”,不用被任何一款软件或服务绑死。在苹果环境中,我的新容器就是 DEVONthink2,而自动化摘抄工具仍然是 Shortcuts。

由于使用了最新的 DEVONthink Shortcuts 模块,本文动作需要配合 DEVONthink To Go 3,旧版本 DEVONthink To Go 需使用 URL Scheme,可参加 官方手册。本文所有操作均在 DEVONthink To Go 中完成,不需要打开桌面端,根据行文需要,基本上会简称“DEVONthink”。另外,有读者反映,Shortcuts 动作下载后其中的变量会被重置,从而导致动作无法正常运行,如出现问题,请根据文章步骤检查变量的值,或者直接与我 联系。
为什么是 DEVONthink
选择 Markdown 文档来存储摘抄,同步倒是不成问题,但需要面对其平平淡淡的外观。需要承认,相比带有格式的文本,Markdown 确实不利于阅读,所有的段落看上去都是同一张脸,根本分不清标题、摘抄和年月日(下图左)。Markdown 的“简陋”也许在少部分人看来是一种“简约美”,不过这种美感总不好以牺牲易读性为代价。

Markdown 的浏览问题在 DEVONthink 迎刃而解(上图右),和 Marked 类似,DEVONthink 也可以充当一款“Markdown 浏览器”。同样一份 Markdown 文件,在其他软件中打开后通常进入编辑界面,往往不是白底黑字,就是黑底白字(取决于有没有打开暗色模式);而在 DEVONthink 中,它默认显示该文档渲染后的样式(即进入预览界面),能够轻松区分出标题、摘抄和日期。就摘抄而言,我们很少会编辑它,更多时候是查看、温习或复制其中一段,这些操作在“Markdown 浏览器”中进行,要比直接使用 Markdown 编辑器舒服得多。
另外,DEVONthink 也支持更换 Markdown 渲染主题,除了像印象笔记那样直接改 HTML 代码(印象笔记每次都要改就很麻烦),还可以用一行注释导入完整 CSS 文件,你能想到的排版理论上 DEVONthink 都可以做到,拿来对付摘抄是游刃有余。这部分内容在后文会有介绍。

摘抄到 DEVONthink 的流程
整个摘抄流程可以全部在网页中完成,不用打开 DEVONthink,这得益于 DEVONthink To Go 3 支持了 Shortcuts 模块,可以在 Shortcuts 动作运行过程中自动处理摘抄文件。
第一次使用时需要先在 DEVONthink 中创建一个 Markdown 文本文件,位置随意,用途是存储摘抄。摘抄的来源并不限于网页,我个人除了“WebClip”,还有“InstapaperClip”、“WeiboClip”和“KindleClip”,即根据来源类型划分几个不同的摘抄文件。本文只会用到“WebClip”,其他渠道的阅读摘抄会另外撰文。

相应的,Shortcuts 动作中的 DEVONthink 文件也需要设置成刚刚创建的 Markdown 文档(一共有3处,即1个“Get content of item”模块和2个“Update Content”模块)。
摘抄的流程如下:
- 在网页中选择需要摘抄的句子;
- 点击底栏中的分享按钮,注意不是句子上方弹窗中的分享按钮;
- 运行本文摘抄动作“DT WebClip”,Shortcuts 会显示摘抄进度,通常一两秒就能完成。

摘抄结束后打开 DEVONthink 中的 Markdown 文件,即可看到新摘下的内容。考虑到同一篇文章可能会有多处摘抄,未避免出现重复的标题,我在 Shortcuts 的逻辑上做了一些调整,如果是一篇全新的文章,就把摘抄放到整个 Markdown 文件的最下方;如果一篇文章以前已经读过,则将新摘抄追加到之前摘抄的后面,即所谓的“去重”。这样一来,所有出自同一篇文章的摘抄内容都会汇集与一处,读起来不至于零零散散。
给摘抄添加自定义主题
当初选择印象笔记的原因之一就是它支持富文本,可以排出美观大方的摘抄样式。印象笔记的排版用到了 ENML,一种印象笔记在 HTML 基础上修改而来的标记语言;DEVONthink 则同时兼容 HTML 和 CSS,能做出比印象笔记更多的样式。
乍听上去,似乎 DEVONthink 要折腾的东西更多,事实上网上的 CSS 资源俯拾皆是,直接在 DEVONthink 中的 Markdown 文件开头声明一下想要的 CSS 主题,就能一键套用,从头到尾既不用自己写代码3。

现成的 CSS 文件资源很容易获得,一些编辑器比如 Typora 和 Ulysses 也有自己的主题库,我在文章开头也提供了两个主题,但毕竟是自己手写的,尚不成熟,暂不上传,确有兴趣的读者可以 联系 我获得。
想要在 DEVONthink 中调用自定义主题,首先要获得 CSS 主题文件的 item link,这是 DEVONthink 为每个文件自动生成的唯一链接,即便修改文件内容或改动文件名字,其 item link 也不会发生变动,比通过文件名调用主题更可靠。长按主题文件,在“Copy…”选项中可以看到“Copy Item Link”,选择后就可以得到一串 item link,之后将下面这串文本粘贴到 Markdown 文件的开头(不含两端的括弧 【
和 】
)。
CSS:【这里是 item link】

之后不用做任何操作,DEVONthink 会自动读取 CSS 主题并将其套用到 Markdown 摘抄上。
需要澄清一下,DEVONthink 并不是只能浏览 Markdown,它也可以编辑、并且可以默认就是编辑模式,选择权在于你。预览模式和编辑模式的差别其实很大,在一般的 Markdown 编辑器中,想要“读”摘抄一般就只能打开文件,而打开后的文件就陷入了“写”的状态,内容随时可能被有意无意地改动(比如,选中文本后误触空格而覆盖掉原有文本),不再是单纯的“读”;DEVONthink 的预览界面则提供了纯粹的“读”的状态,大可随意复制文本而不担心改动原文。
可以打个比方,一般的 Markdown 编辑器是一间管理严苛的档案室,不允许你临时驻足,想查看文件内容几乎只能拿着它回到工作位上,并且正襟危坐、全副武装,一不留神就会把文件涂改得面目全非;而 DEVONthink 更像是一所宽松的图书馆,你可以靠在书柜边上轻轻翻动、慢慢阅读4。摘抄本来就不会频繁手动编辑,用 DEVONthink 来浏览不是唯一选择,但可能是最好的选择。
通用摘抄方法
能打开 Markdown 文件的工具多如牛毛,并不是非得用 DEVONthink 做摘抄。如果有读者希望使用其他工具,也可以对本文 Shortcuts 动作稍作修改,调整摘抄的存储容器。这里以保存到 iCloud 为例5,分析一下三个需要修改的地方。
第一处是获取原摘抄数据,这一步用于检测当前浏览的文章是否曾经已经读过,在 DEVONthink 中获取数据使用“Get content of item”模块,而获取 iCloud 中的文件需要结合“Get File”和“Get text”,先获取 Markdown 文件,再提取其中文本。

第二处是追加文本的操作,如果当前摘抄的内容来自一篇新文章,Shortcuts 就会直接将数据追加到 Markdown 文件的末尾。DEVONthink 中的操作是“Update Content”,而追加到 iCloud 则使用“Append File”。

第三处是覆盖原文本的操作,用于把摘抄插入之前读过的文章下面——当然,Shortcuts 没有“插入”这一操作,所以我的做法是先把数据经过一番查找替换处理好,再用整篇新笔记替换掉原 Markdown 内容。iCloud 需要使用一个新模块“Save File”,DEVONthink 则可以继续使用“Update Content”模块并勾选“Append”选项。

但凡提供了获取、追加和存储(覆盖)三种功能的工具,无论是 iCloud 或 Dropbox 之类的网盘服务,还是 DEVONthink 和印象笔记(尽管我不再推荐它)之类的笔记软件,都具备了当作“容器”的最低限度条件;在此之上,就是根据个人所处网络环境、支付意愿或审美要求,选择自己喜欢的工具了。
摘抄可以做得很随便,随手用 Drafts 抓取一下了事;摘抄也可以做得很精致,在 DEVONthink 里自己配置个性化主题。前者有点像在便利贴上写东西,写完随处放、容易丢;后者则像是买了一本纸质上佳的笔记簿,在上面端端正正地抄写佳句。
🛍 我撰写的付费栏目《信息管理,文件为本位的方案》正在 UNTAG 售卖,对本文话题有进一步讨论,欢迎选购。
- 主要指免费账户设登录设备限为2台,以及不能离线阅读笔记,有这两个限制,印象笔记实际上就只是暂时租给你而已。 ↩
- 当然,文本文档完全可以用其他工具打开,没有 DEVONthink 的读者可以直接将摘抄存到 iCloud 或 Dropbox 中,后文会介绍通用的替代方案。 ↩
- 严格来说,只是在 Markdown 文件开头写了一行注释],也不需要改动摘抄内容本身[^印象笔记的 HTML 代码和摘抄杂糅在一起,当我看腻了一个主题、想换换风格时就很要命,根本无从下手。 ↩
- 目前,在 DEVONthink 中“立等可读”——不用进入编辑界面就能浏览——的文件类型有 Markdown、PDF、CSS、HTML、CSV 和 TSV 等等。 ↩
- iCloud 有一点缺陷,即只能自动存储数据到 Shortcuts 文件夹下,想存到其他位置就要手动选择,如果有条件可以使用 Dropbox。 ↩