# 初始化项目
gitbook init
# 或
honkit init
# 本地预览(访问 http://localhost:4000)
gitbook serve
honkit serve
# 构建静态网站
gitbook build
honkit build
# 输出 PDF / EPUB(需 Calibre)
gitbook pdf .
gitbook epub .
honkit pdf .
honkit epub .GitBook 和 Honkit 通过 book.json 配置插件。
{
"plugins": ["prism", "-highlight", "favicon"],
"pluginsConfig": {
"prism": {
"css": ["prismjs/themes/prism-solarizedlight.css"]
}
}
}插件名前加 - 表示禁用默认插件。例如 "-highlight" 禁用默认高亮插件,改用 prism。
插件通常在构建时自动安装。如需手动安装:
# 进入容器手动安装
docker run --rm -v "$PWD":/gitbook bloodstar/gitbook-builder npm install gitbook-plugin-prism
# 或使用 cnpm(淘宝镜像加速)
docker run --rm -v "$PWD":/gitbook bloodstar/gitbook-builder cnpm install gitbook-plugin-prism| 插件 | 用途 | 说明 |
|---|---|---|
prism |
代码高亮 | 替代默认 highlight,支持更多语言 |
favicon |
自定义网站图标 | 设置浏览器标签页图标 |
page-treeview |
页面目录树 | 侧边栏展示页面层级 |
tbfed-pagefooter |
页脚信息 | 显示版权和修订时间 |
expandable-chapters |
可折叠章节 | 侧边栏章节可展开/收起 |
github-buttons |
GitHub 按钮 | 添加 Star/Fork 按钮 |
mermaid |
流程图/时序图 | 基于 Mermaid 的图表渲染 |
mathjax |
数学公式 | LaTeX 公式渲染 |
anchor-navigation |
锚点导航 | 页面内锚点跳转导航 |
search-pro |
增强搜索 | 中文友好搜索插件 |
book.json 和目录结构完全兼容,直接切换命令即可:
# 原 GitBook 命令
gitbook serve
# 迁移后
honkit serve无需修改任何配置文件。
运行时设置 npm 镜像源:
docker run --rm -v "$PWD":/gitbook \
-e NPM_CONFIG_REGISTRY=https://registry.npmmirror.com \
bloodstar/gitbook-builder npm install镜像内置 cnpm(淘宝镜像专用):
docker run --rm -v "$PWD":/gitbook bloodstar/gitbook-builder cnpm install gitbook-plugin-prism挂载缓存目录可加速多次构建:
docker run --rm -v "$PWD":/gitbook \
-v npm-cache:/root/.npm \
bloodstar/gitbook-builder npm installGitBook CLI 在 Node.js 20 上的已知问题,此镜像已通过补丁修复。如果遇到,尝试使用 Honkit:
honkit build此镜像已安装 Noto CJK 字体,中文显示正常。如果自定义字体,在 Dockerfile 中添加:
RUN apt-get install -y fonts-noto-cjk确认在 book.json 中正确配置了 PlantUML 插件:
{
"plugins": ["plantuml"]
}PlantUML 需要 Java 和 Graphviz,均已预装在此镜像中。
默认情况下,GitBook CLI 和 Honkit 生成的 PDF 文件,目录(TOC)只显示 二级(H2)标题的页码,三级及以下(H3+)标题有文字但无页码。
这是因为底层 Calibre 引擎默认 --toc-depth=2。在 book.json 中调整 pdf.tocDepth 即可控制:
{
"pdf": {
"tocDepth": 3
}
}| 值 | 目录包含的标题层级 | 说明 |
|---|---|---|
2 |
H1 + H2 | 默认值,三级及以上无页码 |
3 |
H1 + H2 + H3 | 常见值,覆盖大部分文档需求 |
4 |
H1 ~ H4 | 文档结构较深时使用 |
0 |
全部层级 | 无限制,慎用于长文档(目录会非常长) |
注意:
pdf.tocDepth影响的是 PDF 文件内置的目录书签(在 PDF 阅读器中点击跳转),而非页面正文内渲染的目录。- 如果在 Makefile 或脚本中组合使用
honkit pdf/gitbook pdf,务必确认book.json中的pdf.tocDepth已设置为你需要的深度。