mdbook拓展工具

217 阅读2分钟

mdbook 拓展工具

在使用mdbook的过程中,存在使用部分的问题

  • mdbook-pdf 无法生成目录页,最多生成pdf outline
  • mdbook-pandoc 无法将mermaid转换成图片,暂时没有人编写相关的filter
  • mdbook中缺少部分css,导致html排版页面不合理,如表格显示,分页等

下面推销一下我编写的工具,后续会进一步完善

  • mdbook-nice
  • mdbookhtml2pdf

mdbook-nice

A css theme for mdbook. CSS 美化文件, 主要用于mdbook-pdf打印和html页面的基本美化.

美化思路:

  1. 使用伪选择器,berfor和after,实现标题和代码块的背景色和字体颜色.
  2. 使用伪选择器,实现表格的边框和背景色.
  3. 使用page-break,实现分页.
  4. 使用 word-break,word-wrap等实现换行和单词显示操作.

安装

  • cargo install mdbook-nice

使用方法

mdbook-nice install . 或者 mdbook-nice install path

Install the preprocessor and its assets

Usage: mdbook-nice install [dest]

Arguments:
  [dest]  The destination directory for the assets [default: ./]

Options:
  -h, --help  Print help

mdbookhtml2pdf

将 mdBook 生成的 HTML 文件转换为 PDF,支持:

  • 自动生成目录(TOC)
  • 代码高亮
  • Mermaid 图表转换

安装要求

  1. Python 3.7+
  2. Node.js 和 npm(用于 mermaid-cli)

安装步骤

  1. 安装 Node.js 依赖:
npm install -g @mermaid-js/mermaid-cli

2. 安装 Python 包:

pip install mdbookhtml2pdf

使用方法

mdbookhtml2pdf input.html [output.pdf]

如果不指定输出文件名,将使用输入文件名(替换扩展名为.pdf)。

功能特点

  1. 目录生成

    • 自动为 h1-h6 标题生成目录
    • 目录包含页码和引导线
    • 目录单独成页
  2. 代码高亮

    • 支持多种编程语言
    • 保持原有的代码格式
    • 支持行内代码和代码块
  3. Mermaid 图表

    • 自动转换 mermaid 图表为高质量图片
    • 支持所有 mermaid 图表类型
    • 保持图表清晰度

项目地址

使用

mdbookhtml2pdf book/print.html

image.png

image.png

todo

目前封面支持存在部分问题,后续有空时,会解决该问题,其他的开发者可以自行尝试解决.

许可证

MIT License