目录

前言 1.1

Gitbook简介 1.2

Gitbook命令行工具 1.3

电子书制作过程 1.4

Gitbook插件 1.5

代码高亮 1.5.1

按钮 1.5.2

分享 1.5.3

脚注 1.5.4

提示和标注 1.5.5

章节折叠 1.5.6

Google Analysis统计 1.5.7

打赏 1.5.8

其他插件 1.5.9

配置Gitbook 1.6

多种输出格式 1.7

一键发布 1.8

Gitbook Editor 1.9

注意事项和使用心得 1.10

附录 1.11

参考资料 1.11.1

前言

电子书制作利器：GitBook

最新版本：v1.2

更新时间：20190530

简介

对电子书制作利器GitBook做个总结，包括电子书制作过程、常用插件、book.json的常用配置、利用Makefile实现一键发布、如何输出多种格式(html/pdf/epub/mobi)，客户端Gitbook Editor的使用、一些常见的坑等等。

源码+浏览+下载

本书的各种源码、在线浏览地址、多种格式文件下载如下：

Gitbook源码

crifan/ebook_system_gitbook: 电子书制作利器：GitBook

如何使用此Gitbook源码去生成发布为电子书

详见：crifan/gitbook_template: demo how to use crifan gitbook template and demo

在线浏览

电子书制作利器：GitBook book.crifan.com

电子书制作利器：GitBook crifan.github.io

离线下载阅读

电子书制作利器：GitBook PDF

电子书制作利器：GitBook ePub

电子书制作利器：GitBook Mobi

版权说明

此电子书教程的全部内容，如无特别说明，均为本人原创和整理。其中部分内容参考自网络，均已备注了出处。如有发现侵犯您版权，请通过邮箱联系我 admin 艾特 crifan.com，我会尽快删除。谢谢合作。

鸣谢

感谢我的老婆陈雪的包容理解和悉心照料，才使得我crifan有更多精力去专注技术专研和整理归纳出这些电子书和技术教程，特此鸣谢。

更多其他电子书

本人crifan还写了其他100+本电子书教程，感兴趣可移步至：

crifan/crifan_ebook_readme: Crifan的电子书的使用说明

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-01-17 00:11:27

Gitbook简介

Gitbook简介

当谈论gitbook这个词时，有两方面的含义：

gitbook.com 网站

gitbook.com 提供服务，可以在网站上面写markdown，系统帮你生成电子书

生成的电子书系统中，支持在线网页版和下载PDF、ePub、Mobi等其他格式

现在已有很多人在gitbook.com上写了书，感兴趣的可以自己去找找看：

https://legacy.gitbook.com/explore

gitbook系统：gitbook.com提供的免费的工具

可以自己拿来使用去生成电子书的成套系统

此外还提供了相关的客户端Gitbook Editor，以所见即所得的方式用Markdown去编写电子书

此处主要介绍第二种的Gitbook：Gitbook系统和相关的GitBook Editor客户端编辑器

可以总结为：

gitbook是gitbook.com出的，可以用markdown的编写自己的一套电子书制作的系统和工具

GitBook Editor是gitbook.com出的，可以用markdown的编写自己的电子书的桌面客户端

其他相关内容

其他还有常被拿来和Gitbook去对比的其他一些markdown的工具：

【整理】文档制作工具：MkDocs Gitbook等

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:13:06

Gitbook命令行工具

Gitbook命令行工具

gitbook本身是套系统

除了有GUI客户端：Gitbook Editor以图形化方式让你写book外，还有相关的命令行工具gitbook

对应各种命令：

TODO：

抽空把：

命令 · gitbook-guide

https://zq99299.gitbooks.io/gitbook-guide/content/chapter/command.html

整理过来。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 16:49:20

电子书制作过程

电子书制作过程

新建一个Gitbook电子书，主要有两种方式：

Gitbook Editor：用Gitbook Editor创建book+同步到远端git仓库

关于Gitbook Editor的使用，详见：Gitbook Editor章节

纯命令行：gitbook-cli及相关的成套工具

直接用git创建本地仓库

用gitbook init创建本地的book

用git同步到远端仓库

下面就来介绍，如何用gitbook的命令行工具，去制作自己的电子书。

准备工作

我们需要一个git代码仓库，用于保存自己的gitbook的源码。

此处选用github。所以先去github中，新建一个空的git仓库，比如：

https://github.com/crifan/improve_work_efficiency.git

初始化gitbook

用：

gitbook init

去创建一个空的book：

举例：

➜  Import gitbook init improve_work_efficiency
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished

编辑gitbook的markdown源码

去编辑相关的gitbook的markdown的源码，以及相关的book.json等内容

比如我去拷贝别的book的内容过来后，文件如下：

➜  improve_work_efficiency git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    Makefile
    README.md
    book.json
    src/

nothing added to commit but untracked files present (use "git add" to track)

然后再继续去编辑内容

gitbook install安装插件

在book.json配置好之后，要去安装对应的gitbook的插件。

  improve_work_efficiency git:(master) ✗ gitbook install
info: installing 16 plugins using npm@3.9.2
info:
info: installing plugin "theme-comscore"
info: install plugin "theme-comscore" (*) from NPM with version 0.0.3
/Users/crifan/GitBook/Library/Import/improve_work_efficiency
└── gitbook-plugin-theme-comscore@0.0.3

info: >> plugin "theme-comscore" installed with success
info:
info: installing plugin "search-plus"
runTopLevelLifecycles → 3 ▐ ╢████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████░░░░╟
/Users/crifan/GitBook/Library/Import/improve_work_efficiency
├─┬ gitbook-plugin-search-plus@1.0.3
│ └── html-entities@1.2.0
└── gitbook-plugin-theme-comscore@0.0.3
...
info: >> plugin "alerts" installed with success
info:
info: installing plugin "toolbar-button"
postinstall:gitbook-plugi ▌ ╢███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████░░░░░╟
/Users/crifan/GitBook/Library/Import/improve_work_efficiency
├── gitbook-plugin-alerts@0.2.0
├── gitbook-plugin-copy-code-button@0.0.2
├── gitbook-plugin-disqus@0.1.0
├── gitbook-plugin-donate@1.0.2
├── gitbook-plugin-expandable-chapters-small@0.1.7
├── gitbook-plugin-ga@1.0.1
├── gitbook-plugin-github-buttons@3.0.0
├── gitbook-plugin-prism@2.3.0
├── gitbook-plugin-prism-themes@0.0.2
├── gitbook-plugin-search-plus@1.0.3
├── gitbook-plugin-sharing-plus@0.0.2
├── gitbook-plugin-sitemap-general@0.1.1
├── gitbook-plugin-splitter@0.0.8
├── gitbook-plugin-tbfed-pagefooter@0.0.1
├── gitbook-plugin-theme-comscore@0.0.3
└── gitbook-plugin-toolbar-button@0.0.1

info: >> plugin "toolbar-button" installed with success

本地调试

然后用我自己写的一键发布中的Makefile去调试：

➜  improve_work_efficiency git:(master) ✗ make debug
--------------------------------------------------------------------------------
Author  : crifan.com
Version : 20171231
Function: Auto use gitbook to generated files: website/pdf/epub/mobi; upload to remote server; commit to github io repo
        Run 'make help' to see usage
--------------------------------------------------------------------------------
rm -rf /Users/crifan/GitBook/Library/Import/improve_work_efficiency/debug
mkdir -p /Users/crifan/GitBook/Library/Import/improve_work_efficiency/debug
gitbook serve /Users/crifan/GitBook/Library/Import/improve_work_efficiency /Users/crifan/GitBook/Library/Import/improve_work_efficiency/debug
Live reload server started on port: 35729
Press CTRL+C to quit ...

info: 23 plugins are installed
info: 19 explicitly listed
info: loading plugin "search-plus"... OK
info: loading plugin "disqus"... OK
info: loading plugin "prism"... OK
info: loading plugin "prism-themes"... OK
info: loading plugin "github-buttons"... OK
info: loading plugin "splitter"... OK
info: loading plugin "sharing-plus"... OK
info: loading plugin "tbfed-pagefooter"... OK
info: loading plugin "expandable-chapters-small"... OK
info: loading plugin "ga"... OK
info: loading plugin "donate"... OK
info: loading plugin "sitemap-general"... OK
info: loading plugin "copy-code-button"... OK
info: loading plugin "alerts"... OK
info: loading plugin "toolbar-button"... OK
info: loading plugin "livereload"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-comscore"... OK
info: loading plugin "theme-default"... OK
info: found 6 pages
info: found 1 asset files
warn: "options" property is deprecated, use config.get(key) instead
warn: "options.generator" property is deprecated, use "output.name" instead
init!
finish!
info: >> generation finished with success in 1.3s !

Starting server ...
Serving book on http://localhost:4000
Restart after change in file src/good_tool_soft/README.md

然后即可在浏览器打开：

http://localhost:4000

去看自己的book的内容了：

把gitbook源码上传到远程仓库中

接着就是把gitbook的源码去上传到远程的github的git仓库中。

如果你对git操作很熟悉，可以忽略下面内容而自行操作。

git创建本地仓库

➜  Import cd improve_work_efficiency
➜  improve_work_efficiency ll
total 16
-rw-r--r--  1 crifan  staff    16B  1 16 14:03 README.md
-rw-r--r--  1 crifan  staff    40B  1 16 14:03 SUMMARY.md
➜  improve_work_efficiency git init
Initialized empty Git repository in /Users/crifan/GitBook/Library/Import/improve_work_efficiency/.git/
➜  improve_work_efficiency git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README.md
    SUMMARY.md

nothing added to commit but untracked files present (use "git add" to track)

用git add把文件加入到本地

➜  improve_work_efficiency git:(master) ✗ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    Makefile
    README.md
    book.json
    src/

nothing added to commit but untracked files present (use "git add" to track)
➜  improve_work_efficiency git:(master) ✗ git add *
The following paths are ignored by one of your .gitignore files:
debug
node_modules
Use -f if you really want to add them.
➜  improve_work_efficiency git:(master) ✗ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   Makefile
    new file:   README.md
    new file:   book.json
    new file:   src/README.md
    new file:   src/SUMMARY.md
    new file:   src/appendix/README.md
    new file:   src/appendix/reference.md
    new file:   src/assets/favicon.ico
    new file:   src/good_tool_soft/README.md
    new file:   src/manual_to_automatic/README.md
    new file:   src/self_write_soft/README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore

➜  improve_work_efficiency git:(master) ✗ git add .gitignore
➜  improve_work_efficiency git:(master) ✗ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   .gitignore
    new file:   Makefile
    new file:   README.md
    new file:   book.json
    new file:   src/README.md
    new file:   src/SUMMARY.md
    new file:   src/appendix/README.md
    new file:   src/appendix/reference.md
    new file:   src/assets/favicon.ico
    new file:   src/good_tool_soft/README.md
    new file:   src/manual_to_automatic/README.md
    new file:   src/self_write_soft/README.md

用git commit提交文件到本地仓库

➜  improve_work_efficiency git:(master) ✗ git commit -m "1. complete basic content"
[master (root-commit) e09122d] 1. complete basic content
 12 files changed, 1017 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Makefile
 create mode 100644 README.md
 create mode 100644 book.json
 create mode 100644 src/README.md
 create mode 100644 src/SUMMARY.md
 create mode 100644 src/appendix/README.md
 create mode 100644 src/appendix/reference.md
 create mode 100644 src/assets/favicon.ico
 create mode 100644 src/good_tool_soft/README.md
 create mode 100644 src/manual_to_automatic/README.md
 create mode 100644 src/self_write_soft/README.md

用git remote add后git push去推送内容到远端git仓库

➜  improve_work_efficiency git:(master) git push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

➜  improve_work_efficiency git:(master) git remote add origin https://github.com/crifan/improve_work_efficiency.git
➜  improve_work_efficiency git:(master) git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

➜  improve_work_efficiency git:(master) git push --set-upstream origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (19/19), 10.48 KiB | 2.10 MiB/s, done.
Total 19 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/crifan/improve_work_efficiency.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

然后远端git仓库github上就可以看到代码了：

crifan/improve_work_efficiency: 总结一下如何把手动工作换成自动以提高工作效率

https://github.com/crifan/improve_work_efficiency

之后每次更新代码重新上传最新代码

每次编辑更新gitbook的markdown源码后，再去：

git add *
git commit -m "describe your update"
git push

即可上传最新改动。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 16:45:13

Gitbook插件

Gitbook插件

gitbook有很多插件

去官网

https://plugins.gitbook.com

中可以搜到自己想要的插件

但是有个缺点，很多插件页面中都没有截图介绍，不够直观

所以往往都是网上看看别人评价如何，最后决定采用哪个插件

我自己折腾期间，主要是参考了几个别人整理的gitbook的知识：

TODO：

把

【记录】给Gitbook添加更多配置和功能

http://www.crifan.com/gitbook_add_more_config_and_function

中的：

参考链接

安装了哪些插件

等等，都整理过来

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2019-03-18 11:15:08

代码高亮

代码高亮

用的是prism

Prism

http://prismjs.com

对于支持的语言，

TODO：

Prism

http://prismjs.com

中的列表整理过来

插件配置：

  "plugins": [
    "-highlight",
    "prism",
    "prism-themes",
  ],

注：写markdown时，可以拷贝：

prismjs 代码高亮 · gitbook-guide

https://zq99299.gitbooks.io/gitbook-guide/content/chapter/plugin/prismjs.html

中的内容，然后用Sublime/VSCode中去正则替换，变成自己要的md的格式

Markup - markup -》

`Markup` : `markup`

另外要注意，要写后面的小写（简写）

比如对于Makefile，要写makefile

-》如果写Makefile，则无法识别

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:08:02

按钮

按钮

插件：

github-buttons

toolbar-button

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:06:53

分享

分享

插件：

    "-sharing",
    "sharing-plus",

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:03:59

脚注

脚注

插件：tbfed-pagefooter

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:04:25

提示和标注

提示和标注

目前在用的提示的插件是：

gitbook-plugin-callouts

具体语法是：

> #### Info::Info
> #### Note::Note
> #### Tag::Tag
> #### Comment::Comment
> #### Hint::Hint
> #### Success::Success
> #### Warning::Warning
> #### Caution::Caution
> #### Danger::Danger
> #### Quote::Quote

效果是：

详见：【记录】gitbook换用更好看的hint callout提示

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2019-03-02 21:37:19

章节折叠

章节折叠

插件：expandable-chapters-small

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:04:55

Google Analysis统计

Google Analysis统计

插件：ga

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:05:15

打赏

打赏

插件：donate

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:05:30

其他插件

其他插件

插件：

sitemap-general

copy-code-button

anchors

disqus

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 18:08:23

配置Gitbook

配置Gitbook

Gitbook中的配置内容，主要就是一个book.json。

此外和配置算有关的，还有一个文件夹结构，即相关的目录、内容、图片等组织结构。

book.json配置

最开始弄了个基本的book.json：

【整理】Gitbook中的book.json参数配置

最后基本定型的book.json如下：

{
  "title": "编程习惯和代码风格",
  "description": "介绍为何要和如何形成良好的编程习惯和代码风格",
  "author": "Crifan Li <admin@crifan.com>",
  "language": "zh-hans",
  "gitbook": "3.2.3",
  "root": "./src",
  "links": {
    "sidebar": {
      "主页": "http://www.crifan.com"
    }
  },
  "plugins": [
    "theme-comscore",
    "-lunr",
    "-search",
    "search-plus",
    "disqus",
    "-highlight",
    "prism",
    "prism-themes",
    "github-buttons",
    "splitter",
    "-sharing",
    "sharing-plus",
    "tbfed-pagefooter",
    "expandable-chapters-small",
    "ga",
    "donate",
    "sitemap-general",
    "copy-code-button",
    "alerts",
    "toolbar-button"
  ],
  "pluginsConfig": {
    "theme-default": {
        "showLevel": true
    },
    "disqus": {
      "shortName": "crifan"
    },
    "prism": {
      "css": [
        "prism-themes/themes/prism-atom-dark.css"
      ]
    },
    "github-buttons": {
      "buttons": [
        {
          "user": "crifan",
          "repo": "program_code_style",
          "type": "star",
          "count": true,
          "size": "small"
        }, {
          "user": "crifan",
          "type": "follow",
          "width": "120",
          "count": false,
          "size": "small"
        }
      ]
    },
    "sharing": {
      "douban": false,
      "facebook": true,
      "google": false,
      "hatenaBookmark": false,
      "instapaper": false,
      "line": false,
      "linkedin": false,
      "messenger": false,
      "pocket": false,
      "qq": true,
      "qzone": false,
      "stumbleupon": false,
      "twitter": true,
      "viber": false,
      "vk": false,
      "weibo": true,
      "whatsapp": false,
      "all": [
        "douban",
        "facebook",
        "google",
        "instapaper",
        "line",
        "linkedin",
        "messenger",
        "pocket",
        "qq",
        "qzone",
        "stumbleupon",
        "twitter",
        "viber",
        "vk",
        "weibo",
        "whatsapp"
      ]
    },
    "tbfed-pagefooter": {
      "copyright": "crifan.com，使用<a href='https://creativecommons.org/licenses/by-sa/4.0/deed.zh'>知识署名-相同方式共享4.0协议</a>发布",
      "modify_label": "该文件修订时间：",
      "modify_format": "YYYY-MM-DD HH:mm:ss"
    },
    "ga": {
      "token": "UA-28297199-1"
    },
    "donate": {
      "wechat": "https://www.crifan.com/files/res/crifan_com/crifan_wechat_pay.jpg",
      "alipay": "https://www.crifan.com/files/res/crifan_com/crifan_alipay_pay.jpg",
      "title": "",
      "button": "打赏",
      "alipayText": "支付宝打赏给Crifan",
      "wechatText": "微信打赏给Crifan"
    },
    "sitemap-general": {
      "prefix": "https://book.crifan.com/gitbook/program_code_style/website/"
    },
    "toolbar-button": {
      "icon": "fa-file-pdf-o",
      "label": "下载PDF",
      "url": "http://book.crifan.com/books/program_code_style/pdf/program_code_style.pdf"
    }
  }
}

文件结构

之前自己折腾的过程：

【记录】gitbook优化book的文件组织结构

现在分享出自己的，供参考：

TODO：把自己的gitbook的

各个文件夹和文件的结构整理出来

且贴出来：

SUMMARY.md

README.md

等

相关md的基本内容，供参考。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 17:18:53

多种输出格式

多种输出格式

Gitbook支持将电子书导出为多种格式：

html

pdf

ePub

Mobi

下面就来详细介绍一下如何操作。

导出为html

导出为pdf

【记录】Gitbook的本地预览和导出为html和PDF等其他格式

导出为ePub / Mobi

可以安装Calibre去看看导出后的效果：

【记录】下载安装使用电子书阅读器转换器Calibre

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-02 17:14:44

一键发布

一键发布

后来为了便于管理手上如此多（几十个）的gitbook的电子书，所以去优化结构，利用Makefile去实现生成gitbook、代码上传、上传/发布生成的文件等操作，实现了一键发布（到自己的网站和github的pages上）的效果。

详见：

【已解决】搭建Gitbook环境使得可以发布book到crifan.com上

【记录】Mac本地搭建Gitbook环境

【记录】把http_summary的gitbook上传到二级域名book.crifan.com中

且后来，把自己的gitbook的整套环境做成一个模板了，需要的可以去参考：

crifan/gitbook_template: 演示如何使用crifan的gitbook的模板去创建自己的gitbook电子书

对应的Makefile在GitbookCommon.mk，需要的可以去参考。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2019-03-02 22:06:56

Gitbook Editor

Gitbook Editor

TODO：

把之前帖子中，如何用gitbook editor创建

并同步到远端git仓库的截图贴过来

【整理】Gitbook和Gitbook Editor使用心得

【记录】用Gitbook Editor中的Publish去发布gitbook源码

【已解决】gitbook中用命令行去创建book

【记录】试用Gitbook Editor去编辑Markdown的文章

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2019-03-02 22:04:02

注意事项和使用心得

Gitbook的注意事项和使用心得

折腾gitbook期间，也算踩过一些坑，总结了些经验，整理如下：

最新版本Gitbook的bug很多，以及没有命令行工具了

详见：

【记录】gitbook升级到新版本

多章节的编号显示有问题

虽然开始好像是用插件支持了：

【已解决】gitbook中安装multipart插件

【已解决】Gitbook中添加章节的编号

但是最终还是没法正常的实现自己要的 章节按照1，2，3去编号：

【部分解决】Gitbook中添加多章节且希望一级章节也显示编号

后来又去试了试：

【未解决】Gitbook中实现多章节中一级章节目录显示一级编号

虽然找到了别人为了解决次bug而去改动的gitbook的源码的位置，但是由于无法找到

此处Mac中用npm install gitbook后，应该去哪里找到对应的位置，所以此处还是无法解决问题。

调试时添加--log以便于看到详细的错误信息

在用serve去调试本地的gitbook时，有些细节和错误，比如markdown的插件中语法写错了，是不知道，也看不到错误信息的。

而想要看到，则需要添加--log的参数，可以输出详细的log日志信息，从而可以看出原因和细节。

比如，语法高亮插件中用的是prism，而markdown源码写了个md的语法：

```markdown
`Markup` : `markup`
```

时，结果log中即可看到错误信息：

gitbook serve /Users/crifan/GitBook/Library/Import/ebook_system_gitbook /Users/crifan/GitBook/Library/Import/ebook_system_gitbook/debug --log debug
...

debug: index page gitbook_plugins/code_highlight.md
Failed to load prism syntax: md
{ Error: Cannot find module 'prismjs/components/prism-md.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
    at Function.Module._load (internal/modules/cjs/loader.js:520:25)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at requireSyntax (/Users/crifan/GitBook/Library/Import/ebook_system_gitbook/node_modules/gitbook-plugin-prism/index.js:31:3)
    at Object.code (/Users/crifan/GitBook/Library/Import/ebook_system_gitbook/node_modules/gitbook-plugin-prism/index.js:103:11)
    at Record.TemplateBlock.applyBlock (/Users/crifan/.gitbook/versions/3.2.3/lib/models/templateBlock.js:205:23)
    at /Users/crifan/.gitbook/versions/3.2.3/lib/output/getModifiers.js:56:33
    at /Users/crifan/.gitbook/versions/3.2.3/lib/output/modifiers/highlightCode.js:47:24
    at /Users/crifan/.gitbook/versions/3.2.3/lib/output/modifiers/editHTMLElement.js:11:16 code: 'MODULE_NOT_FOUND' }

如此，才真正知道自己写错了，然后才能想到，去参考prism官网，找到并修改为正确写法是：markdown：

```markdown
`Markup` : `markup`
```

即可解决错误，代码能真正的语法高亮：

代码中包含花括号

【已解决】Gitbook中Markdown的代码中如何包含左右花括号{}

代码块显示代码行号

不过gitbook中的prism插件暂时还没有直接支持行号显示：

【未解决】Gitbook中Markdown的代码段中如何添加行号)

跨页面引用和跳转

跨页面的话，貌似只能直接用链接地址了：

【已解决】gitbook如何实现book内部的跨页面的跳转或引用

后记：

已经实现了：

【已解决】gitbook中想要实现引用别的章节的内容

引用gitbook的root目录之外是不支持的

【未解决】gitbook中用markdown的include实现根目录外部的README.md文件内容同步

不过倒是可以通过:

{% include "../README.md" %}

去引入gitbook内部的其他的章节的。

左侧添加下载PDF按钮

没有完全实现，间接实现了类似效果：

【部分解决】给gitbook中左侧添加PDF及其他格式的下载按钮

调试时文件改动后页面刷新特别慢

详见：

【暂时解决】gitbook调试时文件改动后页面刷新特别慢

gitbook中表格中无法嵌入code代码

详见：

【无法解决】gitbook中表格中嵌入code代码

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2020-07-26 11:56:56

附录

附录

下面列出相关参考资料。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2018-07-01 10:37:46

参考资料

参考资料

【记录】给Gitbook添加更多配置和功能

【整理】文档制作工具：MkDocs Gitbook等

命令 · gitbook-guide

【记录】给Gitbook添加更多配置和功能

prismjs 代码高亮 · gitbook-guide

【记录】gitbook换用更好看的hint callout提示

【已解决】gitbook中book.json中能否把公共部分提取出来

【记录】gitbook升级到新版本

【整理】Gitbook中的book.json参数配置

【记录】gitbook优化book的文件组织结构

【记录】Gitbook的本地预览和导出为html和PDF等其他格式

【记录】下载安装使用电子书阅读器转换器Calibre

【已解决】搭建Gitbook环境使得可以发布book到crifan.com上

【记录】Mac本地搭建Gitbook环境

【记录】把http_summary的gitbook上传到二级域名book.crifan.com中

【整理】Gitbook和Gitbook Editor使用心得

【记录】用Gitbook Editor中的Publish去发布gitbook源码

【已解决】gitbook中用命令行去创建book)

【记录】试用Gitbook Editor去编辑Markdown的文章

【记录】gitbook升级到新版本

【已解决】gitbook中安装multipart插件

【已解决】Gitbook中添加章节的编号

【部分解决】Gitbook中添加多章节且希望一级章节也显示编号

【未解决】Gitbook中实现多章节中一级章节目录显示一级编号)

【未解决】Gitbook中Markdown的代码段中如何添加行号

【已解决】gitbook如何实现book内部的跨页面的跳转或引用)

【已解决】gitbook中想要实现引用别的章节的内容)

【未解决】gitbook中用markdown的include实现根目录外部的README.md文件内容同步

【部分解决】给gitbook中左侧添加PDF及其他格式的下载按钮

【暂时解决】gitbook调试时文件改动后页面刷新特别慢

【无法解决】gitbook中表格中嵌入code代码

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2019-03-02 22:02:17