跳转到主内容
版本发布

EPUB 终于能按章节跳转:md2epub 自动拆章 + 嵌套目录

以前 md2epub 转出来的电子书,整本是一整篇,目录里只有一个条目,翻到第五章只能一路拖。现在按一级标题自动拆章,目录是「章 → 节」两层,点节名直接落到那一节。

4 分钟
产品发布md2epub电子书EPUB

把一份长文档转成 EPUB,扔进阅读器,打开目录——里面只有一个条目,书名。想翻到第五章,只能按住进度条一路拖过去。

这是 42md tools md2epub 之前的样子:转换是对的,字也都在,但整本书在 EPUB 内部是一个文件,阅读器无从知道章节边界在哪。文档越长,这个问题越难受。

现在不一样了。

按一级标题自动拆章

还是同一条命令,什么参数都不用加:

42md tools md2epub 书稿.md

Markdown 里每一个一级标题(# 标题)成为电子书的一章。一份「前言 / 第一章 / 第二章 / 附录」结构的书稿,转出来的 EPUB 内部就是四个独立章节文件,阅读器把它们当四章处理——翻页、跳转、进度,都按章来。

目录是两层的

更明显的变化在目录。它不再是一条,而是跟着你的标题层级长出来:

目录
├─ 前言
├─ 第一章 源头
│   ├─ 第一节 冰川
│   └─ 第二节 草甸
├─ 第二章 中游
│   └─ 第一节 渡口
└─ 附录 计量说明

二级标题作为子条目挂在所属章下面,点进去直接落到那一节,不是落到章首再自己找。每一个标题都带了锚点,所以章内跳转是精确的。

目录太长?只调深浅,不动正文

有些书稿三四级标题很密,全列进目录反而不好用。--toc-depth 控制目录列到第几级:

42md tools md2epub 书稿.md --toc-depth 1

目录就只剩章一级:

目录
├─ 前言
├─ 第一章 源头
├─ 第二章 中游
└─ 附录 计量说明

要注意的是,它只管目录的深浅,不影响正文——章还是照拆四章,标题的锚点也还在,只是目录里不列出来。想要「篇 / 章」两级的效果就用 --toc-depth 2

一句提醒

拆章依据的是一级标题,所以标题层级规整的文档效果最好

如果一份文档通篇只用了二级标题、没有一级标题,也不会出错:整本仍是一章,目录里各小节照样带锚点、点得到,只是少了「按章翻页」这一层。真在意这个的话,把最外层标题提到一级就行;转换前用 42md tools lint 过一遍,也能顺手把层级理顺。


md2epub 免费、纯本地,不消耗 AI 额度。42md upgrade 升到最新版即可。

同一份书稿要出 PDF 的话,尾注、目录位置、出血位这些出版级参数见《一份书稿从 Markdown 到可送印 PDF》