怎么用calibre将电子书简单粗暴转换为md格式导入obsidian
夫君酱
编辑于 2022年10月08日 16:30

视频中错误的部分还没更正QUQ,先发专栏。

住在24小时有火车的地方旁,我自己都佩服自己第一次录时候怎么完美回避了火车路过的动静。

需要转换带图片的电子书先看这里看这里看这里


需要准备的calibre插件

  • 在首选项中找到插件选项

  • 获取新的插件

  • 搜索 mardown output 插件并安装


纯文本电子书处理方式

  • 打开calibre选择要转换的图书

  • 选择批量转换

  • 输出格式设置为MD,中文书籍需要修改XPath表达式。

//*[re:test(., "^\s*[第卷][0123456789一二三四五六七八九十零〇百千两]*[章回部节集卷].*", &#​34;i")]

  • 选择图书导出单一格式,选择md格式

  • 直接进文件夹拖动转换后的文件进obsidian库


针对对有大量图片的电子书处理方式(需要一定编写正则表达式 能力)

先导出图片

1. 进入编辑书籍页面

2. 左侧找到图片

3. 全选并导出(封面图可以跳过,没转换封面。不过也可以自己在文件开头再给编辑加上)。

4. 导出后的文件拖入obsidian库中

使用 WIKI链 的用户要修改导出文本的图片链接

1. 转换图书时进入搜索&替换,输入正则表达式替换内容。(这一步是为了让calibre不把源文件中的图片识别为图片,避免图片重新排序)

以 `img00001.jpeg` 这类的命名规则的图片为例(因为每本图书的html文档不同,这个表达式可能会出bug,需要一定的正则水平来修改。)

  • 查找正则表达式:<img.*src=".*(?=/.*.jpeg)/ 替换文本:![[

  • 查找正则表达式:.jpeg".*(?=.*/>)/> 替换文本:.jpeg]]

调整内容

  • 回到obsidian库中,选择图书,批量替换来删除多余的 \ (这里要确认一下,如果是编程书籍原文可能会有 \ 不能删除,不过如果看编程书籍了,大佬一定能自己解决对不对QUQ)

  • 到这里虽然已经完成,但我开始觉得用calibre操作图片书籍一点都不懒人了。。。继续找下一个懒惰的办法

补充

Calibre 在将其他格式的图书转换为 markdown 格式时,大纲依据是图书文件源码中的 `h1`、`h2`、 `h3`,如果源文件中缺失这个内容,就不会在章节标题中添加 `#` 号。

例如:

<h1 id="nav_point_12&#​34; class="not-in-toc&#​34;>第1章 概述</h1>

可以识别章节标题层级。

<a id="p28&#​34;></a><a href="#​p5">第一章 绪论</a><br>

不能识别章节标题层级。

这种情况通常出现在PDF文件里,可以在搜索替换中查看源码是不是存在标题层级问题。(PDF转其他格式的换行问题处理也比较麻烦,电子书优先epub格式)

非 epub 格式在 calibre 里不能直接编辑,但可以在这里查看

对于PDF文件可以使用正则表达式来添加标题层级。

1. 进入搜索&替换

2. 添加替换规则

查找正则表达式:

>(?=[第卷][0123456789一二三四五六七八九十零〇百千两]*[章回部节集卷].{0,30}$)

替换文本(根据你想要的标题层级输入,注意末尾有一个空格)

>##