GitBook使用教程

2023-11-10

各大站长平时除了写博客外,可以使用 gitbook 将一系列的博客专栏整理成电子书出版。这样既方便各大网友阅读,还可以带来新的离线阅读功能。

在以前我们只能靠出版社,或者编写 word 文档,来实现。然而有了 gitbook 之后,一切都变得那么简单了。今天就为大家分享一下,如果在 Windows 系统上安装 gitbook,进行电子书的编写和发布。

1. GitBook Editor

最简单的方式就是使用GitBook编辑器,没有什么难度,后面的教程主要针对命令行的方式

PS:GitBook的book页面默认没有download按钮的

GitBook

需要到设置中打开,打开后再次publish生效

GitBook

同步GitHub

gitbook

更新失败,无法转换成pdf/mobi/epub格式

gitbook

gitbook

Token

git config --global gitbook.user username
git config --global gitbook.token yourtoken

token

2. 安装 nodejs

首先我们需要做的是安装 Nodejs。大家可以到 Nodejs 的官网进行下载。下载完成后,执行双击进行运行安装。安装完成后,打开 cmd 命令行,输入 node -v 查看安装的 nodejs 的相关版本信息。

也可以在安装目录中找到 node.exe 文件,打开输入 node -v 查看安装的 nodejs 的相关版本信息。

3. nodejs 镜像配置

nodejs 安装完成后,我们就可以开始安装 gitbook 了。但是在安装之前,我们还需要配置一下 nodejs 插件安装的下载镜像地址。因为默认的镜像地址是在国外,需要翻墙才可以访问,因此我们需要设置国内的镜像地址。国内的我推荐大家使用阿里巴巴的镜像地址 http://registry.npm.taobao.org 。执行下面的命令,进行配置。

npm config set registry http://registry.npm.taobao.org

除了上面的方法外,我们也可以在用户主目录下编辑 .npmrc 文件,添加一行 registry=http://registry.npm.taobao.org 保存就可以了。用户的主目录一般在 C:\Users\Administrator ,具体随你的操作系统系统盘而定。

4. 全局安装 gitbook

现在我们可以开始安装全局的 gitbook 了。执行 npm install gitbook-cli -g 命令,进行安装。安装的过程中,由于需要下载安装包,因此大家需要等待一定的时间,具体时长取决于你的网速和硬件配置。

安装完成后,我们可以执行 gitbook -v 查看安装的版本信息。

5. gitbook 常用的命令

安装完成了后,我们就可以开始编写内容,进行电子书发布了。具体的操作,大家可以参考《GitBook简明教程》进行学习。我这里给大家推荐3种最常用的命令

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 //输出错误信息

gitbook

C:\Users\AllenIverson\Desktop\gitcourse>gitbook
 Usage: gitbook [options] [command]


 Commands:

   ls                        List versions installed locally
   current                   Display currently activated version
   ls-remote                 List remote versions available for install
   fetch [version]           Download and install a <version>
   alias [folder] [version]  Set an alias named <version> pointing to <folder>
   uninstall [version]       Uninstall a version
   update [tag]              Update to the latest version of GitBook
   help                      List commands for GitBook
   *                         run a command with a specific gitbook version

 Options:

   -h, --help               output usage information
   -v, --gitbook [version]  specify GitBook version to use
   -d, --debug              enable verbose error
   -V, --version            Display running versions of gitbook and gitbook-cli

gitbook serve

C:\Users\AllenIverson\Desktop\gitbook-test>gitbook serve
Live reload server started on port: 35729
Press CTRL+C to quit ...

info: 7 plugins are installed
info: loading plugin "livereload"... OK
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 3 pages
info: found 0 asset files
info: >> generation finished with success in 1.9s !

Starting server ...
Serving book on http://localhost:4000

gitbook ls

C:\Users\AllenIverson\Desktop\gitcourse>gitbook ls
GitBook Versions Installed:

    * 3.2.2

Run "gitbook update" to update to the latest version.

gitbook ls-remote

C:\Users\AllenIverson\Desktop\gitcourse>gitbook ls-remote
Available GitBook Versions:

     4.0.0-alpha.5, 4.0.0-alpha.4, 4.0.0-alpha.3, 4.0.0-alpha.2, 4.0.0-alpha.1, 3.2.2, 3.2.1, 3.2.0, 3.2.0-pre.1, 3.2.0-
pre.0, 3.1.1, 3.1.0, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-pre.15, 3.0.0-pre.14, 3.0.0-pre.13, 3.0.0-pre.12, 3.0.0-pre.11, 3
.0.0-pre.10, 3.0.0-pre.9, 3.0.0-pre.8, 3.0.0-pre.7, 3.0.0-pre.6, 3.0.0-pre.5, 3.0.0-pre.4, 3.0.0-pre.3, 3.0.0-pre.2, 3.0
.0-pre.1, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.2, 2.5.1, 2.5.0, 2.5.0-beta.7, 2.5.0-beta.6, 2.5.0
-beta.5, 2.5.0-beta.4, 2.5.0-beta.3, 2.5.0-beta.2, 2.5.0-beta.1, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.3, 2.3.2, 2.3.1, 2.3.0,
 2.2.0, 2.1.0, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-beta.5, 2.0.0-beta.4, 2.0.0-beta.3, 2.0.0-beta.2, 2.0.0-beta.1,
2.0.0-alpha.9, 2.0.0-alpha.8, 2.0.0-alpha.7, 2.0.0-alpha.6, 2.0.0-alpha.5, 2.0.0-alpha.4, 2.0.0-alpha.3, 2.0.0-alpha.2,
2.0.0-alpha.1

Tags:

     latest : 3.2.2
     pre : 4.0.0-alpha.5

gitbook -V

C:\Users\AllenIverson\Desktop\gitcourse>gitbook -V
CLI version: 2.3.0
GitBook version: 3.2.2

gitbook pdf

gitbook pdf

C:\Users\AllenIverson\Desktop\gitcourse>gitbook pdf
info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 3 pages
info: found 0 asset files

EbookError: Error during ebook generation: 'ebook-convert' is not recognized as an internal or external command,
operable program or batch file.

错误提示:ebook-convert不是内部或外部命令,原因是GitBook在生成PDF的过程中使用到calibre的转换功能,没有安装calibre或安装了calibre没有配置环境变量都会导致转换PDF失败

C:\Users\AllenIverson\Desktop\gitcourse>gitbook pdf
info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 3 pages
info: found 2 asset files
info: >> generation finished with success in 8.6s !
info: >> 1 file(s) generated

安装calibre后,转换成功。PS:安装calibre后需要重新启动命令行窗口

设置PDF输出格式

book.json

{
  "gitbook": "2.x.x",
  "title": "Go语言圣经",
  "description": "<The Go Programming Language>中文版",
  "language": "zh",
  "structure": {
    "readme": "preface.md"
  },
  "pluginsConfig": {
    "fontSettings": {
      "theme": "white",
      "family": "msyh",
      "size": 2
    },
    "plugins": [
      "yahei",
      "katex",
      "-search"
    ]
  },
  "pdf": {
    "pageNumbers": true, 
    "fontFamily": "Arial",
    "fontSize": 12,
    "paperSize": "a4",
    "margin": {
      "right": 62,
      "left": 62,
      "top": 56,
      "bottom": 56
    }
  }
}
Variable Description
pdf.pageNumbers 是否添加页码,默认是true
pdf.fontSize 字体大小,默认是12
pdf.fontFamily 字体,默认字体是Arial)
pdf.paperSize Paper size, options are 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'legal', 'letter' (default is a4)
pdf.margin.top Top margin (default is 56)
pdf.margin.bottom Bottom margin (default is 56)
pdf.margin.right Right margin (default is 62)
pdf.margin.left Left margin (default is 62)

gitbook mobi

C:\Users\AllenIverson\Desktop\gitcourse>gitbook mobi
info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 32 pages
info: found 34 asset files
info: >> generation finished with success in 26.0s !
info: >> 1 file(s) generated

gitbook epub

C:\Users\AllenIverson\Desktop\gitcourse>gitbook epub
info: 7 plugins are installed
info: 6 explicitly listed
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 32 pages
info: found 34 asset files
info: >> generation finished with success in 18.5s !
info: >> 1 file(s) generated

6. calibre

下载地址

calibre

ebook-convert

C:\Users\AllenIverson\Desktop\gitcourse>ebook-convert
用法: ebook-convert.exe input_file output_file [options]

转换不同格式的电子书。

input_file 表示输入文件,output_file 表示输出文件。这两者作为命令行参数必须指定到最前面。

输出的电子书格式可由 output_file 的扩展名得到。同时 output_file 也可以是一种以 .EXT 为扩展名的特殊格式。在这种情况下,输出文件的名称则使用输入文件的名称。注意:文件名不能以连字号作为开头。如果 output_
file 不含扩展名,那么它将被视为一个目录并将会在该目录下生成 HTML 格式的“开放式电子书(OEB)”。这些文件会被视为正常文件而被输出插件所识别。

在指定输入和输出文件后,您可以自定义特定的转换选项。根据输入和输出文件的类型不同可用的转换选项也不同。如需获取针对输入和输出文件的帮助,请在命令行中输入 -h。

对于转换系统的完整文档请查阅
https://manual.calibre-ebook.com/conversion.html

给 ebook-convert.exe 传有空格的参数时,请将参数包括在引号中。例如 "C:\some path with spaces"

选项:
  --version       显示程序版本号并退出

  -h, --help      显示此帮助信息并退出

  --list-recipes  列出内建的订阅清单名。您可以通过如下命令创建基于内建订阅清单的电子书: ebook-convert "Recipe
                  Name.recipe" output.epub

ebook-convert –version

C:\Users\AllenIverson\Desktop\gitcourse>ebook-convert --version
ebook-convert.exe (calibre 2.81.0)
Created by: Kovid Goyal <kovid@kovidgoyal.net>

使用

calibre

calibre

calibre

7. GitBook 编译,生成pdf报错

最近在使用 GitBook 生成静态网页和pdf文件时,百度,谷歌了很久也没有类似的解决方案,最近发现是版本问题,我把我的相关经验分享给大家!

在执行 gitbook build ,gitbook serve,gitbook pdf等命令均保持。报错了错误提示内容如下:

info: 10 plugins are installed
info: 9 explicitly listed
info: loading plugin "baidu"... OK
info: loading plugin "donate"... OK
info: loading plugin "sitemap"... OK
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 24 pages
info: found 2 asset files
warn: "options" property is deprecated, use config.get(key) instead
warn: "options.generator" property is deprecated, use "output.name" instead
error: error while generating page "README.md":

TypeError: this.contentPath is not a function

当然也有些网友的报错内容如下:

warn: "options" property is deprecated, use config.get(key) instead
warn: "page.progress" property is deprecated
warn: "sections" property is deprecated, use page.content instead
TypeError: Path must be a string. Received undefined

这种问题的原因是,gitbook的版本太低。大家执行 gitbook update 命令进行升级,升级到3.2.2版本即可。

也有网友反映,报一下的错:

Error: Couldn't locate plugins "baidu, donate", Run 'gitbook install' to install plugins from registry.

这是提示插件没有安装的错误。大家执行 gitbook install 命令完成安装即可

gitbook install

8.gitbook-convert

把docx、xml、html、odt文档转成GitBook

安装

$ npm install gitbook-convert -g 

常用命令

gitbook-convert

使用

$ gitbook-convert [options] <file> [export-directory]

gitbook-convert

gitbook-convert

9. 常用插件

本节内容转载自:Gitbook 的使用和常用插件

Gitbook 本身功能丰富,但同时可以使用插件来进行个性化定制。Gitbook 插件 里已经有100多个插件,可以在 book.json 文件的 pluginspluginsConfig 字段添加插件及相关配置,添加后别忘了进行安装。

// book.json
{
  "title": "Webpack 中文指南",
  "description": "Webpack 是当下最热门的前端资源模块化管理和打包工具,本书大部分内容翻译自 Webpack 官网。",
  "language": "zh",
  "plugins": [
    "disqus",
    "github",
    "editlink",
    "prism",
    "-highlight",
    "baidu",
    "splitter",
    "sitemap"
  ],
  "pluginsConfig": {
    "disqus": {
      "shortName": "webpack-handbook"
    },
    "github": {
      "url": "https://github.com/zhaoda/webpack-handbook"
    },
    "editlink": {
      "base": "https://github.com/zhaoda/webpack-handbook/blob/master/content",
      "label": "编辑本页"
    },
    "baidu": {
        "token": "a9787f0ab45d5e237bab522431d0a7ec"
    },
    "sitemap": {
        "hostname": "http://zhaoda.net/"
    }
  }
}
# 安装插件
$ gitbook install ./

内容顶部显示 编辑本页 链接。

在每个页面顶部和底部添加广告或任何自定义内容。

splitter

在左侧目录和右侧内容之间添加一个可以拖拽的栏,用来调整两边的宽度。

image-captions

抓取内容中图片的 alttitle 属性,在图片下面显示标题。

github

在右上角显示 github 仓库的图标链接。

anchors

标题带有 github 样式的锚点。

chart

使用 C3.js 图表。

styles-sass

使用 SASS 替换 CSS。

styles-less

使用 LESS 替换 CSS。

ga

添加 Google 统计代码。

disqus

添加 disqus 评论插件。

sitemap

生成站点地图。

latex-codecogs

使用数学方程式。

mermaid

使用流程图。

book-summary-scroll-position-saver

自动保存左侧目录区域导航条的位置。

sharing

默认的分享插件。

fontsettings

默认的字体、字号、颜色设置插件。

默认搜索插件。

自定义页脚,显示版权和最后修订时间。

prism

基于 Prism 的代码高亮。

atoc

插入 TOC 目录。

ace

插入代码高亮编辑器。

highlight

默认的代码高亮插件,通常会使用 prism 来替换。

github-buttons

显示 github 仓库的 star 和 fork 按钮。

sectionx

分离各个段落,并提供一个展开收起的按钮。

mcqx

使用选择题。

include-codeblock

通过引用文件插入代码。

fbqx

使用填空题。

spoiler

隐藏答案,当鼠标划过时才显示。

anchor-navigation

锚点导航。

youtubex

插入 YouTube 视频。

redirect

页面跳转。

expandable-chapters

收起或展开章节目录中的父节点。

baidu

使用百度统计。

duoshuo

使用多说评论。

jsfiddle

插入 JSFiddle 组件。

jsbin

插入 JSBin 组件。

开发插件

最好先查看别人的插件是怎么做的,然后再看官方文档

10. 更多GitBook教程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GitBook使用教程 的相关文章

随机推荐

  • Axure RP9.0 for Mac安装包+安装教程

    Axure 是一款强大的原型设计和开发人员交接软件 经过重新设计和架构 具有新的硬件加速渲染引擎 旨在更快地保存和加载的文件结构以及用于平滑缩放和更快编辑的简化画布 软件 Axure RP 版本 9 0 语言 简体中文 大小 71 98M
  • Oracle 日历表详解(含节假日)

    文章目录 1 概述 2 示例 2 1 判断双休日 2 2 判断节假日 3 扩展 3 1 Python 输出节假日 1 概述 mermaid svg trbLU532c4g4BFr4 font family trebuchet ms verd
  • 学术搜索引擎大全

    学术搜索引擎大全 学术搜索引擎 综合性 Google学术搜索 Scirus学术搜索 BASE搜索 Vascoda搜索 万方数据ilib 百度文档搜索 OJOSE Infomine OA图书馆 开放存取搜索 PDF搜索引擎 SciSeek S
  • unity粒子实现烟雾效果

    粒子实现烟雾效果 运行效果 实现步骤 1 准备一张纹理图 我是随便在网上下了一张烟雾图 没有做任何处理的图片 当然你也可以根据你的需要使用photosh做一些处理 比如雾化 裁剪什么的 unity处理步骤 1 新建工程 2 输入工程名称和路
  • Xilinx COE文件生成

    一 COE文件格式 举个例子 这是一个完整的COE文件 第一行 MEMORY INITIALIZATION RADIX 16 表示的是几进制数据 第二行 MEMORY INITIALIZATION VECTOR 表示你要初始化的内容 然后把
  • 服务器远程管理简介(ILO,BMC,RSA)

    Author Skate time 2016 09 18 转载 http blog csdn net cymm liu article details 8447623 现在说说HP的服务器 好像HP的服务器标配都集成了iLO的 也就是HP自
  • js Buffer常用方法

    构造 alloc构造 10个空间 16进制格式 所以数字16显示为10 var buf1 Buffer alloc 10 16 console log buf1 allocUnsafe构造 分配10个空间 但空间内的数据不一定为空 var
  • 欢迎访问我的个人博客

    双11弄了个服务器 搭建了第一个自己的博客 开心 欢迎来访问 ISHEEPI 之后的博客也会发到自己的网站上了 不远遐路 幸见光临
  • VueComponent介绍&一个重要的内置关系(VueComponent.prototype.__proto__===Vue.prototype)

    一 VueComponent介绍 关于Vuecomponent 1 school组件本质是一个名为VueComponent的构造函数 且不是程序员定义的 是Vue extend生成的 2 我们只需要写
  • python机器学习之决策树案例——泰坦尼克号幸存者的预测

    决策树 Decision Tree 是一种非参数的有监督学习方法 它能够从一系列有特征和标签的数据中总结出决策规则 并用树状图的结构来呈现这些规则 以解决分类和回归问题 决策树算法容易理解 适用各种数据 在解决各种问题时都有良好表现 尤其是
  • 开关电源UVLO的迟滞(Hysteresis)的含义

    关心迟滞的目的在于可以考察在开关电源上电和下电两种情况下的电平门限值 任何只给出UVLO和Hysteresis的值 不给测试条件的都是耍流氓 图1 同相迟滞比较器的电路和传输特性 上图 b 中可以看出 当Ui gt UTH U0 Uz 当U
  • 保研之路——中科大信息学院自动化系预推免

    中科大信息学院自动化系预推免 个人情况 高校复试参与情况 中科大信息学院自动化系直硕 9 18 结语 嗯 抱着不白花这么多路费住宿费的初衷准备写一个保研经验贴 希望学弟学妹少花点钱吧orz 我的战术大概是只要学校给我发了邀请我就去 除了时间
  • pid巡线算法程序_技术分享——从单个到多个颜色传感器巡线原理解析

    巡线竞速是常见的机器人比赛项目 它对速度和精准度要求都比较高 该项目大多要求现场进行结构搭建 并且赛前只提供培训参考地图 比赛使用的地图和巡线任务一般是现场才进行公布 对于参赛选手的能力要求较高 巡线任务的基础要求是车体 符合规格 的正投影
  • 关于通用型人工智能语言模型ChatGPT的感悟

    现在目前全世界只有一家真正有实在意义的通用性人工智能 也就是自然语言处理模型 即米国OpenAI旗下的ChatGPT 目前已经更新至GPT 4模型 这个秘密企划是从2017年开始的 一直到2023年才正式公开 在公开的几天内 被众领域学者科
  • docker入门学习笔记

    docker基础操作入门笔记 镜像操作 容器操作 数据卷操作 挂载 为什么要挂载 如何挂载 其他 docker设置开机自启 时间同步问题 jar包的运行 文章中几乎所有的写容器Id的地方 都可以使用容器名称来写命令 镜像操作 列出镜像列表
  • 安卓app后台运行时activity和dialog的一些区别

    Android app后台运行时 startactivity时可以启动其他activity 但是要弹出一个dialog是不被允许的 所以我的方案是把activity当做dialog来使用 这样就能正常弹出了 方法是给activity一个di
  • 【c++之容器】——list的源码模拟实现

    目录 1 list的概述 2 list的节点 3 list的迭代器 4 list的数据结构 a 插入节点 b 删除节点 1 list的概述 list的底层是 双向链表结构 双向链表中每个元素存储在互不相关的独立节点中 在节点中通过指 针指向
  • Docker学习2-docker存储之卷(Volume)

    参考博客 https www cnblogs com sammyliu p 5932996 html 有状态容器都有数据持久化需求 Docker 采用 AFUS 分层文件系统时 文件系统的改动都是发生在最上面的容器层 在容器的生命周期内 它
  • PRML一书中关于贝叶斯曲线拟合结论的推导细节

    PRML一书中关于贝叶斯曲线拟合结论的推导细节 我们令训练数据集为 X T X T X T 对于一个新的点 x
  • GitBook使用教程

    各大站长平时除了写博客外 可以使用 gitbook 将一系列的博客专栏整理成电子书出版 这样既方便各大网友阅读 还可以带来新的离线阅读功能 在以前我们只能靠出版社 或者编写 word 文档 来实现 然而有了 gitbook 之后 一切都变得