0 前言
我大部分时间的阅读场景是在 Mac 笔记本电脑中进行的。
在 Macos 中,为了阅读与管理自己积攒的数百本图书,我使用了 Calibre 来充当图书管家。
下一小节为不了解 Calibre 的朋友简单介绍下这款软件的功能,已经了解的朋友可以跳转后文看今天的主题:一键同步 Calibre 的批注内容到 Obsidian 中。
1 Calibre 是什么
Calibre 的对自己的定义是作为电子书的管理软件:
Calibre 是一个完整的电子图书馆,包括图书管理,格式转换,新闻,将材料转换为电子书,以及电子书阅读器同步功能、整合进电子图书阅读器。Kindle 相关工具 - 书伴
它的主要界面展示:
我的 600 多本书目前都是用这款软件进行管理,当我想查任何书的时候,我都会先在自己的这个小书库中查询一下,是否已经收集过这本书,如果没有我再去利用 google、百度等搜索引擎去收集。
在 Calibre 软件中,可以很方便的修改图书的元数据,比如:
- 作者、
- 出版社、
- 自己的评价、
- 标签
如果想对书籍进行分类,只需要对书的元数据中的标签添加对应的分类就行,也可以直接创建一个虚拟书库,只存储该类别的书籍。
不过我还是推荐用标签的方法来进行分类,毕竟有些书不能只以一种类别定性。
对书籍进行管理只是 Calibre 最基础的功能了,除此之外,还有其他好用的功能,比如:
- 阅读不同格式的书籍
- 编辑书籍
- 定期抓取新闻、RSS 订阅制作成合刊
- 转换电子书的格式、
- 优化电子书的排版、
- 中文简繁转换等等
更多的关于 Calibre 介绍与教程,我推荐去下面这个网站中了解:Kindle 相关工具 – 书伴
2 在 Calibre 批注的痛点
在 Calibre 的阅读器,可以很方便的阅读书籍,以及对书籍内容高亮、批注。
但是这样也造成了一个问题:批注留在了 Calibre 中,在我的主力知识整理、输出工具 obsidian 中不能快捷地查找、复用。
直到最近,我发现了一款 Calirbe 的第三方插件 「Highlights to Obsidian」,由 jm289765 开发,实现了将 Calibre 阅读器中高亮、批注的内容一步发送到 OB 库中的功能。
令人赞叹的工作!
用该插件将会为每一本书在 Obsidian 笔记仓库中生成一个专属的笔记,生成的笔记中可以包含:
- 高亮位置的链接(可以直接点击该链接,跳转回 Calibre 阅读器中的原文位置)
- 高亮的内容
- 对高亮内容的自己的笔记批注
- 其他一些帮助信息
而且这些笔记的格式是可以自定义的。
默认效果类似下图:
接下来的 3 个小节,我将会介绍:
- 如何安装 Highlights to Obsidian
- 如何快速上手 Highlights to Obsidian
- 如何配置 Highlights to Obsidian
3 安装 Highlights to Obsidian
进入该插件的开源地址中,点击右侧的 release,下载最新版本的安装包。
然后在 Calibre 中,点击「首选项」,打开 Calibre 的设置,mac 的快捷键是「cmd+p」,windows 的用户需要找一下对应的首选项设置。
在首选项窗口中点击最下方的「插件」按钮:
在插件窗口中,点击「从文件加载插件」,然后选择刚才下载的安装包,就能安装成功。
安装完后,需要重启 Calibre 。
安装完成后,Calibre 的主界面上方的图标工具栏就出现了该插件的图标。
4 使用 Highlights to Obsidian
使用 Highlights to Obsidian(下文简称为 H2O)前,需先配置一些关键信息。
点击图标右方的小箭头,然后点击「config」选项
它提供了 2 种类型的配置选项,我们需要先设置第 2 种「Other Options」
在这个窗口中,我们暂时只需要关注第一个选项,在这个输入框中输入自己的 obsidian 笔记仓库名称。
自己笔记仓库的名称可以在 obsidian「文件面板」中查看:
H2O 这个配置窗口中,其他都保持默认配置即可。
设置完毕后,在 Calibre 的主界面点击 H2O 的图标,然后在弹出窗口中选择「 Send all Highlights to Obsidian」。
默认状态下,会在指定 obsidian 库中新建 Books 文件夹,并将每本书中的内容分别发送为一个 Markdown 文件。
未来每次阅读后,可选择「 Send new Highlights to Obsidian」,增量同步新做的批注到 Obsidian 中。
此时,新的批注会添加到 Obsidan 中对应书籍笔记的末尾。如果对位置不太满意的话,可以将 Books 文件夹直接删除,然后重新同步所有的批注就可以了。
5 自定义格式
此外,还可以设置「Formatting Options」,来自定义批注以怎样的格式同步到 obsidian 中。
下面是 「Formatting Options」窗口的内容。
第 1 块内容,是 H2O 提供的变量,这些变量可以在下面的 2-5 的输入框中用 {}
包裹使用。
这些变量包含了:
- 书籍数据:
- {title}:高亮所在的书名。
- {authors}:高亮所在书的作者。
- {bookid}:该书在 Calibre 中的 ID。
- 高亮数据
- {highlight}: 高亮文本。
- {blockquote}: 高亮文本,被格式化为引用,即每行开头会添加一个箭头和空格 “>”。
- {notes}: 该高亮内容的笔记(如果有笔记的话)。有一个配置选项可以根据是否包含笔记设置不同的格式。
- {url}: 用于打开阅读器的 Calibre 链接,想要跳回原文则需要设置。
- {location}: 高亮部分在书中的 EPUB CFI 位置。例如,“/2/8/6/5:192”。作为排序键,它将根据高亮内容在书中的位置进行排序。
- {timestamp}: 高亮内容的 Unix 时间戳。作为排序键,它将按照高亮显示的时间排序。
- {uuid}: 高亮内容在 Calibre 中的唯一 ID。例如,“TlNlh8_I5VGKUtqdfbOxDw”。
- 时间数据
- {date}:高亮显示的日期,格式为 YYYY-MM-DD。
- {time}:时间 高亮显示的时间,格式为 HH:MM:SS。
- {datetime}:高亮显示的日期和时间,格式为 YYYY-MM-DD HH:MM:SS。
- {day}:高亮显示的月份日,如 03 或 17。
- {month}:高亮显示的月份,如 04 表示四月,10 表示十月。
- {year}:高亮显示的年份,如 2022。
- {hour}:高亮显示的小时,基于 24 小时制(非 12 小时制)。
- {minute}:高亮显示的分钟。
- {second}:高亮显示的秒。
- {utcnow}:当前时间,格式与 {datetime} 相同。
- {datenow}:当前日期,格式与 {date} 相同。
- {timenow}:当前时间,格式与 {time}相同。
- {timezone}:电脑当前设置的时区。
- {UTCOffset}:计算机当前时区的 UTC 偏移量。例如,UTC 时间为 +0:00。根据夏令时的不同,东部时间可以是 -4:00 或 -5:00。所有时间选项默认使用 UTC。
- 要使用计算机的本地时区,请在开头添加 “local”:{localdate}、{localtime}、{localdatetime}、{localday}、{localmonth}、{localalyear}、{localhour}、{localminute}、{localsecond}、{localnow}、{localdatenow}、{localtimenow}。
- 插件数据
- {totalsent}: 发送的高亮总条数
- {booksent}: 发送到当前 obsidian 笔记的高亮总数。如果当前一条大笔记被分割成多个小笔记,{booksent}将给出发送到所有小笔记的总数。
- {highlightsent}: 当前高亮在所有发送的高亮的次序。例如,“{highlightsent} out of {booksent}” 的结果可能是 “3 out of 5”。
第 2 块内容,是设置在 Obsidian 中存放的「文件夹」和「文件名称」,符号 /
前面的内容就是批注文件存放的 obsidian 库中位置,这里是可以指定一个层级比较深的位置,例如
Calibre-books/test1/test2/{title} by {authors}
或着是为不同的作者单独设置文件夹:
books/{authors}/{title}
第 3 块内容,是每条有批注的高亮应用的格式。
附上我的格式以供参考,可以直接复制适用。注意,空行需要保留,别删除:
{notes}{blockquote}
> [{datetime}]({url})
---
第 4 块内容,是每条无笔记的高亮应用的格式。可以复制上面的格式保持一致。
第 5 块内容,是页首信息,每次同步时会发送一次 ,可以在这个位置补充一些统计的信息,需要勾选下方的「use header when sending highlights」选项才会生效。
6 最后
这条 calibre->obsidian 的通路自此就打通了。
如果你的阅读场景与我相似,不妨动手试一试。