gitbook 使用笔记
gitbook 使用笔记
https://www.bilibili.com/video/av249116916?p=2&spm_id_from=pageDriver
https://songlu-cube.gitee.io/courseware-gitbook-demo/
https://blog.csdn.net/fghsfeyhdf/article/details/88403548
https://www.jianshu.com/p/7b6ece9fbdf2
https://www.w3cschool.cn/gitbook/gitbook-2wxh3evx.html
Gitbook+码云创建自己的文档: https://kevinlu98.cn/archives/71.html
http://www.chengweiyang.cn/gitbook/introduction/README.html
https://blog.csdn.net/axi295309066/article/details/61420694/
https://www.mapull.com/gitbook/comscore/
https://blog.csdn.net/stu059074244/article/details/77767835
https://www.cnblogs.com/jiangming-blogs/p/14643147.html
http://gitbook.zhangjikai.com/plugins.htm
https://blog.csdn.net/weixin_38171180/article/details/89059127
https://www.cnblogs.com/imayanlong/p/10334458.html
https://blog.csdn.net/fghsfeyhdf/article/details/88403548
打包:https://github.com/zhaoda/webpack-handbook/tree/master/content
https://blog.csdn.net/lu_embedded/article/details/81100704
https://www.liqingbo.cn/docs/gitbook/content/related.html
https://segmentfault.com/a/1190000019806829
https://zhuanlan.zhihu.com/p/51255194
https://gitee.com/mapull/gitbook-guide#https://www.mapull.com/gitbook/faq/
https://blog.csdn.net/woflyoycm/article/details/110137422
插件:http://gitbook.zhangjikai.com/plugins.html
https://www.jianshu.com/p/427b8bb066e6
主题用 Gitbook comscore
安装
1. 安装
安装失败 下面的三个可能,目前还没能定位到问题
1.最大可能是 node 版本高了,后期用v10.0.0 成功了
2.安装了 webpack npm install webpack -g
3.安装了 gnvm
npm install gitbook-cli -g
## 或者
npm install -g gitbook-cli
## 如果没有安装gitbook,此命令会默认同时安装 GitBook
gitbook -V
## 列出本地所有的gitbook版本
gitbook ls
## 升级
gitbook update
通过gitbook -V命令查看是否安装成功。
C:\Users\lihuan\AppData\Roaming\npm\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js

Tips:GitBook常用命令
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 //输出错误信息
2. 项目初始化
新建项目mygitbook然后在根目录下执行命令
gitbook init
打开一个文件夹 MyGitBook 使用 gitbook init 初始化文件夹,会自动生成两个必要的文件 README.md 和 SUMMARY.md
| 文件 | 说明 |
|---|---|
| README.md | 书的介绍文字,如前言、简介,在章节中也可做为章节的简介。 |
| SUMMARY.md | 定制书籍的章节结构和顺序。 |
README.md 和 SUMMARY.md 是 GitBook 制作电子书的必要文件
结构目录
# gitbook init后生成文件树
├── node_modules
├── book.json (配置数据 (optional))
├── README.md (电子书的前言或简介 (required))
├── SUMMARY.md (电子书目录 (optional))
├── GLOSSARY.md (词汇/注释术语列表 (optional))
gitbook之website.css/book.json实例: https://blog.csdn.net/qq_23662505/article/details/121114797
自定义样式
本地视频:https://www.mapull.com/gitbook/comscore/custom/plugin/other/video.html
编辑 SUMMARY.md 文件,内容修改为:
# 目录
* [前言](README.md)
* [第一章](Chapter1/README.md)
* [第1节:衣](Chapter1/衣.md)
* [第2节:食](Chapter1/食.md)
* [第3节:住](Chapter1/住.md)
* [第4节:行](Chapter1/行.md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)
然后我们回到命令行,在 mybook 文件夹中再次执行 gitbook init 命令。GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。
Typora 是所见即所得(实时渲染)的 Markdown 编辑器,这时候它是这样的:

3. 预览& 构建书籍
3.1 预览
gitbook serve
gitbook 默认会启动 4000 端口,然后浏览器访问 localhost:4000即可看见默认效果
# 指定端口 2333
gitbook serve --port 2333
3.2 生成项目静态网页,"_book"目录
gitbook build
3.3 成 PDF 格式的电子书
gitbook pdf ./ ./mybook.pdf
4.安装gitbook插件
https://www.cnblogs.com/mingyue5826/p/10307051.html
gitbook install
Gitbook默认自带有5个插件:
| 插件 | 说明 |
|---|---|
| highlight | 代码高亮 |
| search | 导航栏查询功能(不支持中文) |
| sharing | 右上角分享功能 |
| font-settings | 字体设置(最上方的"A"符号) |
| livereload | 为GitBook实时重新加载 |
5. 生产环境构建
构建出静态html页面
gitbook build
然后项目下会生成_book文件夹,最后我们只需要把这个文件夹部署到自己的服务器上即可。
6. 定制化插件
6.1 新建 book.json
在项目初始化下新建 book.json book.json 即是 gitbook 项目的配置文件
{
"title" : "mygitbook", // 书名
"author" : "lucky__star", //作者
"description" : "lucky__star的笔记", //描述
"language" : "zh-hans", // 语言
"links" : { // 侧导航添加链接
"sidebar" : {
"博客中心" : "https://xqchuang.gitee.io/es6/",这个是本人的第一个个人笔记
}
},
"plugins":[], //这里是插件列表
"pluginsConfig":{}插件具体配置
}
title 设置书本的标题 “title” : “私人笔记”
author 作者的相关信息 “author” : “lijiam”
description 本书的简单描述 “description” : “lijiam的私人笔记”
language Gitbook使用的语言 “language” : “zh-hans”
版本2.6.4中可选的语言如下:
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-tw
links 在左侧导航栏添加链接信息
"links" : {
"sidebar" : {
"Personal Book" : "http://www.gtwteam.com"
}
}
styles 自定义页面样式 默认情况下各generator对应的css文件
styles 自定义页面样式 默认情况下各generator对应的css文件
"styles": {
"website": "styles/website.css",
"ebook": "styles/ebook.css",
"pdf": "styles/pdf.css",
"mobi": "styles/mobi.css",
"epub": "styles/epub.css"
}
例如使h1 h2标签有下划线, 可以在website.css中设置
h1 , h2{
border-bottom: 1px solid #EEEEEE;
}
6.2 官方默认的plugins
highlight:代码高亮 search:导航栏查询功能(不支持中文) sharing:右上角分享功能 font-settings:字体设置(最上方的"A"符号) livereload:为GitBook实时重新加载 这几种官方是默认携带的,如果不想用,可以在插件列表中去掉,
"plugins": ["-highlight"]
6.3 引用第三方插件
这里直接贴上笔者认为比较好用的插件
"plugins": [
"theme-comscore",// 主题
"code@0.1.0", // 代码添加行号&复制按钮
"back-to-top-button@0.1.4", // 返回顶部
"search-pro@2.0.2", // 高级搜索,支持中文
"-search", // 删除只支持英文的搜索
"github@2.0.0", // github地址,会在右上角显示
"pageview-count@1.0.1", //观看人数
"styles-less@1.0.0", // 使用 less 预编译
"multipart@0.3.0", // 分章节展示,会根据 Summary.md的顺序给出序号
"splitter@0.0.8", // 侧导航宽度可调节
"donate@1.0.2", // 打赏,支持微信和支付宝
"custom-favicon@0.0.4", // 修改标题栏图标
"tbfed-pagefooter@0.0.1", // 页底
"auto-scroll-table@0.0.5", // 表格可滚动
"heading-anchors", // 锚点
"cuav-chapters", // 目录折叠
"prism@2.4.0", // 第三方代码高亮插件
"-highlight", // 取消原生代码高亮
"-sharing", //原本的右上角分享关闭
"chapter-fold",//支持多层目录,点击导航栏的标题名就可以实现折叠扩展 npm install gitbook-plugin-chapter-fold
"page-toc-button"// 悬浮目录
],
将需要的插件 添加到 book.json中的 plugins 然后执行 下面的命令
gitbook install ./
- 单个插件下载
# toggle-chapters 插件名称
npm install gitbook-plugin-toggle-chapters
插件列表
- anchor-navigation-ex
- back-to-top-button(返回顶部)
- code(代码添加行号&复制按钮)
- search-pro(高级搜索,支持中文)
- github(在右上角添加github图标)
- splitter(侧边栏宽度可调节)
- tbfed-pagefooter(页面添加页脚,简单的)
- page-copyright(页面页脚版权,复杂的)
- donate(打赏插件)
- sharing-plus(分享当前页面)
- custom-favicon(修改标题栏图标)
- prism(代码高亮)
- todo(复选框)
- pageview-count(阅读量计数)
- auto-scroll-table(表格滚动条)
- image-captions(显示图片名称)
- styles-sass(使用sass替换css)
- styles-less(使用less替换css)
- toggle-chapters(目录折叠)
- multipart(分章节展示)
- 其他:设置导航序号
悬浮目录
{
"plugins" : [
"page-toc-button"
],
"pluginsConfig": {
"page-toc-button": {
"maxTocDepth": 2,
"minTocSize": 2
}
}
}
| 名称 | 默认 | 描述 |
|---|---|---|
| maxTocDepth | 2 | 标题的最大深度(2 = h1 + h2 + h3)。不支持值> 2。 |
| minTocSize | 2 | 显示toc按钮的最小toc条目数。 |
2 TOC(Table of Content)
1) 页面内 - navigator
在标题下方显示目录
2) 侧边 - simple-page-toc
- 在右上方显示一个TOC 按钮,点击后显示目录
- 在右上方显示一个Top 按钮,点击后回到文章顶部
3.4 目前的配置大集合
{
"title": "项目文档记录",
"description": "项目文档记录",
"language": "zh",
"plugins": [
"prism",
"-highlight",
"simple-page-toc",
"navigator"
],
"pluginsConfig": {
"simple-page-toc": {
"maxDepth": 3,
"skipFirstH1": true
}
}
}
pluginConfig 配置插件的属性
上面使用的插件配置如下,没有则说明无需配置
"pluginsConfig": {
"code": {
"copyButtons": true
},
"github": {
"url": "https://github.com/xuqichuang/es6"
},
"prism": {
"css": [
"prismjs/themes/prism-solarizedlight.css"
],
"lang": {
"flow": "typescript"
}
},
"tbfed-pagefooter": {
"copyright":"Copyright © lucky__star 2020",
"modify_label": "本书发布时间:",
"modify_format": "YYYY-MM-DD HH:mm"
},
"favicon": "images/favicon.ico",
"donate": {
"wechat": "http://photonj.photo.store.qq.com/psc?/V13gPhs63CGiSQ/KMnzwBNJT4ZeiPmlYdobb*Qhqb4yWSLU9F37KZ.frb7oO*4iG4Y*ker4Zo5huSOkukeOEd3zrLT1d5nk55xbXw!!/b&bo=gASABIAEgAQRECc!&rf=viewer_311",
"title": "",
"button": "赏",
"wechatText": "微信打赏"
},
"theme-default": {
"showLevel": true
}
}
{
"title": "前端笔记",
"author": "lishihuan",
"description": "前端学习笔记记录",
"language": "zh-hans",
"links": {
"sidebar": {
"博客中心": ""
}
},
"plugins": [
"theme-comscore",
"code@0.1.0",
"back-to-top-button@0.1.4",
"search-pro@2.0.2",
"-search",
"pageview-count@1.0.1",
"styles-less@1.0.0",
"multipart@0.3.0",
"splitter@0.0.8",
"custom-favicon@0.0.4",
"auto-scroll-table@0.0.5",
"heading-anchors",
"cuav-chapters",
"prism@2.4.0",
"-highlight",
"-sharing",
"anchor-navigation-ex"
],
"pluginsConfig": {
"code": {
"copyButtons": true
},
"github": {
"url": ""
},
"prism": {
"css": [
"prismjs/themes/prism-solarizedlight.css"
],
"lang": {
"flow": "typescript"
}
},
"favicon": "images/favicon.ico",
"theme-default": {
"showLevel": true
},
"anchor-navigation-ex": {
"isRewritePageTitle": true,
"isShowTocTitleIcon": true,
"tocLevel1Icon": "fa fa-hand-o-right",
"tocLevel2Icon": "fa fa-hand-o-right",
"tocLevel3Icon": "fa fa-hand-o-right"
}
},
"styles": {
"website": "assets/styles/website.less",
"ebook": "assets/styles/ebook.less",
"pdf": "assets/styles/pdf.less",
"mobi": "assets/styles/mobi.less",
"epub": "assets/styles/epub.less"
}
}
6. 页面列表配置
还记得gitbook init 初始化项目的时候,系统给我们自动生成的SUMMARY.md 文件吗?那个即是我们的列表导航
# Summary
* [简介](README.md)
如果有2级/3级目录的话在后面添加路径,比父级前面多一个tab键
# Summary
* [简介](README.md)
* [类别](list)
* [食物](list/food)
* [水](list/drink)
8. book.json源码
根据自己实际需要修改
{
"title": "G笔记",
"description": "好记性不如G笔记",
"author": "lijiam",
"output.name": "site",
"language": "zh-hans",
"gitbook": "3.2.3",
"root": ".",
"links": {
"sidebar": {
"首页": "http://www.lijiam.com"
}
},
"plugins": [
"code",
"-search",
"search-pro",
"github",
"splitter",
"tbfed-pagefooter",
"donate",
"-sharing",
"sharing-plus",
"prism",
"-highlight",
"styles-less",
"toggle-chapters",
"multipart",
"ancre-navigation"
],
"pluginsConfig": {
"github": {
"url": "https://github.com/lijiam"
},
"code": {
"copyButtons": true
},
"tbfed-pagefooter": {
"copyright": "Copyright © lijiam 2019",
"modify_label": "本书发布时间:",
"modify_format": "YYYY-MM-DD HH:mm:ss"
},
"donate": {
"wechat": "/assets/images/wxpay.png",
"alipay": "/assets/images/alipay.png",
"title": "",
"button": "赏",
"alipayText": "支付宝打赏",
"wechatText": "微信打赏"
},
"sharing": {
"facebook": true,
"twitter": true,
"weibo": true,
"qq": true,
"all": [
"douban",
"google",
"qzone",
"linkedin"
]
},
"prism": {
"css": [
"prismjs/themes/prism-solarizedlight.css"
],
"lang": {
"flow": "typescript"
}
}
},
"styles": {
"website": "assets/styles/website.less",
"ebook": "assets/styles/ebook.less",
"pdf": "assets/styles/pdf.less",
"mobi": "assets/styles/mobi.less",
"epub": "assets/styles/epub.less"
}
}
卸载GitBook(没有安装的跳过此步骤)
找到C:\Users\{User}\.gitbook 找到并删除此文件夹
删除后执行命令
# npm uninstall -g gitbook
# npm uninstall -g gitbook-cli
--- 清除npm缓存
# npm cache clean -f
异常说明
检查并安装gitbook gitbook -V 失败
D:\exlipse\nodejs\node_global\node_modules\gitbook-cli\node_modules\npm\node_modules\graceful-fs\polyfills.js:287 if (cb) cb.apply(this, arguments)
找到 polyfills.js 287行
##注释
//if (cb) cb.apply(this, arguments)
## statFix 注释
//fs.stat = statFix(fs.stat)
//fs.fstat = statFix(fs.fstat)
//fs.lstat = statFix(fs.lstat)
处理 https://blog.csdn.net/Ming_360/article/details/109685876
更新graceful-fs库
# 进入gitbook-cli全局安装目录的node依赖文件夹
## D:\exlipse\nodejs\node_global\node_modules\gitbook-cli\node_modules\npm\node_modules
# 更新graceful-fs库
npm install graceful-fs@latest --save
编译:RangeError: Maximum call stack size exceeded

去掉
{
"plugins": ["-lunr"]
}
增加限定
{
"pluginsConfig": {
"lunr": {
"maxIndexSize": 200000
}
}
}