Gitbook使用教程

# Gitbook使用教程

## 一、GitBook 简介

gitbook 是一个基于node.js命令的工具,可以使用网络常见的github|git和Markdown来制作精美的电子书,而且和typora软件搭配是一款非常好的笔记记录软件,下面我们一起来了解它的入门需知吧

- 语法简单

- 兼容性强

- 导出方便

- 专注内容

- 团队协作

## 二、安装

### 安装软件:Git、Typora

Typora 下载地址:https://typora.io/

Git 下载地址:https://git-scm.com/downloads

### 安装 Node.js

GitBook 是一个基于 Node.js 的命令行工具,下载安装 [Node.js]https://nodejs.org/zh-cn/),安装完成之后,你可以使用下面的命令来检验是否安装成功。

```bash

$ node -v

v7.7.1

```

## 三、使用

### 1.全局安装`gitbook-cli`输入下面的命令来安装 GitBook。

```bash

npm i -g gitbook-cli |  npm install gitbook-cli -g

```

<img src="./img/1.png" alt="img" style="zoom: 67%;" />

<img src="./img/1.png" style="zoom:60%;" />

更多详情请参照 [GitBook 安装文档](https://github.com/GitbookIO/gitbook/blob/master/docs/setup.md) 来安装 GitBook。

### 2.新建文件夹(英文命名 如:readme)

```

gitbook init

```

<img src="./img/2.png" style="zoom: 50%;" />![img](./img/3.png)

> README.md —— 书籍的介绍写在这个文件里

>      SUMMARY.md —— 书籍的目录结构在这里配置

### 3.启动Typora编辑器,引入文件夹

![img](./img/3.png)

### 4.编辑`SUMMARY.md`

```bash

# Summary

* [目录](README.md)

* [第一章](notes/1-0.md)

    * [第1节:](notes/1-1.md)

    * [第2节:](notes/1-2.md)

    * [第3节:](notes/1-3.md)

    * [第4节:](notes/1-4.md)

* [第二章](notes/2-0.md)

* [第三章](notes/3-0.md)

* [第四章](notes/4-0.md)

```

### 5.再次执行`gitbook init`,生成新目录结构

![img](./\img\4.png)

<img src="./\img\5.png" alt="5" style="zoom: 50%;" />

### 6.浏览器浏览:`gitbook serve`

```bash

gitbook serve

```

执行 `gitbook serve` 来预览这本书籍,执行命令后会对 Markdown 格式的文档进行转换,默认转换为 html 格式,最后提示 “Serving book on [http://localhost:4000](http://localhost:4000/)”

<img src="./\img\5.png" alt="5" style="zoom: 50%;" />![](./\img\7.png)

<img src="./\img\6.png" alt="img" style="zoom: 50%;" />

### 7.构建书籍:`gitbook build`

```bash

gitbook build

```

- [x] 默认:将生成的静态网站输出到 _book 目录

- [x] 指定路径:`gitbook build [书籍路径] [输出路径]`

- [x] 指定端口:`gitbook serve --port 2333`

- [x] 生成pdf格式:`gitbook pdf ./ ./mybook.pdf`

- [x] 生成epub格式:`gitbook epub ./ ./mybook.epub`

- [x] 生成 mobi 格式:`gitbook mobi ./ ./mybook.mobi`

######              **注意**:如果生成不了,你可能还需要安装一些工具,比如 calibre、ebook-convert,或者在 Typora 中安装 Pandoc 进行导出。

## 8.gitbook附加命令

```bash

npm i -g gitbook-cli |  npm install gitbook-cli -g  //安装环境

gitbook init //初始化目录文件

gitbook help //列出gitbook所有的命令

gitbook --help //输出gitbook-cli的帮助信息

gitbook build //生成静态网页

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

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 //卸载对应的gitbook版本

gitbook build --log=debug //指定log的级别

gitbook builid --debug //输出错误信息1234567891011121312345678910111213

```

## 四、目录结构 插件信息

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

```ruby

.

├── book.json

├── README.md

├── SUMMARY.md

├── notes/

|  ├── 1-0.md

|  └── 1-1.md

|  ├── 1-2.md

|  └── 1-3.md

```

下面我们主要来讲讲 book.json 和 SUMMARY.md 文件。

https://www.cnblogs.com/mingyue5826/p/10307051.html

### book.json

主要存放配置信息

```js

{

  "plugins": [

    "collapsible-menu",

    "anchor-navigation-ex",

    "tbfed-pagefooter",

    "disqus"

  ],

  "title": "张成的笔记(2018-2020)",

  "pluginsConfig": {

    "tbfed-pagefooter": {

      "copyright": "Copyright &copy zhangcheng 2018-2020",

      "modify_label": "文件修订时间:",

      "modify_format": "YYYY-MM-DD HH:mm:ss"

    },

    "disqus": {

      "shortName": "gitbookuse"

    }

  }

}

```

### 配置说明

| 变量          | 描述                                                        |

| ------------- | ------------------------------------------------------------ |

| root          | 包含所有图书文件的根文件夹的路径,除了 book.json            |

| structure    | 指定自述文件,摘要,词汇表等的路径                          |

| title        | 您的书名,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。 |

| description  | 您的书籍的描述,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。 |

| author        | 作者名。在GitBook.com上,这个字段是预填的。                  |

| isbn          | 国际标准书号 ISBN                                            |

| language      | 本书的语言类型 —— [ISO code](https://links.jianshu.com/go?to=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_ISO_639-1_codes) 。默认值是 `en` |

| direction    | 文本阅读顺序。可以是 rtl (从右向左)或 ltr (从左向右),默认值依赖于 language 的值。 |

| gitbook      | 应该使用的GitBook版本,并接受类似于 `>=3.0.0` 的条件。      |

| links        | 在左侧导航栏添加链接信息                                    |

| plugins      | 要加载的插件列表([官网插件列表](https://links.jianshu.com/go?to=https%3A%2F%2Fdocs.gitbook.com%2Fv2-changes%2Fimportant-differences%23plugins)) |

| pluginsConfig | 插件的配置                                                  |

### 默认插件

- highlight - 语法高亮插件

- search - 搜索插件

- sharing - 分享插件

- font-settings - 字体设置插件

- livereload - 热加载插件

该文件主要用来存放配置信息,我先放出我的配置文件。

相信很多节点自己也能猜到是什么意思,我还是简单介绍下吧。

搜索

![image-20200716145919634](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3N0bjUxZ2V6ajMwZnkwNGd0OHEuanBn?x-oss-process=image/format,png)

字体

![image-20200716145955656](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3N0bnByd3ppajMwYjIwNXd3ZWwuanBn?x-oss-process=image/format,png)

分享

![image-20200716150040280](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3N0b2lhbmJmajMwODAwNnp0OHQuanBn?x-oss-process=image/format,png)

### 删除默认插件

在平时开发中比如分享给出的都是一些国外的社交网站 对于我们没太大用户 那么我们可以删除默认配置

在插件配置在加`-`,配置完执行`gitbook install`即可

```json

"plugins": [

    "-sharing"

  ]

123

```

效果如下:

![image-20200716150604078](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3N0dTQzcHI3ajMxcW8waWN3Z2wuanBn?x-oss-process=image/format,png)

右侧不再展示分享相关的按钮

### 常用配置

#### 代码复制

```js

"plugins": [

    "code"

  ]

123

```

效果如下:

![image-20200720142753077](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmN254NTZrajMxN3EwNnNqcnUuanBn?x-oss-process=image/format,png)

代码复制按钮

```js

"plugins": [

    "copy-code-button"

  ]

123

```

![image-20200720144333351](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmbngzMXc2ajMxODYwN2NqcncuanBn?x-oss-process=image/format,png)

#### 目录折叠

```js

"plugins": [

    "expandable-chapters"

  ]

123

```

效果如下:

![image-20200720142951146](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmOW83cnExajMwY20wYmNhYXAuanBn?x-oss-process=image/format,png)

```js

"plugins": [

    "expandable-chapters-small"

  ]

123

```

和上面一样都是折叠目录的,区别就是下面的箭头要细一些。

效果如下:

![image-20200720143153085](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmYnJyOHVnajMwZzIwZWd3ZmUuanBn?x-oss-process=image/format,png)

#### 回到顶部

```js

"plugins": [

    "back-to-top-button"

  ]

123

```

效果如下:

![image-20200720143530843](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmZmsxOTA2ajMxZ3UwZzQwdjAuanBn?x-oss-process=image/format,png)

#### 高级搜索

去除默认的search搜索和lunr,在搜索结果中,关键字会高亮;自带的 search 插件,关键字不会高亮

```js

"plugins": [

          "-lunr",

          "-search",

          "search-pro"

    ]

12345

```

原生搜索效果:

![image-20200720144425681](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmb3R6NnMwajMxeWUwamdncm8uanBn?x-oss-process=image/format,png)

高级搜索:

![image-20200720144917280](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hmdHdpdTBrajMyMHMwcmkxMnouanBn?x-oss-process=image/format,png)

搜索关键字高亮,支持中文、拼音和英文

#### 分享

分享当前页面,比默认的 sharing 插件多了一些分享方式

```js

"plugins": ["-sharing", "sharing-plus"],

    "pluginsConfig": {

        "sharing": {

            "douban": false,

            "facebook": false,

            "google": true,

            "pocket": false,

            "qq": false,

            "qzone": true,

            "twitter": false,

            "weibo": true,

          "all": [

              "douban", "facebook", "google", "instapaper", "linkedin","twitter", "weibo",

              "messenger","qq", "qzone","viber","whatsapp"

          ]

      }

12345678910111213141516

```

参数配置里面true的默认展示图标,false的默认不展示;all里面的会在分享按钮的下拉列表里面全部展示出来。

效果如下:

![image-20200720145713703](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hnMjVkZnN0ajMwaWUwczh3ZzEuanBn?x-oss-process=image/format,png)

分享效果如下:

![image-20200720145824437](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hnM2RleTg5ajMxNWEwdG90Y2wuanBn?x-oss-process=image/format,png)

#### 配置页脚

```js

"plugins": [

      "tbfed-pagefooter"

    ],

    "pluginsConfig": {

        "tbfed-pagefooter": {

            "copyright":"Copyright &copy mine 2000-2020",

            "modify_label": "文件修订时间:",

            "modify_format": "YYYY-MM-DD HH:mm:ss"

        }

    }

12345678910

```

效果如下:

![image-20200720152236897](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90dmExLnNpbmFpbWcuY24vbGFyZ2UvMDA3UzhaSWxseTFnZ3hnc2tleTE5ajMxOHEwM2lqcnMuanBn?x-oss-process=image/format,png)

### title:设置书本的标题?

```json

"title" : "Gitbook Use"

```

### author:作者的相关信息?

```

"author" : "ds"

```

### description:本书的简单描述?

```json

"description" : "记录Gitbook的配置和一些插件的使用"

```

### language:Gitbook使用的语言?

版本2.6.4中可选的语言如下:

```json

en, ar, bn, cs, de, en, es, fa, fi, fr, he, it, ja, ko, no, pl, pt, ro, ru, sv, uk, vi, zh-hans, zh-tw1

```

配置使用简体中文:

```json

"language" : "zh-hans",

```

### gitbook: 指定使用的gitbook版本?

```json

"gitbook" : "3.2.2",

"gitbook" : ">=3.0.0"12

```

### root:指定根目录?

```json

"root": "."1

```

### links:左侧导航栏添加链接信息?

```json

"links" : {

    "sidebar" : {

        "个人主页" : "http://www.ds-vip.top"

    }

}12345

```

### styles:自定义页面样式?

默认情况下各`generator`对应的`css`文件:

```json

"styles": {

    "website": "styles/website.css",

    "ebook": "styles/ebook.css",

    "pdf": "styles/pdf.css",

    "mobi": "styles/mobi.css",

    "epub": "styles/epub.css"

}1234567

```

例如使` `标签有下边框, 可以在`website.css`中设置,这个可以有。

```css

h1 , h2{

    border-bottom: 1px solid #EFEAEA;

}123

```

### plugins:配置使用的插件?

```j'so

"plugins": [

    "disqus"

]123

```

- 例如上面添加`disqus`插件:之后需要运行`gitbook install`来安装新的插件。

- Gitbook默认带有5个插件:highlight、search、sharing、font-settings、livereload

- 如果要去除自带的插件, 可以在插件名称前面加`-`:

```json

"plugins": [

    "-search"

]123

```

### pluginsConfig:配置插件的属性?

```json

"pluginsConfig": {

    "fontsettings": {

        "theme": "sepia",

        "family": "serif",

        "size":  1

    }

}1234567

```

上面就是配置Gitbook界面那个`A`按钮的默认属性。

### structure?

指定 Readme、Summary、Glossary 和 Languages 对应的文件名,下面是这几个文件对应变量以及默认值:

| 变量                  | 含义和默认值                                  |

| --------------------- | ---------------------------------------------- |

| `structure.readme`    | `Readme file name (defaults to README.md)`    |

| `structure.summary`  | `Summary file name (defaults to SUMMARY.md)`  |

| `structure.glossary`  | `Glossary file name (defaults to GLOSSARY.md)` |

| `structure.languages` | `Languages file name (defaults to LANGS.md)`  |

## GitBook插件?

可以指定插件的版本可以使用 `plugin@0.3.1` , 下面的插件在 GitBook 的 `3.2.3` 版本中可以正常工作,[插件官网](https://plugins.gitbook.com/)。

具体介绍看这里:https://github.com/zhangjikai/gitbook-use/blob/master/plugins.md

- Summary插件:`npm install -g gitbook-summary`

- `book sm`,一个完整的目录文件`SUMMARY.md`就生成了 ,之后根据自己的需要修改,进一步的命令就不需要了。

## 主题?

我们常用的就是 Book 文档模式,所以只看这部分。

### theme-default?

默认的 Book 主题。将 `showLevel` 设为 `true`, 就可以显示标题前面的数字索引,默认不显示。

```json

{

    "theme-default": {

        "showLevel": true

    }

}12345

```

### theme-comscore?

这个主题为标题添加了颜色

```json

{

"plugins": [

        "theme-comscore"

    ]

}12345

```

## book.json配置文件?

### SUMMARY.md

这个文件主要决定 GitBook 的章节目录,它通过 Markdown 中的列表语法来表示文件的父子关系,下面是一个简单的示例:

```csharp

# Summary

* [目录](README.md)

* [第一章](notes/1-0.md)

    * [第1节:](notes/1-1.md)

    * [第2节:](notes/1-2.md)

    * [第3节:](notes/1-3.md)

    * [第4节:](notes/1-4.md)

* [第二章](notes/2-0.md)

* [第三章](notes/3-0.md)

* [第四章](notes/4-0.md)

```

这个配置对应的目录结构如下所示:

我们通过使用 `标题` 或者 `水平分割线` 将 GitBook 分为几个不同的部分,如下所示:

```csharp

# Summary

### Part I

* [目录](README.md)

### Part II

* [第一章](notes/1-0.md)

    * [第1节:](notes/1-1.md)

    * [第2节:](notes/1-2.md)

    * [第3节:](notes/1-3.md)

    * [第4节:](notes/1-4.md)

---

* [第二章](notes/2-0.md)

---

* [第三章](notes/3-0.md)

---

* [第四章](notes/4-0.md)

```

## 五、用 Git 做版本管理 (需要安装插件)

GitBook 有 [插件官网](https://links.jianshu.com/go?to=https%3A%2F%2Fplugins.gitbook.com%2F),默认带有 5 个插件,highlight、search、sharing、font-settings、livereload,如果要去除自带的插件, 可以在插件名称前面加 `-`,比如:

```bash

"plugins": [

    "-search"

]

```

如果要配置使用的插件可以在 book.json 文件中加入即可,比如我们添加 [plugin-github](https://links.jianshu.com/go?to=https%3A%2F%2Fplugins.gitbook.com%2Fplugin%2Fgithub),我们在 book.json 中加入配置如下即可:

```json

{

    "plugins": [ "github" ],

    "pluginsConfig": {

        "github": {

            "url": "https://github.com/13469940053/Web_notes"

        }

    }

}

```

然后在终端输入 `gitbook install ./` 即可。

如果要指定插件的版本可以使用 plugin@0.3.1,因为一些插件可能不会随着 GitBook 版本的升级而升级。

# 六、上传到静态服务托管平台

在远端建好git仓库,在 mybook 目录下执行 `git init` 初始化仓库,执行 `git remote add` 添加远程仓库。接着就可以愉快地 commit,push,pull …

## 六、结语

这是我对 GitBook 使用的总结,希望能帮到今后需要的小伙伴。

------

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336