Gitbook

安装

安装gitbook

gitbook基于Node.js,所以要先安装Node.js,官网

安装好node后,安装gitbook

1
2
3
4
//全局安装
npm install -g gitbook-cli
//当前目录下安装
npm install gitbook-cli

检查版本

安装好之后执行gitbook -V检查版本,不出意外应该会报错:

1
2
3
4
5
6
7
8
9
CLI version: 2.3.2
Installing GitBook 3.2.3
/xxx/nodejs/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
if (cb) cb.apply(this, arguments)
^

TypeError: cb.apply is not a function
at /data/soft/nodejs/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:169:5)

此时需要进入上面给出的目录,找到polyfills.js,将62-64注释掉

1
2
3
//fs.stat = statFix(fs.stat)
//fs.fstat = statFix(fs.fstat)
//fs.lstat = statFix(fs.lstat)

此时运行gitbook -V不会报错。

初始化

新建一个工程目录,在目录下执行gitbook init,应该又报错了。这是因为node的版本太高了,需要对node进行降级。这里我推荐使用nvm来管理nodeJs的版本。因为我还有使用高版本node的需求,而且降级也挺麻烦的。nvm的下载地址,选择nvm-setup.zip,安装时第二个路径要选择nodejs的安装路径。

查看安装的nodejs版本

1
nvm list

安装低版本nodejs,这个版本经测试可用

1
nvm install v12.22.3

等待安装完,切换版本

1
nvm use v12.22.3

回到工程根目录再次初始化

1
gitbook init

初始化成功,创建了README.md(书籍的介绍)和SUMMARY.md(书籍的目录结构)

安装插件

这里拿自动目录插件举例,在工程根目录下创建一个book.json,写入:

1
2
3
{
"plugins": ["summary"]
}

在根目录下执行gitbook install ./即可安装插件。启动服务后这个插件会自动生成目录。下文会讲解如何生成目录。

加入文章

在根目录下创建文件夹,以数字和短横线开头:0-Example,同样0-Example下也可以创建子文件夹。每一个文件夹相当于一个目录,子文件夹就是多级目录。

每一个子文件夹下要有一个命名为0-README.md的文件,用于放置这个目录的简介,其他md文件也要以数字和短横线开头:1-TestPage.md

启动本地服务

加入好文章之后,启动本地服务,前文安装的summary插件会自动生成层级目录

1
gitbook serve

然后在浏览器中打开http://localhost:4000/,检验你的成果!