介绍
gitbook-cli是一个在同一系统上安装和使用多个版本的GitBook的实用程序。它将自动安装所需版本的GitBook来构建一本书。
安装命令
npm install gitbook-cli -g
初始化一本书
-
初始化一本书的命令是gitbook init,
-
首先在终端创建一个项目目录,并进入这个目录:
mkdir book cd book -
然后使用gitbook init来初始化一本书:
gitbook init -
gitbook init会在空项目中创建README.md和SUMMARY.md两个文件:
README.md文件是项目的介绍文件。
SUMMARY.md是gitbook书籍的目录。
此时README.md 和 SUMMARY.md都是空的,没有任何内容。
-
SUMMARY.md 目录可以参考:
* [说明](README.md) * [项目目录](SUMMARY.md) * chat * [chat简介](doc/chat/chat简介.md) * midjuorney * [midjuorney简介](doc/midjuorney/midjuorney简介.md)
开始创作
-
SUMMARY.md 中添加
* [说明](README.md) * [项目目录](SUMMARY.md) * chat * [chat简介](doc/chat/chat简介.md) * midjuorney * [midjuorney简介](doc/midjuorney/midjuorney简介.md) -
再次执行gitbook init
vscode 中展示:
导出pdf
gitbook 可以将内容输出为电子书(ePub,Mobi,PDF)格式
这里主要讲 pdf,命令:
gitbook pdf ./ ./mybook.pdf
- pdf: 表示生成pdf格式,还有epub、mobi可选
- ./ : 表示需要生成书籍的项目根目录
- ./mybook.pdf : 表示生成书籍的名称
- 如果你的书籍有多种语言,就会生成多本书籍,书籍的名称会以语言结尾
在项目的根目录下执行哦。
- 需要安装ebook-convert
ebook-convert是生成电子书所必需的(epub,mobi,pdf)插件。
- 点击链接下载: calibre-ebook.com/download
- 创建软连接:
创建后可以在任何目录下执行目录执行ebook-convert命令。sudo ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin
-
测试一下ebook-convert
ebook-convert --version -
执行:
gitbook pdf ./ ./mybook.pdf
-
查看结果
异常总结
gitbook init 出现异常
错误信息:
TypeError [ERR_INVALID_ARG_TYPE]: The “data” argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise
问题原因
- node 版本过高,此时我使用的是19.1。
- 这里就很郁闷,因为node 不止用在这里,如果卸载,更换版本,可能导致其他应用出现问题。
解决办法
- 安装nvm.
- nvm 是一款 Node.js 版本管理工具,允许用户通过命令行快速安装、切换和管理不同的 Node.js 版本。
- 特别提示: nvm 只适用于 macOS 和 Linux 用户的项目,如果是 Windows 用户,可以使用 nvm-windows 、nodist 或 nvs 替换。
-
安装方式
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash -
常用命令
- nvm ls # 查看版本安装所有版本
- nvm ls-remote # 查看远程所有的 Node.js 版本
- nvm install 17.0.0 # 安装指定的 Node.js 版本
- nvm use 17.0.0 # 使用指定的 Node.js 版本
- nvm alias default 17.0.0 # 设置默认 Node.js 版本
- nvm alias dev 17.0.0 # 设置指定版本的别名,如将 17.0.0 版本别名设置为 dev
- 百度后,发现node 12.0.0 使用gitbook init 可以,果断安装
-
nvm install 12.0.0
-
切换node 版本: nvm use 12.0.0
-
查看node 版本: node -v
-
重新执行gitbook init
完美解决
创建软连接 异常
```bash
sudo ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin
```
异常信息
ln: /usr/bin/ebook-convert: Operation not permitted
解决问题:
-
环境变量配置
vim ~/.bash_profile
export EBOOK_PATH=/Applications/calibre.app/Contents/MacOS export PATH=$PATH:$EBOOK_PATH -
刷新一下刚刚的配置:
source ~/.bash_profile
-
测试一下ebook-convert指令
导出pdf 异常
pdf ./ ./myBook.pdf --log=debug
异常信息
TypeError: cb.apply is not a function
问题
不清楚。。。
解决办法
编辑 polyfills.js 文件 注释掉:
```bash
fs.stat = statFix(fs.stat)
fs.fstat = statFix(fs.fstat)
fs.lstat = statFix(fs.lstat)
```
gitbook install 异常
异常信息
Error: Couldn't locate plugins "search-pro, expandable-chapters, edit-link, tbfed-pagefooter, lightbox, favicon, splitter, prism, github, anchor-navigation-ex, page-treeview, back-to-top-button", Run 'gitbook install' to install plugins from registry.
异常原因
缺少插件
解决
gitbook install
installing plugin "lightbox" 异常
异常信息
if (args[ii] == null) throw missingRequiredArg(ii)
解决方案:
npm install gitbook-plugin-lightbox
installing plugin "back-to-top-button" 异常
异常信息
yntaxError: Unexpected token '', "{ "name""... is not valid JSON
解决方案
npm install back-to-top-button