GitBook(HonKit)进阶篇

HonKit 构建结果是一套静态网页(HTML、CSS、JS、图片),没有后端、也不连数据库。写完书之后,就是把这包文件放到托管上;要一文多发或公众号解锁,再接到 OpenWrite。

HonKit 静态网站原理

HonKit(GitBook)本质是静态文档生成工具,执行构建命令后会输出一套纯静态网页资源(HTML、CSS、JS、图片),不依赖后端服务、数据库,可直接部署在任意静态托管平台。

默认输出目录是 _book/,里面的 index.html 是入口。

GitHub Pages、Gitee Pages 常见两种源:仓库根目录,或 /docs,需要把构建结果放到它们能读到的位置。

方式一:先打到 _book,再拷走。

npx honkit build
cp -r _book/* .

这会把 HTML 铺进源码根目录,Markdown 和产物混在一起,也容易被 gitbook.com 的 Git Sync 当成文档。只适合临时预览,不要和源码长期混提交。

方式二(推荐):构建时指定输出目录。本仓库的 package.json 也是这样写的。

npx honkit build ./ ./docs

book.json 里写 "output": "./docs" 不生效(官方 CLI 3.2.3 和 HonKit 都不认这项)。输出目录只用命令行参数。

_book/docs/ 应进 .gitignore 或单独分支,避免和 Markdown 源码搅在一起。若 Pages 要发布 docs/,再把构建结果提交上去,或用 Actions 只推产物。

GitHub Pages

GitHub 给公开仓库提供免费的静态托管,默认域名是 *.github.io。自定义域名要自己买、再按 GitHub 文档配 DNS。私有仓库开 Pages 需要付费计划。

两类站点:

  • 用户主页(每个用户一个):仓库名必须是 <username>.github.io,地址 https://<username>.github.io/
  • 项目站(每个仓库都可以开)https://<username>.github.io/<仓库名>/

组织账号同理,把用户名换成组织名。

Pages 只发布已经存在的静态文件。推送 Markdown 不会自动跑 honkit build。要「一推源码就更新站点」,用 GitHub Actions 在 CI 里执行 npx honkit build,再把 docs/gh-pages 交给 Pages。若本地构建后把 docs/ 提交进仓库,则 Settings → Pages 选分支,文件夹选 /docs,过几分钟即可访问。

步骤(本地构建、提交 docs/):

  • npx honkit build ./ ./docs
  • 提交并推送到 GitHub
  • 仓库 Settings → Pages:分支选有 docs 的那条,文件夹选 docs
  • 等部署完成,用上面的域名打开

和 gitbook.com 的 Git Sync 不是一回事:Sync 同步源码 Markdown;Pages 托管的是 HTML。同一仓库可以源码给 Sync、docs/ 给 Pages,不要让 Sync 扫到 docs/

Gitee Pages

Gitee 在国内访问通常比 GitHub Pages 顺。把同样的 docs/ 推进 Gitee 仓库,在仓库里开通 Pages,选分支和目录(目录里必须有 index.html)。

和 GitHub 并不完全一样:

  • 账号要按 Gitee 要求完成实名等条件,以官网说明为准;
  • 免费版改完文件后,往往要在 Pages 页面再点一次更新,不会像 GitHub 那样每次 push 都自动发布;自动更新是 Pages Pro 或自己用脚本调接口。

不要写「永不超时」。网络和平台策略会变,以当前能否打开为准。

OpenWrite

OpenWrite 把一篇 Markdown 发到多个技术社区,并提供「关注公众号解锁全文」。官网和渠道名单以控制台为准。

一文多发

在 OpenWrite 登录,绑定 CSDN、掘金、开源中国、思否、博客园、简书、知乎、头条等账号后,用同一篇稿分发。HonKit 这边不用改构建命令。

OpenWrite 一文多发

ReadMore 公众号解锁

静态站没有账号体系。ReadMore 在文章里截断正文,点「阅读全文」出公众号二维码;关注后按关键词回复拿到验证码,验证通过后整站解锁。插件要在已部署的线上域名上才按设计工作,本地预览经常对不上。

流程:

  1. 插件截断正文,只留预览
  2. 点阅读全文 → 关注公众号
  3. 回复关键词拿到验证码
  4. 输入验证码后整站解锁

接到 HonKit

OpenWrite 给 GitBook 用过两个包,配置项相同:openwrite(本篇沿用原文)和 readmore插件篇)。HonKit 下用 npm 安装,没有 gitbook install

{
  "plugins": ["openwrite"],
  "pluginsConfig": {
    "openwrite": {
      "blogId": "你的 OpenWrite 博客 ID",
      "name": "公众号名称",
      "qrcode": "公众号二维码图片地址",
      "keyword": "解锁关键词"
    }
  }
}
npm install gitbook-plugin-openwrite --save-dev
npx honkit serve --reload
npx honkit build ./ ./docs

blogId、二维码、关键词以 OpenWrite 后台为准。

总结

  • 输出目录用 npx honkit build ./ ./docs,不要指望 book.jsonoutput
  • 源码和 HTML 分开;Pages 只发布构建结果
  • 国内读者多可以再镜像一份到 Gitee Pages,免费版记得手动点更新
  • 一文多发、公众号解锁用 OpenWrite;插件只影响静态页,和 Pages 托管无关

参考链接

GitHub Pages

Gitee Pages 说明

OpenWrite

gitbook-plugin-openwrite

gitbook-plugin-readmore

© lizhao all right reserved,powered by Gitbook文件修订时间: 2026-09-03 01:41:24

results matching ""

    No results matching ""