Gitbook mac安装以及推送到GitHub

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文件夹 ->再发布

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页