使用GitBook遇到的那些事
gitbook相信大家(程序猿和程序媛)大家都应该听说过或者使用过。本人属于一只刚入行不久的程序猿(一直在学习,努力成长)。网络上关于gitbook的内容都很多,我从中也学习到了很多,接下来我将自己使用过程中遇到的问题记录一下(给自己做个笔记)。
关于GitBook热更新问题找到了另外一种解决方式:可以使用3.0.x版本。通过下面指令,制定低版本。
gitbook build --gitbook=3.0.0
如果本地不存在,则下载3.0.0版本,然后选择3.0.0版本进行构建书籍即可,以下内容可以选择不看了。
一、使用环境
概览:
Wndows10 + github + MarkDown工具
详细描述(工具自理,不在保修范围😂):
在Windows10上安装node(版本自选,本人用的是node-v12.18.3-x64)
安装好node后再命令窗口安装gitbook:npm install -g gitbook-cli
MarkDown工具:有很多,我用的是Typora
版本控制工具git:我使用的是官方的GitHub Desktop
二、使用过程中遇到的问题(主业用不到node,所以期间干了不少蠢事)
1 常用命令
初始化:gitbook init 启动gitbook服务:gitbook serve 查看地址:http://localhost:4000 serve 命令也可以指定端口:gitbook serve --port 2333 构建书籍:gitbook build [书籍路径] [输出路径] 示例:gitbook build ./ ./output 可以生成 PDF 格式的电子书:gitbook pdf ./ ./mybook.pdf 生成 epub 格式的电子书:gitbook epub ./ ./mybook.epub 生成 mobi 格式的电子书:gitbook mobi ./ ./mybook.mobi 如果生成不了,你可能还需要安装一些工具,比如 ebook-convert。或者在 Typora 中安装 Pandoc 进行导出。
2 遇到的问题
(1)build后得到的静态文件查看时不能进行跳转
原因:
theme.js问题,gitbook作者已提供了解决方法,由于gitbook未再更新(最近一次更新在2018年)所以这个问题未能真正的解决。
解决方式:
build输出目录下gitbook文件夹,是该文件夹下theme.js的问题。如我的输出目录是output,所以问题在:\output\gitbook\theme.js。
我们需要在theme.js中查找:if(m)for,将其中的m换为false。没错,就只这一个m搞得鬼,而且我们需要build一次,修改一次。
有没有一劳永逸的方法?
在用户目录下找到:
C:\Users\用户名\.gitbook\versions\3.2.3\node_modules\gitbook-plugin-theme-default\_assets\website
在这个目录下的theme.js中查找:if(m)for,将其中的m换为false。(亲测可用)
(2)gitbook自带插件问题
原因:gitbook-plugin-livereload 是gitbook自带的一个插件,当我们gitbook serve后,加入修改了书籍中的某些内容,保存后我们刷新网页内容应该自动更新内容的,但是现在这个插件不仅没更新,反而会杀掉服务,换句话就是:对不起,你的Ctrl + s 杀掉了gitbook serve。之后就要要重新执行命令了。
解决方式:通过搜索,并没有发现解决方法,不是我不告诉你们,而是从网上没找到(┬_┬)
三、柳暗花明又一村(上述“遇到的问题”中的内容可以不用看了)
是的,上述遇到的问题中的内容可以不用看了。上述问题中的内容就是一个问题的记录(记笔记)。那上述的两个问题有没有好的解决方式呢?
我也是这么问自己。然后,经历了发现问题,思考问题,解决问题的漫长过程。解决第一个问题花了3分钟,是的3分钟。然后去愉快的玩耍了(码字)。然后花了一段时间(不好统计),一边码字一边思考解决自动更新的问题,然后码字,改bug,经过了,1个多小时时间,终于把它搞定了。之后,码字,写Bug,终于程序也被我写崩溃了,(此处重复上句话N次)。在写本文过程中,至少没再次崩溃。不说了上连接:
github:https://github.com/2Or3InTheMorning/GitBook_Auxiliary_tools
四、关于辅助工具要说的
GitBook辅助工具 v0.5.1
功能概述:
1.一键完成初始化、构建、启动网络服务
2.构建Book时自动修复标签页无法跳转
3.通过技术手段弥补实时修改服务停止的bug(未修复)
(可通过config.ini自行启用初始化、构建、启动Web)
4。如使用Web服务,程序运行后将会使用电脑自带浏览器打开网页。
本程序为本人自己使用GitBook的辅助工具,所有权归本人所有。
不喜勿喷!!!
后续更新可关注个人Github:
https://github.com/2Or3InTheMorning
因代码较乱,暂不上传代码,后期整理后上传。
2020年8月
注意:使用过程中build和serve会复制程序和配置文件(请不要删除配置文件内的配置项,可以修改,具体请看文件内的注释)
收集网友的问题和解决方式
(1)由于加载插件出现的问题(网友遇到的,我没有遇到,因为未验证)
gitbook serve命令执行反复报以下报错 Error: Couldn't locate plugins "toggle-chapters, splitter, anchor-navigation-ex, prism, copy-code-button, alerts, theme-comscore", Run 'gitbook install' to install plugins from registry. Error: ENOENT: no such file or directory, stat 'D:\workspace\core-solution-docs\_book\gitbook\gitbook-plugin-fontsettings\fontsettings.js' Error: ENOENT: no such file or directory, stat 'D:\workspace\core-solution-docs\_book\gitbook\gitbook-plugin-livereload\plugin.js' Error: ENOENT: no such file or directory, stat 'D:\workspace\core-solution-docs\_book\gitbook\gitbook-plugin-alerts\plugin.js' Error: ENOENT: no such file or directory, stat 'D:\workspace\core-solution-docs\_book\gitbook\gitbook-plugin-livereload\plugin.js' Error: ENOENT: no such file or directory, stat 'D:\workspace\core-solution-docs\_book\gitbook\gitbook-plugin-search\lunr.min.js' 解决方案: 修改用户目录的.gitbook\versions\3.2.3\lib\output\website\copyPluginAssets.js文件,把112行的confirm改为false。