用Calibre管理图书,还能一键同步批注到Obsidian

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 笔记仓库中生成一个专属的笔记,生成的笔记中可以包含:

  1. 高亮位置的链接(可以直接点击该链接,跳转回 Calibre 阅读器中的原文位置)
  2. 高亮的内容
  3. 对高亮内容的自己的笔记批注
  4. 其他一些帮助信息

而且这些笔记的格式是可以自定义的。

默认效果类似下图:

接下来的 3 个小节,我将会介绍:

  • 如何安装 Highlights to Obsidian
  • 如何快速上手 Highlights to Obsidian
  • 如何配置 Highlights to Obsidian

3 安装 Highlights to Obsidian

进入该插件的开源地址中,点击右侧的 release,下载最新版本的安装包。

Highlights to Obsidian

然后在 Calibre 中,点击「首选项」,打开 Calibre 的设置,mac 的快捷键是「cmd+p」,windows 的用户需要找一下对应的首选项设置。

image

在首选项窗口中点击最下方的「插件」按钮:

在插件窗口中,点击「从文件加载插件」,然后选择刚才下载的安装包,就能安装成功。

image

安装完后,需要重启 Calibre 。

安装完成后,Calibre 的主界面上方的图标工具栏就出现了该插件的图标。

4 使用 Highlights to Obsidian

使用 Highlights to Obsidian(下文简称为 H2O)前,需先配置一些关键信息。

点击图标右方的小箭头,然后点击「config」选项

image

它提供了 2 种类型的配置选项,我们需要先设置第 2 种「Other Options」

image

在这个窗口中,我们暂时只需要关注第一个选项,在这个输入框中输入自己的 obsidian 笔记仓库名称。

自己笔记仓库的名称可以在 obsidian「文件面板」中查看:

image

H2O 这个配置窗口中,其他都保持默认配置即可。

设置完毕后,在 Calibre 的主界面点击 H2O 的图标,然后在弹出窗口中选择「 Send all Highlights to Obsidian」。

image

默认状态下,会在指定 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 的通路自此就打通了。

如果你的阅读场景与我相似,不妨动手试一试。

我的其他提到calibre的文章

10 个赞

这个好像有点好用,不过 Calibre 能像 macOS 原生的图书一样三端同步嘛

calibre 导入的文件都是本地保存的,想要云端同步有多个办法:

  • 当作普通文件夹,用onedrive、坚果云等第三方同步软件同步
  • 自己在vps、nas等可以公网访问的设备部署calibre-web项目,然后可以在任意的设备通过浏览器访问自己的书库,然后对书库进行管理。(这种方案需要需要折腾

不支持,Calibre要同步到苹果必须用Calibre Web,并且只能在线看,替代方案是整个书库上云,然后苹果那边直接导入iBooks

您好,请教一个问题,为何在Obsidian中点击高亮位置链接的时候,总是显示“获取打开此‘calibre’链接的应用——你得电脑没有可打开此链接的应用。请尝试在Microsoft Store中查找兼容应用。”?然后跳转到Microsoft Store中会提示下载一个收费的calibre APP

是否在点击跳转的时候calibre没有打开?需要同时打开calibre,可以迅速响应链接的点击

已经解决了,重新下载并安装了calibre就可以了。跳转的时候不用打开calibre,点击链接以后直接会打开calibre的阅读器。

这边在生成的ob笔记里点链接,不能往回跳转。显示弹窗如下——

无法打开此"calibre"链接
你的设备需要一个新应用才能打开此链接。

参考 @peterruoyu 的回复,更新一下 calibre 看是否能解决

能否按照位置排序

发送失败
屏幕截图 2024-09-10 095639

已解决,自己搞错了。

请问一下,如果不在书库里打开文件,而是直接在其他文件夹里用阅读器打开,那么标注要怎么样才能发送出去?

我测试过,用 calibre 的阅读器 calibre-view 在下载目录打开一本书,做的标注是存在该文件本身的,但是库里此时没有这本书,就没有标注可以发送。

所以,在库外用阅读器做标注可以,但是想要发送到obsidian的话,还是要把做好标注的epub文件拖放到calibre书库里,然后通过 Highlights to Obsidian 去发送到 obsidian 中