Skip to content

搭建

搭建

安装

因为 GitBook 是基于 Node.js,所以我们首先需要安装 Node.js

现在安装 Node.js 都会默认安装 npm(node 包管理工具),所以我们不用单独安装 npm,打开命令行,执行以下命令安装 GitBook:

npm install -g gitbook-cli

mac

sudo npm install -g gitbook-cli
一定要sudo

查看版本

gitbook -V

初始化

在新建的文件夹下执行

gitbook init

如果出现错误(polyfills.js:287报错)

D:\superMapWorkSpace\myTestGitBook>gitbook init
Installing GitBook 3.2.3
C:\Users\刘琛运\AppData\Roaming\npm\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 C:\Users\刘琛运\AppData\Roaming\npm\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287:18
    at FSReqCallback.oncomplete (fs.js:184:5)

注释polyfills.js

修改提示的polyfills.js:287行,现在发现最新版这种方法已不起效

C:\Users\刘琛运\AppData\Roaming\npm\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js

注释掉
  // fs.stat = statFix(fs.stat)
  // fs.fstat = statFix(fs.fstat)
  // fs.lstat = statFix(fs.lstat)

mac

cd /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs

vim polyfills.js
无法修改,没有权限

chomd 777 polyfills.js
mac出现:Operation not permitted

 MacOS自OS X El Capitan 10.11系统开始已经使用了 Rootlees , 她是一个更高等级的系统内核保护措施,系统默认将会锁定

/system    /sbin    /usr 这三个目录。因此我们在这三个目录下进行文件操作时,会提示Operation not permitted,即使我们使用root用户操作也不行。但是这个功能也是可以关闭的:
csrutil status
System Integrity Protection status: enabled.
csrutil disable
csrutil: This tool needs to be executed from Recovery OS.
提示重启电脑

结果失败,只能降低版本

降低版本(推荐)

切换node版本,发现v12.16.3以下可以

卸载
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

文件结构

初始化后生成文件结构,如下:

  • README.md —— 书籍的介绍写在这个文件里
  • SUMMARY.md —— 书籍的目录结构在这里配置

从GitBook >2.0.0 起,就可以在 book.json 中定义某个文件作为README。

{
    "structure" : {
        "readme" : "myIntro.md"
    }
}

先写目录,修改SUMMARY.md,例如:

- [前言](README.md)
- [go](go/README.md)
  - [go基础](go/go基础.md) 
- [java](java/README.md)
- [gitbook](go/README.md)

再次执行 ,

gitbook init

GitBook 基本的目录结构如下所示

.
├── book.json
├── README.md
├── SUMMARY.md
├── chapter-1/
|   ├── README.md
|   └── something.md
└── chapter-2/
    ├── README.md
    └── something.md

book.json

存放配置信息,在下一章中所讲的配置信息都是在这个文件里定义的,关于该文件的配置可以看 配置 这个章节。

Summary

概要文件主要存放 GitBook 的文件目录信息,左侧的目录就是根据这个文件来生成的,默认对应的文件是 SUMMARY.md,可以在 book.json 重新定义该文件的对应值。它通过 Markdown 中的列表语法来表示文件的父子关系,下面是一个简单的示例

我们通过使用 标题 或者 水平分割线 标志将 GitBook 分为几个不同的部分

----

启动gitbook

gitbook serve

运行该命令后会在书籍的文件夹中生成一个 _book 文件夹

打包

可以使用下面命令来只生成网页而不开启服务器

gitbook build

多语言

GitBook支持使用多语言来构建书本。按照GitBook的标准格式,每个语言应该作为一个子目录,命名为 LANGS.md 的文件应该遵循下面的格式并出现在仓库的根目录下:

md
- 简体中文
- English

1636907120577

命令

这里主要介绍一下 GitBook 的命令行工具 gitbook-cli 的一些命令, 首先说明两点:

  • gitbook-cligitbook 是两个软件
  • gitbook-cli 会将下载的 gitbook 的不同版本放到 ~/.gitbook中, 可以通过设置GITBOOK_DIR环境变量来指定另外的文件夹

列出gitbook所有的命令

gitbook help

输出gitbook-cli的帮助信息

gitbook --help

生成静态网页

gitbook build

生成静态网页并运行服务器

gitbook serve

生成时指定gitbook的版本, 本地没有会先下载

gitbook build --gitbook=2.0.1

列出本地所有的gitbook版本

gitbook ls

列出远程可用的gitbook版本

gitbook ls-remote

安装对应的gitbook版本

gitbook fetch 标签/版本号

更新到gitbook的最新版本

gitbook update

卸载对应的gitbook版本

gitbook uninstall 2.0.1

指定log的级别

gitbook build --log=debug

输出错误信息

gitbook builid --debug