gitbook 使用笔记

lishihuan大约 8 分钟

gitbook 使用笔记

https://www.bilibili.com/video/av249116916?p=2&spm_id_from=pageDriveropen in new window

https://songlu-cube.gitee.io/courseware-gitbook-demo/open in new window

https://blog.csdn.net/fghsfeyhdf/article/details/88403548open in new window

https://www.jianshu.com/p/7b6ece9fbdf2open in new window

https://www.w3cschool.cn/gitbook/gitbook-2wxh3evx.htmlopen in new window

Gitbook+码云创建自己的文档: https://kevinlu98.cn/archives/71.htmlopen in new window

http://www.chengweiyang.cn/gitbook/introduction/README.htmlopen in new window

https://blog.csdn.net/axi295309066/article/details/61420694/open in new window

https://www.mapull.com/gitbook/comscore/open in new window

https://blog.csdn.net/stu059074244/article/details/77767835open in new window

官方地址open in new window

https://www.cnblogs.com/jiangming-blogs/p/14643147.htmlopen in new window

http://gitbook.zhangjikai.com/plugins.htmopen in new window

https://blog.csdn.net/weixin_38171180/article/details/89059127open in new window

https://www.cnblogs.com/imayanlong/p/10334458.htmlopen in new window

https://blog.csdn.net/fghsfeyhdf/article/details/88403548open in new window

打包:https://github.com/zhaoda/webpack-handbook/tree/master/contentopen in new window

https://blog.csdn.net/lu_embedded/article/details/81100704open in new window

https://www.liqingbo.cn/docs/gitbook/content/related.htmlopen in new window

https://segmentfault.com/a/1190000019806829open in new window

https://zhuanlan.zhihu.com/p/51255194open in new window

https://gitee.com/mapull/gitbook-guide#https://www.mapull.com/gitbook/faq/open in new window

https://blog.csdn.net/woflyoycm/article/details/110137422open in new window

插件:http://gitbook.zhangjikai.com/plugins.htmlopen in new window

https://www.jianshu.com/p/427b8bb066e6open in new window

主题用 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

image-20221217205622924
image-20221217205622924

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.mdSUMMARY.md

文件说明
README.mdopen in new window书的介绍文字,如前言、简介,在章节中也可做为章节的简介。
SUMMARY.mdopen in new window定制书籍的章节结构和顺序。

README.mdSUMMARY.mdGitBook 制作电子书的必要文件

结构目录

# 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/121114797open in new window

​ 自定义样式

本地视频:https://www.mapull.com/gitbook/comscore/custom/plugin/other/video.htmlopen in new window

编辑 SUMMARY.mdopen in new window 文件,内容修改为:

# 目录

* [前言](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.mdopen in new window 文件中描述的目录和文件,如果没有则会将其创建。

Typora 是所见即所得(实时渲染)的 Markdown 编辑器,这时候它是这样的:

image-20210901235146592
image-20210901235146592

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.htmlopen in new window

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
           }
    }
}
名称默认描述
maxTocDepth2标题的最大深度(2 = h1 + h2 + h3)。不支持值> 2。
minTocSize2显示toc按钮的最小toc条目数。

2 TOC(Table of Content)

1) 页面内 - navigatoropen in new window

在标题下方显示目录

2) 侧边 - simple-page-tocopen in new window
  • 在右上方显示一个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.mdopen in new window 文件吗?那个即是我们的列表导航

# 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/109685876open in new window

更新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

13423234-2583cb1697f29d6c.png
13423234-2583cb1697f29d6c.png

去掉

{
    "plugins": ["-lunr"]
}

增加限定

{
    "pluginsConfig": {
        "lunr": {
            "maxIndexSize": 200000
        }
    }
}