作为在线阅读的重要环节,摘抄每个人都会做、但总是遇到各种不便。借助自动化工具,我们已经实现了 用快捷指令做网页摘抄,可以把网页文章中的内容带上标题、出处链接导入 Evernote;而像书摘、好句收集这些自动化程度稍低一些操作,我们也通过 Drafts 进行了手动摘抄。可以说,在线阅读中的大部分摘抄需求都已经被解决了。
前文阅读:
不过,还有一些进阶的需求没有被满足。比较讲究的读者,可能还会挑一个稍后读工具,专门在里面读文章——Instapaper 就是其中最受欢迎的选择之一。如何将 Instapaper 中的好句子用漂亮的格式摘抄到 Evernote,便是这篇文章的主题。
我们将介绍批量导出和自动同步两种不同的摘抄方式,建议追求实用性的读者先按顺序阅读,对于细节原理特别感兴趣的读者可以重点阅读后半章的自动化部分。
和前两篇文章一样,截至发稿,本文所用方法同时适用于 Evernote 和印象笔记。
从 Instapaper 批量导出批注到 Evernote
使用 Instapaper 的读者估计都知道或用过其内置的批注(Highlight)功能,这个设计在导出时也大有用处:读文章时顺手做的批注,可以在结束阅读后批量导出;再借助快捷指令,就能一口气带上样式导入 Evernote。
[rihide]
- 在 Instapaper 文章最下方点击「显示所有注释」
- 选择格式「HTML」
- 运行快捷指令
稍等片刻(因为快捷指令要走联网服务来添加笔记),即可在 Evernote 中看到带有格式的摘录内容。Instapaper 的这一导出设计非常符合我们的阅读习惯,多数人肯定更喜欢这种一次性做完事情的操作,再配合快捷指令,整个摘录流程几乎可以看作读罢后的小憩,执行起来没有压力。
这个快捷指令动作其实不难制作,我们稍微梳理一下就能找到思路。
确定 HTML 代码
延续前两次摘抄的风格,理想情况下,我们在 Evernote 中的一段成品是这种样式的:
- 标题居左,有醒目的加粗,并且带超链接以供点击。
- 摘录靠左,采用少数派经典的引用样式。
- 日期靠右,使用不显眼的普通样式即可。
在 Evernote 中,这些样式都是通过 HTML 代码实现的(严格说是 Evernote 在 XHTML 基础上自己设计的 ENML,不过暂时不会涉及)。Instapaper 默认就能够导出 HTML 代码,如果把它和理想的样式代码放在一起,会发现我们距离目标已经很近了。
这里简单提一嘴 HTML 代码,它们往往是一段段由一对儿 <标签名>
标签包裹起来的文本,通常情况下最终展示样式就由这些标签决定。我们可以在包着日期的 <p>
标签里面看到一段 ,英语稍微好一点的读者大概已经脱口而出:这是「文本靠右对齐」的意思吧?没错。HTML 就是那么直白。
接下来的事情就交给快捷指令,说白了,重点就是不断地文本替换和组合。
在快捷指令中实现导出动作
所幸 Instapaper 导出的代码已经足够整齐,刚才梳理好的目标 HTML 代码通过文本替换加文本组合就能制作出来。
- 把
<h1>
标题标签换成<b>
加粗标签。 - 给
<blockquote>
标签配上引用样式。 - 末尾加上
<p>
标签包裹起来的日期。
这之后,就是把 HTML 制作成可供日常观看的富文本(相信没有多少人喜欢阅读干巴巴的代码),并且通过「追加到备忘录」操作添加到 Evernote 的摘录中。
最后一步时要留意笔记本设置,我提供的动作默认设指定了「摘录」笔记本(我的 Evernote 中确实有这个笔记本),但每个人的情况各有不同,使用动作前建议确认一下笔记本是否设置正确,不然新摘抄的内容自然无处可去。
整个快捷指令动作需要接受输入,类型为「文本」(HTML 代码也属于文本)。由于几乎只通过 Instapaper 的分享菜单运行,可以关闭此动作在小部件中的显示,省下一个按钮位置。所有步骤就绪以后,我们可以随便挑一篇文章,测试一下批量导出到 Evernote 的效果。
导出成功。
小练习:将 Instapaper 的笔记导入到 Evernote
除了批注,Instapaper 还进一步支持了笔记。如果你有做笔记的习惯,不妨思考一下如何将批注带上笔记一起导入 Evernote。
将批注自动加入 Evernote
这一部分的动作相对难以实现,乍看上去实用性也和投入的成本不成比例,不过其中涉及的自动化思路、淌过的混水非常值得和诸位分享,即使在 Instapaper to Evernote 的流程中暂时不用,也可能在其他阅读摘抄中发挥作用。
预期的效果是每次在 Instapaper 中批注,就自动在 Evernote 中添加一条带样式的摘录。既然要实现「全自动」,IFTTT 自然而然成了首选;但是 IFTTT 对于 HTML 代码的支持非常暧昧1 ,常常出现部分代码莫名其妙无效的情况; 后来借鉴 @真嗣 在《阅读、信息整理与写作:真嗣 | 我的自动化》一文中提及的方法,我先把摘录数据暂存到 Dropbox 中,再另行打算——比如,用对于 HTML 支持更完善的 Zapier 来实现自动追加摘录。
于是,完整的流程就变成了:
- 通过 IFTTT 收集 Instapaper 中的批注
- 通过 Zapier 自动添加摘录,同时赋予指定样式
顺带一提,引入 Zapier 纯属对于样式的追求所致,如果你的关注点只在收集文字本身,仅用 IFTTT 也能完成自动摘录。
这两个互联网自动化工具都不像捷径那样可以排重,所以同一篇文章下做了多出批注的话就会在最终摘录中出现重复标题。这样看来,这套全自动方案对于经常读一些轻快小文的人更加有现实意义,毕竟文章短的话批注也往往随处变少,出现标题重复(特别是连续七八个重复)的「惨案」也会少发生一些。
总之,我们先来看一下具体的实现。
用 IFTTT 捕捉 Instapaper 批注
针对 Instapaper 批注的捕捉已经有不少现成动作(正式名称是「Applet」),基本思路都是监测「New highlight」条件,然后触发别的动作来保存批注数据。我们这里用到的工具是 Dropbox,因为稍后还要靠它和 Zapier 桥接。
整个 IFTTT 流程中有两处需要注意,首先自然是对于摘录内容的捕捉和整理。我们希望通过 IFTTT 就理出符合要求的 Evernote 专用 HTML——ENML——的代码。
<b><a href="{{URL}}">{{Title}}</a></b>
<blockquote>{{Text}}</blockquote>
<p>{{CreatedAt}}</p>
将上述代码粘到 IFTTT 动作中即可。如果 IFTTT 没有马上把 {{}}
里的内容识别出来,可以删除这些括号后重新输入。
知识点:ENML 和 HTML 的区别
ENML 是 Evernote 基于 XHTML 开发的标记语言,从名字上就能猜出来,它和 HTML 有着深厚的渊源、但显然又有所不同。实际上,我们能感受的主要区别就两个:一是更严格的语法,很多 HTML 里模棱两可的样式写法在 ENML 里都更统一;二是极少数 Evernote 专用样式(就 4 个),我们这篇文章用不到。
Drafts 和快捷指令对于 HTML 代码到 Evernote 的处理似乎比较完善,即便掺杂了少量不符合 ENML 或者重复、冗长的代码,最后也能正常显示,但是用 Zapier 导入摘抄时就要处处小心。为了避免歧义,本文从上半部分开始提供的代码就兼容了 ENML。
平时为了表示加粗,有人喜欢 <strong>
,有人偏好 <b>
,但是这个自动摘录的动作只认后者。由此可见 ENML/XHTML 的严格。
解决完最让人头疼的代码问题后,别忘了为摘录数据文件在 Dropbox 中指定保存位置。为避免其他文件误触 Zapier 动作,最好为摘录操作建立一个专用文件夹。
上面这些细碎的设置都完成后,可以在 Instapaper 中进行一些批注操作,确认运行正常后再进入 Zapier 部分的构筑。
用 Zapier 创建带格式的摘抄
对于多数读者来说,Zapier 都算是一个进阶版的 IFTTT,某种意义上它的步骤的确比 IFTTT 更繁琐,好在我们用不到太高深的模块,最难的部分(HTML 代码)在上一小节中也已经过去了。
Zapier 动作(称为「Zap」)和 IFTTT 一样,也由触发条件和后续操作两部分组成:条件是「New File in Folder」,动作是「Append to Note」。看到 Zapier 里的这个触发条件,诸位应该不难理解为何要为摘录数据文件专门设置文件夹。
在上半段连接 Dropbox 时,我们需要填写和 IFTTT 中一致的文件保存路径。接着 Zapier 会很细心地尝试连接 Dropbox,确认联动成功后才会接着后面的步骤。后面和 Evernote 连接时 Zapier 也进行一些测试,这些时不时出来的小测验(而且很可能会出错、需要多测几遍)可能会让第一次使用的人感到压力,Zapier 相对复杂难用的名称多少也与之有关——可转念一想,能够在动作整体成型前就让问题暴露出来,对于冗长的动作来说也是一件好事。
之后再配置一下 Evernote 部分。笔记和笔记本设置都和 IFTTT(以及我们介绍过的其他摘录动作)类似,你当然可以自己修改;笔记内容需要设置为 Dropbox 新文件的文本,第一次设置时 Zapier 会尝试获取一份近期文件,万一有问题的话也能展现得清清楚楚。
最后,确认设置无误,建立这个动作即可。
小结
最早从 Hum 的一篇《在线阅读处理流程:从需求、到方法、再到工具》开始,我慢慢意识到将阅读打造成正经流程的重要性。自网页摘抄、书摘到稍后读工具(Instapaper)的批注,我们满足了一个又一个摘抄需求,在不同的场景下借用各种自动化工具,用统一的样式把摘录内容保存在同一个容器——Evernote 或印象笔记——中。
这些时间和精力的付出并不是为了满足 geek 的情怀,真正热爱阅读的人士都能够应该能够理解,今天的折腾后是为了明天更流畅的阅读,并且在日后需要回溯时,也能看到赏心悦目、无一遗漏的摘录历史。1
暂无评论内容