Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GitBook + Typora + Git 编写电子文档

GitBook + Typora + Git 编写电子文档

作者头像
Devops海洋的渔夫
发布于 2019-06-02 05:27:29
发布于 2019-06-02 05:27:29
3.6K01
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:1
代码可运行

前言

近期使用Typora编写文档的时候,写一些篇章比较短的文章还好。但是当篇章过长,标题目录过多的时候,那样就会导致阅读效果很差。

为了提升更加好的体验效果,我下一步就需要考虑使用Gitbook的方式来编写管理文章了。

搭建GitBook 环境

下载安装Typora 和 git 工具

因为是使用 GitBook + Typora + Git 三件套来进行电子书管理,所以你还需要安装 Typora(一个很棒的支持 macOS、WindowsLinux 的 Markdown 编辑工具)和 Git 版本管理工具。戳下面:

安装nodejs

因为 GitBook 是基于 Node.js,所以我们首先需要安装 Node.js(下载地址:https://nodejs.org/en/download/),找到对应平台的版本安装即可。

因为我的系统版本是 win10 64位,那么我就下载这个版本来进行安装。

安装步骤只要下一步安装即可。

使用npm安装gitbook

现在安装 Node.js 都会默认安装 npm(node 包管理工具),所以我们不用单独安装 npm,打开命令行,执行以下命令安装 GitBook:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install -g gitbook-cli

使用Git Bash操作如下图:

好了,准备好了三件套工具之后,就是来看看怎么编写GitBook了。

编写GitBook

创建电子书的文件夹目录

想象一下,现在你准备构建一本书籍,你在硬盘上新建了一个叫 mybook 的文件夹,按照以前的做法,你会新建一个 Word 文档,写上标题,然后开始巴滋巴滋地笔耕。

初始化Gitbook

但是现在有了 GitBook,你首先要做的是在 mybook 文件夹下执行以下命令:

使用gitbook init初始化gitbook,操作如下:

执行完后,你会看到多了两个文件 —— README.md 和 SUMMARY.md,它们的作用如下:

  • README.md —— 书籍的介绍写在这个文件里
  • SUMMARY.md —— 书籍的目录结构在这里配置

使用Typora来编写框架内容

这时候,我们启动恭候多时的 Typora 来编辑这两个文件了:

编辑 SUMMARY.md 文件,内容修改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 目录

* [前言](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)

显示如下:

重新使用gitbook根据目录,初始化篇章

然后我们回到命令行,在 mybook 文件夹中再次执行 gitbook init 命令。GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。

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

启动服务,预览书籍

接着我们执行 gitbook serve 来预览这本书籍,执行命令后会对 Markdown 格式的文档进行转换,默认转换为 html 格式,最后提示 “Serving book on http://localhost:4000”。嗯,打开浏览器看一下吧:

构建书籍

当你写得差不多,你可以执行gitbook build命令构建书籍,默认将生成的静态网站输出到_book目录。实际上,这一步也包含在gitbook serve里面,因为它们是 HTML,所以 GitBook 通过 Node.js 给你提供服务了。

存在问题:3.2.3版本生成的静态html无法正常跳转

查看一下gitbook的版本,如下:

由于gitbook版本过高导致生成的html打开后无法跳转章节

gitbook降低版本到 2.6.7 就可以了

可以使用如下命令

gitbook build --gitbook=2.6.7

但是降级就会遇到错误:

Error loading version latest: Error: Cannot find module 'internal/util/types'

那么对付这个错误,就需要将node版本降级

  • linux & ubuntu 环境
    1. 安装node管理 n
      • sudo npm install -g n
    2. 降低版本,更新npm
      • sudo n 6
    3. 安装npm
      • sudo npm install npm -g
  • window 环境
    • nvm管理node版本
      • nvm install 6.16.0
      • nvm use 6.16.0
    • 因为切换了新的node环境需要重新安装gitbook-cli
      • npm install -g gitbook-cli

降级之后,运行gitbook2.6.7的命令即可。

gitbook build --gitbook=2.6.7

待转换完成后,将npm版本(例如 11.11.1)切回来即可,以免影响其他模块

  • linux & ubuntu
    • sudo n 11.11.1
  • window
    • nvm use 你的最新版

因为我的环境是win10,那么就以win10的环境演示一遍。

在win10下安装nvm

Node版本管理器--nvm,可以运行在多种操作系统上。nvm for windows 是使用go语言编写的软件。 我电脑使用的是Windows操作系统,所以我要记录下在此操作系统上nvm的安装和使用。

nvm最新的下载地址

我选择的是这个安装的版本,比较方便。前面的另一个是绿色版,需要配置。

注意事项: 安装之前的操作请注意: 在安装nvm for windows之前,你需要卸载任何现有版本的node.js。并且需要删除现有的nodejs安装目录(例如:"C:\Program Files\nodejs’)。因为,nvm生成的symlink(符号链接/超链接)不会覆盖现有的(甚至是空的)安装目录。

你还需要删除现有的npm安装位置(例如“C:\Users\weiqinl\AppData\Roaming\npm”),以便正确使用nvm安装位置。

以上操作完成之后,双击执行下载的setup文件。

Next之后,选择同意协议,之后选择nvm的本地安装目录,这里注意,nvm的安装路径名称中最好不要有空格。(注意:如果路径有空格,nvm use nodejs版本的时候就会报错。建议采用 D:\nvm 这样干净的路径。)

安装完毕后,在cmd输入nvm,会有相关的命令提示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ nvm

Running version 1.1.7.

Usage:

  nvm arch                     : Show if node is running in 32 or 64 bit mode.
  nvm install <version> [arch] : The version can be a node.js version or "latest" for the latest stable version.
                                 Optionally specify whether to install the 32 or 64 bit version (defaults to system arch).
                                 Set [arch] to "all" to install 32 AND 64 bit versions.
                                 Add --insecure to the end of this command to bypass SSL validation of the remote download server.
  nvm list [available]         : List the node.js installations. Type "available" at the end to see what can be installed. Aliased as ls.
  nvm on                       : Enable node.js version management.
  nvm off                      : Disable node.js version management.
  nvm proxy [url]              : Set a proxy to use for downloads. Leave [url] blank to see the current proxy.
                                 Set [url] to "none" to remove the proxy.
  nvm node_mirror [url]        : Set the node mirror. Defaults to https://nodejs.org/dist/. Leave [url] blank to use default url.
  nvm npm_mirror [url]         : Set the npm mirror. Defaults to https://github.com/npm/cli/archive/. Leave [url] blank to default url.
  nvm uninstall <version>      : The version must be a specific version.
  nvm use [version] [arch]     : Switch to use the specified version. Optionally specify 32/64bit architecture.
                                 nvm use <arch> will continue using the selected version, but switch to 32/64 bit mode.
  nvm root [path]              : Set the directory where nvm should store different versions of node.js.
                                 If <path> is not set, the current root will be displayed.
  nvm version                  : Displays the current running version of nvm for Windows. Aliased as v.

如果要升级nvm

如果要升级的话,请重新下载最新的安装程序。并直接运行安装程序。它将安全的覆盖需要更新的文件,而无需关心nodejs的安装。 此次安装需要确保和上次使用相同的安装目录。 如果你最初安装到默认位置,则只需一直点击"下一步",直到完成。

使用nvm

nvm for windows是一个命令行工具,在控制台输入nvm,就可以看到它的命令用法。基本命令有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvm arch [32|64] : 显示node是运行在32位还是64位模式。指定3264来覆盖默认体系结构。
nvm install <version> [arch]: 该可以是node.js版本或最新稳定版本latest。(可选[arch])指定安装32位或64位版本(默认为系统arch)。设置[arch]为all以安装3264位版本。在命令后面添加--insecure ,可以绕过远端下载服务器的SSL验证。
nvm list [available]: 列出已经安装的node.js版本。可选的available,显示可下载版本的部分列表。这个命令可以简写为nvm ls [available]。
nvm on: 启用node.js版本管理。
nvm off: 禁用node.js版本管理(不卸载任何东西)
nvm proxy [url]: 设置用于下载的代理。留[url]空白,以查看当前的代理。设置[url]为none删除代理。
nvm node_mirror [url]:设置node镜像,默认为https://nodejs.org/dist/.。我建议设置为淘宝的镜像https://npm.taobao.org/mirrors/node/
nvm npm_mirror [url]:设置npm镜像,默认为https://github.com/npm/npm/archive/。我建议设置为淘宝的镜像https://npm.taobao.org/mirrors/npm/
nvm uninstall <version>: 卸载指定版本的nodejs。
nvm use [version] [arch]: 切换到使用指定的nodejs版本。可以指定32/64[arch]。nvm use <arch>将继续使用所选版本,但根据提供的值切换到32/64位模式的<arch>
nvm root [path]: 设置 nvm 存储node.js不同版本的目录 ,如果未设置,将使用当前目录。
nvm version: 显示当前运行的nvm版本,可以简写为nvm v

使用nvm安装nodejs

首先查看一下当前有哪些可用的版本,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|   11.13.0    |   10.15.3    |   0.12.18    |   0.11.16    |
|   11.12.0    |   10.15.2    |   0.12.17    |   0.11.15    |
|   11.11.0    |   10.15.1    |   0.12.16    |   0.11.14    |
|   11.10.1    |   10.15.0    |   0.12.15    |   0.11.13    |
|   11.10.0    |   10.14.2    |   0.12.14    |   0.11.12    |
|    11.9.0    |   10.14.1    |   0.12.13    |   0.11.11    |
|    11.8.0    |   10.14.0    |   0.12.12    |   0.11.10    |
|    11.7.0    |   10.13.0    |   0.12.11    |    0.11.9    |
|    11.6.0    |    8.15.1    |   0.12.10    |    0.11.8    |
|    11.5.0    |    8.15.0    |    0.12.9    |    0.11.7    |
|    11.4.0    |    8.14.1    |    0.12.8    |    0.11.6    |
|    11.3.0    |    8.14.0    |    0.12.7    |    0.11.5    |
|    11.2.0    |    8.13.0    |    0.12.6    |    0.11.4    |
|    11.1.0    |    8.12.0    |    0.12.5    |    0.11.3    |
|    11.0.0    |    8.11.4    |    0.12.4    |    0.11.2    |
|   10.12.0    |    8.11.3    |    0.12.3    |    0.11.1    |
|   10.11.0    |    8.11.2    |    0.12.2    |    0.11.0    |
|   10.10.0    |    8.11.1    |    0.12.1    |    0.9.12    |
|    10.9.0    |    8.11.0    |    0.12.0    |    0.9.11    |
|    10.8.0    |    8.10.0    |   0.10.48    |    0.9.10    |

This is a partial list. For a complete list, visit https://nodejs.org/download/release

可以从清单中看出,nodejs的版本较多,本次的目的是为了降级提供Gitbook导出的html可以跳转。

那么下面就安装一个较低的版本,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nvm install 6.16.0
nvm use 6.16.0

再重新安装Gitbook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install -g gitbook-cli

再生成Gitbook

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gitbook build --gitbook=2.6.7

打开生成html,侧边栏可以跳转章节了,但是没有了最新版本的search功能,如下:

不过,没关系了,如果要用齐全的功能,最好就是直接使用nodejs搭起服务,这样功能就完整了。

GitBook其他相关命令

当然,build 命令可以指定路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook build [书籍路径] [输出路径]

serve 命令也可以指定端口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook serve --port 2333

你还可以生成 PDF 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook pdf ./ ./mybook.pdf

生成 epub 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook epub ./ ./mybook.epub

生成 mobi 格式的电子书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gitbook mobi ./ ./mybook.mobi

如果生成不了,你可能还需要安装一些工具,比如 ebook-convert。或者在 Typora 中安装 Pandoc 进行导出。

除此之外,别忘了还可以用 Git 做版本管理呀!在 mybook 目录下执行 git init 初始化仓库,执行 git remote add 添加远程仓库(你得先在远端建好)。接着就可以愉快地 commit,push,pull … 啦!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一个码农都不会玩转gitbook,太out了
这些都会抑制你高速的成长。不要放过任何一个成为牛人的机会,赶紧安装,快速体验,打造自己的知识体系
小码匠
2022/06/16
6460
gitbook如何_github入门与实践
本文从 “是什么”、“为什么”、“怎么办”、“好不好” 四个维度来介绍 GitBook,带你从黑暗之中走出来,get 这种美妙的写作方式。
全栈程序员站长
2022/11/09
8870
gitbook如何_github入门与实践
CentOS7下部署GitBook
GitBook是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书
yuanfan2012
2020/03/26
3.2K0
CentOS7下部署GitBook
使用Gitbook制作发布个人的电子书籍
Gitbook可以人每个人制作发布个人的电子书籍,并能最大程度上利用“群智”提高阅读品质和享受创作过程。
星哥玩云
2022/05/30
1.9K0
使用Gitbook制作发布个人的电子书籍
GitBook安装使用笔记(一)安装部署
GitBook 是一个使用 Git 和 Markdown 来构建书籍的工具。它可以把你的书本生成为许多格式:PDF,ePub,mobi,或者成为一个网站。
公爵
2022/09/28
6.9K0
GitBook安装使用笔记(一)安装部署
GitBook入手
事情的起由是最近两天心血来潮想写一本自己的书,经过多番调查最后选定了gitbook这个工具。为了安装好gitbook这个工具踩了不少坑,所以写下这篇博客,希望可以帮助到大家。
K同学啊
2019/01/22
6040
gitbook踩坑&学习笔记
前段时间突然想起来肝了个项目,具体就是给sr2wiki升级,具体的可以去http://book.sr2wiki.top 了解(水。总之就是接触到了gitbook。
SimpleAstronaut
2022/08/09
5710
gitbook踩坑&学习笔记
【git】基于gitbook的文档版本管理
安装gitbook-cli脚手架:npm install -g gitbook-cli
DevFrank
2024/07/24
1830
【git】基于gitbook的文档版本管理
小技巧:用 GitBook 组织 Markdown 文档
喜欢用 Markdown 写文档,那怎么把一个个 Markdown 文档组成在一起呢?
GoCoding
2021/05/06
5230
小技巧:用 GitBook 组织 Markdown 文档
学习gitbook发布自己的电子书
GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程。
tonglei0429
2019/07/22
1.1K0
GitBook新手入门
GitBook是使用Git管理书籍项目,使用Markdown撰写书籍,并使用GitHub和GitBook网站进行托管的一个实用工具。下面简单说一下新手如何使用该强大的工具。
卡尔曼和玻尔兹曼谁曼
2019/01/22
1.2K0
Gitbook 安装及使用
安装 nodejs依赖,所有假设你已经安装好了node及npm(推荐cnpm) cnpm http://npm.taobao.org/ # npm install -g gitbook-cli 安装 ➜ ~ cnpm install -g gitbook-cli /usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook-cli/bin/gitbook.js /usr/local/lib └── gitbook-cli@2.3.0 # 查看
lpe234
2020/07/27
8000
[Skill]GitBook搭建
从https://nodejs.org/en/下载并安装Nodejs,安装完后可通过终端命令node -v检验是否安装成功。
TOMOCAT
2021/12/16
2.2K0
[Skill]GitBook搭建
软件推荐(typora) -- 结合markdown、gitbook文档生产力输出
今天是软件专场的倒数第92场,跟大家分享的是基于Markdown语言优雅的文档写作工具--Typora。下面我们把舞台交给Typora,大家掌声欢迎。
江涛学编程
2020/06/19
2.1K0
软件推荐(typora) -- 结合markdown、gitbook文档生产力输出
gitbook安装教程
GitBook 是一款现代化的文档平台,这个工具链 (GitBook) 是一个使用 Git 和 Markdown 来构建书籍的工具。它可以将你的书输出很多格式:PDF,ePub,mobi,或者输出为静态网页。
川川菜鸟
2021/10/22
2K0
Gitbook 搭建与使用
运行 gitbook -V 查看版本信息,安装 gitbook 出现下面的错误,是因为 node 版本太高了,安装低版本的 node
陳斯托洛夫斯記
2022/10/27
1.6K0
Gitbook 搭建与使用
Centos7 搭设GitBook环境
在Centos7下搭建GitBook环境,主要需要安装几个组件:nodejs、gitbook、git 其中nodejs可以使用nvm进行版本切换管理。
Devops海洋的渔夫
2019/05/30
1.1K0
Mac搭建gitbook教程(实战记录)
执行完后,如果文件夹里没有这两个文件,会自动生成: README.md(书籍的介绍在这个文件里) SUMMARY.md(书籍的目录结构在这里配置)
AI拉呱
2022/05/06
1.1K0
GitBook使用教程
这个安装很简单,只需要下载,然后一路 next 即可。下载链接:https://nodejs.org/en/
AI悦创
2021/10/11
1.3K0
使用GitBook写电子书
工作以来一直有写博客的习惯,除了在各大站长写博客外,还可以使用 gitbook 将博客整理成电子书出版,如果受到好评还可以将图书弄成电子版出版。 经过近半年的整理,我的新书《React Native移
xiangzhihong
2018/01/26
1.8K0
相关推荐
一个码农都不会玩转gitbook,太out了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验