Gitbook mac安装以及推送到GitHub
安装Gitbook的主要流程如下:
安装node.js>安装Gitbook>安装Gitbook编辑器
1.安装node.js
安装node.js,在node.js官网下载,直接安装。
下载地址:https://nodejs.org/en/。
注:node.js有两个版本,一个是大多数人使用的,也就是稳定版;另一个是最新版,拥有最新的特性。在这里,我们下载稳定版即可。
安装成功之后输入node -v
,显示node.js版本代表安装成功。
% node -v
v14.15.0
2.安装Gitbook
在Mac环境下,需要用到sudo
这个指令安装。
% sudo npm install gitbook-cli -g
Password:
/usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook-cli/bin/gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 27.578s
在终端输入gitbook -V
之后即可查看当前Gitbook版本,代表安装成功。需要注意的是“V”一定要大写。然而,坑来了,上面安装并没有成功,开始报错:
% gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
gyp: No Xcode or CLT version detected!
/usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
at FSReqCallback.oncomplete (fs.js:184:5)
经过百度,找到解决方案:
打开polyfills.js文件,找到这个函数
function statFix (orig) {
if (!orig) return orig
// Older versions of Node erroneously returned signed integers for
// uid + gid.
return function (target, cb) {
return orig.call(fs, target, function (er, stats) {
if (!stats) return cb.apply(this, arguments)
if (stats.uid < 0) stats.uid += 0x100000000
if (stats.gid < 0) stats.gid += 0x100000000
if (cb) cb.apply(this, arguments)
})
}
}
然后注释调用了这个函数的行
//fs.stat = statFix(fs.stat)
//fs.fstat = statFix(fs.fstat)
//fs.lstat = statFix(fs.lstat)
注释完在终端再次输入gitbook -V
,会正常安装,但是没问题了
% gitbook -V
CLI version: 2.3.2
GitBook version: 3.2.3
3.Gitbook使用
1.创建 mygitbook 文件夹,作为第一本书,并切换到这个文件夹下面
% mkdir mygitbook && cd mygitbook
2.初始化 gitbook 工作目录,创建必要的文件
% gitbook init
#README.md - 项目的介绍都写在这个文件里。
#SUMMARY.md - GitBook 的目录结构在这里配置。
3.编辑目录结构SUMMARY.md,参考:
# Summary
* [简介](README.md)
* [序](Introduction.md)
* [译后感](translator.md)
* [原作者前言](author.md)
* [生成器 Generators](Generators/README.md)
* [可迭代对象(Iterable)](Generators/Iterable.md)
* [迭代器(Iterator)](Generators/Iterator.md)
* [装饰器](decorators/README.md)
* [一切皆对象](decorators/everything_is_object.md)
* [你的第一个装饰器](decorators/your_first_decorator.md)
* [使用场景](decorators/use_cases.md)
* [授权](decorators/auth.md)
* [日志](decorators/logging.md)
4.目录建好以后在根目录下执行命令,只支持2级目录:
% gitbook init
编写 gitbook 内容,重新编译gitbook build
5.在根目录执行命令,启动服务:
% gitbook serve
6.访问,用浏览器打开 http://localhost:4000/ 或 http://127.0.0.1:4000/ 查看显示书籍的效果。结束预览 ctrl+c
注:gitbook init
这里有个坑,就是运行完没有SUMMARY.md,而且报错
% gitbook init
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise
经过一番查找,找到解决方案,就是切换nodejs版本,换成低一点的版本就可以了,还完再运行一次gitbook init
。
#换之前
% node -v
v14.15.0
#切换版本
% sudo npm install -g n
% sudo n 12.16.3
% node -v
v12.16.3
% gitbook init
warn: no summary file in this book
info: create SUMMARY.md
info: initialization is finished
下面安装Gitbook桌面编辑器,下载地址:https://www.gitbook.com/editor/
终端环境下的Gitbook只是为了生成HTML文档与PDF文档而使用的。
安装了Gitbook桌面端之后,就可以在客户端中新建一本书籍。然后用终端生成HTML。
然而,注册不了,可能网不行吧,网上有人说要fan强,我就没用了,乖乖用本地编辑器。
4.安装插件
首先在calibre官网下载插件,下载链接:https://calibre-ebook.com/download。下载适合自己系统的版本。
将安装的calibre放在应用程序中,再执行:
% sudo ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin
生成电子书:
% gitbook mobi ./ ./MyFirstBook.mobi
或者
% gitbook pdf ./ ./MyFirstBook.pdf
注:我下载了calibre后打不开,不知道是不是电脑的问题,所以只能转成pdf了。
5.推送到github
试了网上很多方法,有点麻烦,很多命令行操作,总结一下桌面版操作吧。
注册github账号 ->下载桌面版Github desktop ->Add Existing… ->再添加gitbook文件夹 ->再发布