mdBook 是什么?

mdBook is a utility to create modern online books from Markdown files.

根据官网介绍,mdBook 是从 md 文件构建现代在线书籍的工具。
通常用来写 Rust 的说明文档,,而不太适用于写其他语言或特定应用场景的文档。

mdBook 的特点有哪些?

  1. 易于构建:安装 Rust 和 mdBook 之后使用命令 mdbook init 即可在当前文件夹创建一下层次的书籍框架:

    1. book-test/
    2. ├── book
    3. └── src
    4. ├── chapter_1.md
    5. └── SUMMARY.md

    然后,在 src/ 文件夹下书写 md 文件,使用 SUMMARY.md 来控制章节的结构,最后运行命令 mdbook build 或者 mdbook serve 来生成 html 电子书,进而发布于网络或者浏览器打印成 PDF 书籍。
    image.png

  2. 能直接在代码块运行简单的 Rust 代码,甚至可以编辑代码块、隐藏不重要的代码。 2020-11-07_03-25-03.mp4 (157.54KB)

    mdBook 的缺点呢?

  3. 构建 Rust 和 mdBook 稍微费事(尤其后者有 100 多个依赖)

  4. 默认的样式有些简陋,不够精美,甚至没有文章标题的 toc,只有 book 的章节 toc。
    1. 悬浮目录插件(移植到其他项目貌似并没效果):https://github.com/JorelAli/mdBook-pagetoc,实例见此
    2. 文章内部目录(我试了并无效果):https://github.com/badboy/mdbook-toc
    3. 貌似 mdBook 的开发者对于 文章标题目录 并不重视,好几个人提都没开发
  5. 虽然可以直接打印成 pdf,但是分页处会出现直接把一行句子成上下两段,而不是字段排列到下一页。而导出成 pdf 比较麻烦,需要用到 mdbook-latex,这个库的关联工具 tectonic 在 windows 下并不好安装。
  6. 不够通用,参考文章:比较:gohugo、mdbook、peach