GitBook

简介

GitBook 是一个基于 Node.js 的命令行工具,可使用 GitHub / Git、Markdown、AsciiDoc来制作精美的电子书。GitBook 可以将文档作为静态网站或电子书(PDF,ePub或Mobi格式)输出。

GitBook.com 是使用 GitBook 格式创建和托管图书的在线平台,它提供托管,协作功能和易于使用的编辑器。

本文示例运行的系统为CentOS Linux release 7.4.1708,nodejs版本为v8.11.3。

安装nodejs

访问nodejs官网,下载nodejs,下载后的文件名为node-v8.11.3-linux-x64.tar.xz。

1.执行 tar -Jxvf node-v8.11.3-linux-x64.tar.xz,将nodejs解压到当前目录。

2.需要创建软链接,执行 ln -s /usr/local/mine/node-v8.11.3-linux-x64/bin/node /usr/local/bin/node、ln -s /usr/local/mine/node-v8.11.3-linux-x64/bin/npm /usr/local/bin/npm。

安装GitBook

1.执行 npm install gitbook-cli -g安装GitBook命令行工具,自动选择版本,同时也会安装GitBook。

2.安装完成后,可以在nodejs目录里的bin目录下看到gitbook软连接文件,执行 ln -s /usr/local/mine/node-v8.11.3-linux-x64/bin/gitbook /usr/local/bin/gitbook,让该命令全局可用。

npm命令的-g选项是指全局安装,将模块安装到全局目录中,全局目录可以用npm config get prefix 命令获取以及用npm config set prefix ""命令设置,不加-g则是将模块下载到当前命令行所在目录。

npm update gitbook-cli -g是更新命令,npm uninstall gitbook-cli -g是卸载命令。

GitBook命令

gitbook -h显示GitBook 帮助信息,gitbook help显示GitBook可用命令。

GitBook可以在本地安装多个版本并在执行命令的时候指定某个版本,如果指定的版本还没安装就会自动下载安装,下载后的GitBook会被放到~/.gitbook目录下。相关操作有:

gitbook ls:列出本地已安装的gitbook版本

gitbook current:列出当前活动的gitbook版本

gitbook ls-remote:列出远程可以下载安装的gitbook版本

gitbook fetch [version]:下载安装某个gitbook版本

gitbook uninstall [version]:卸载某个gitbook版本

gitbook update:更新到最新的gitbook版本

如 gitbook -v 4.0.0-alpha.6 current会显示GitBook version is 4.0.0-alpha.6,而gitbook -V会显示gitbook和gitbook cli的运行版本。

初始化GitBook

1.执行 mkdir gitbook-demo && cd gitbook-demo 创建一个gitbook-demo目录并进入到该目录。

2.执行gitbook init 初始化GitBook,会在当前目录下生成 README.md 和 SUMMARY.md文件。SUMMARY.md是GitBook的目录文件。README.md是电子书介绍文件,必须存在。

也可以先手动创建SUMMARY.md,再执行gitbook init,如果SUMMARY.md中配置的文件夹和文件不存在,就会自动创建文件夹和文件,已经存在的文件夹和文件不会被覆盖。一般情况下是先在gitbook-demo目录下执行gitbook init,然后将要制作文档的md文件放到gitbook-demo里,接着再修改SUMMARY.md。

gitbook init的更多用法参考gitbook help。

生成静态网站

在gitbook-demo目录下执行 gitbook build,会在gitbook-demo目录下生成一个 _book 目录,里面的内容为静态网站的文件,可以将 _book 目录下的文件拷贝到nginx、httpd等web服务器内,也可以使用gitbook serve命令启动一个web服务,默认端口是4000。

gitbook build和gitbook serve的更多用法参考gitbook help。

GitBook目录结构

基本结构如下:

├── book.json

├── README.md

├── SUMMARY.md

├── chapter-1/

| ├── README.md

| └── something.md

└── chapter-2/

├── README.md

└── something.md

book.json:全局配置数据 (可选)

README.md:介绍电子书(必须)

SUMMARY.md:目录 (可选)

GLOSSARY.md:词汇、术语列表(可选)

SUMMARY.md格式

基本格式为:* 描述。文件路径是相对于SUMMARY.md所在的目录的。

支持多级目录,每级目录多缩进4个空格。例如:

* 介绍

* 概述

* 接口

* 注意事项

GLOSSARY.md格式

基本格式是一组h2标题加上描述,在其他页面用到这些词汇时会突出显示,鼠标放上去就会显示术语描述。术语暂不支持中文。

例如:

## test

测试定义

book.json格式

GitBook 允许使用灵活的配置自定义电子书,这些选项在 book.json 文件中指定,格式为json。

root:包含除了 book.json外的所有电子书文件的根目录。

structure:指定readme, summary, glossary和 languages的文件名,参考 Structure paragraph。

title:电子书名,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。

description:书籍的描述,默认值是从 README 中提取出来的。在 GitBook.com 上,这个字段是预填的。

author:作者名。在GitBook.com上,这个字段是预填的。

isbn:国际标准书号 ISBN。

language:本书的语言类型 ,默认值是 en。

direction:文本阅读顺序,可以是 rtl (从右向左)或 ltr (从左向右),默认值依赖于 language 的值。

gitbook:应该使用的GitBook版本。使用 SemVer 规范,并接受类似于 “> = 3.0.0” 的条件。

Structure paragraph

除了 root 属性之外,还可以指定readme, summary, glossary和 languages 的文件名,而不是使用默认名称,如README.md。这些文件必须在项目的根目录下,不接受的路径。

structure.readme:readme 文件名(默认值是 README.md )

structure.summary:summary 文件名 (默认值是 SUMMARY.md)

structure.glossary:glossary 文件名(默认值是 GLOSSARY.md)

structure.languages:languages 文件名 (默认值是 LANGS.md)

GitBook的使用方法

—恢复内容开始—

由于近期工作中使用gitbook编写讲义,现把出现的问题总结下:

1 . gitbook的安装

Gitbook与word等办公软件类似,能够编写文档,Gitbook中编写文档时使用的Markdown格式,可以提交到gitHub上进行版本管理,我使用的组合是gitbook+Typora+git完成整个内容的编写工作。

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

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

npm install -g gitbook-cli

安装后,就会有一个gitbook命令,就可以使用这个命令来创建书籍。

书籍内容的编辑使用的是Typora,在网上找到安装包后,安装即可使用。

git是版本管理工具,大家应该都很熟悉,就像托管代码一样,托管我们的书籍即可。

2 . 书籍的创建

在你要创建书籍的文件夹下打开终端窗口,比方说是firstbook,执行下述命令:

gitbook init  

执行完以上代码后,会在文件夹中产生两个文件:readme.md和summary.md

img

readme文件中是书籍的介绍内容,这个根据您的需求编写。

summary中是书籍的目录结构,现在我们就是用Typora编辑这个文件,其中的内容为:

[复制代码](javascript:void(0)😉

* [Introduction](README.md)

* [1. 季节](季节/ReadMe.md)
  * [1.1 春](季节/section0.md)
  * [1.2 夏](季节/section1.md)

* [2. 城市](城市/ReadMe.md)
  * [1.1 北京](城市/section0.md)
  * [1.2 上海](城市/section0.md)

[复制代码](javascript:void(0)😉

然后,我们执行gitbook init来中心初始化这本书籍,这是我们看下结果:

img

文件夹中就生成了各个章节对应的文件,我们就可以在这些文件中写入相应的内容。

书籍写完之后使用

gitbook serve

生成html的文件即可,

也可使用:

gitbook build

来生成书籍。

3 生成书籍后遇到的问题:

1 ,点击目录,无法到达对应的位置:

找到gitbook目录下的thema.js文件:

img

找到其中的if(m)for(n.handler&&并将其中的m修改为false即可。

img

\2. 目录无法折叠,无法改变其宽度,code无法复制等

在 summary.md目录中添加一个book.json,然后在其中添加以下内容:

{``  ``"title"``: ``"opencv"``,``  ``"output.name"``: ``"site"``,``  ``"language"``: ``"zh-hans"``,``  ``"gitbook"``: ``"3.2.3"``,``  ``"root"``: ``"."``,``  ``"plugins"``: [``    ``"code"``,``    ``"splitter"``,``    ``"chapter-fold"``  ``],``  ``"pluginsConfig"``: {``    ``"code"``: {``      ``"copyButtons"``: ``true``    ``}``  ``}``}

并运行gitbook install 即可。

gitbook常用插件

https://www.jianshu.com/p/09bf890ec8f6

https://www.jianshu.com/p/e56da307177f

https://www.jianshu.com/p/427b8bb066e6

2.2.2. expandable-chapters-small 可扩展导航章节
支持多层目录,比Toggle Chapters好用
点击箭头才能实现收放目录。不如【2.2.1. chapter-fold 左侧目录折叠】好用
插件地址
GitHub地址
在book.json中添加以下内容。然后执行gitbook install,或者使用NPM安装npm install gitbook-plugin-expandable-chapters-small,也可以从源码GitHub地址中下载,放到node_modules文件夹里(GitHub地址在进入插件地址右侧的GitHub链接)

链接:https://www.jianshu.com/p/427b8bb066e6

gitbook问题解决

目录链接无法点击,替换theme.js文件即可

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E4%BD%BF%E7%94%A8gitbook%20init%20%E6%97%B6%E6%8A%A5%E9%94%99%20Installing%20GitBook%203.2.3%20D%3A%5CDevInstalls%5CNodeJs%5Cnode_global%5Cnode_modules%5Cgitbook-cli%5Cnode_modules%5Cnpm%5Cnode_modules%5Cgraceful-fs%5Cpolyfills.js%3A287%20%20%20%20%20%20%20if%20(cb)%20cb.apply(this%2C%20arguments)&fenlei=256&oq=%25E4%25BD%25BF%25E7%2594%25A8gitbook%2520init%2520%25E6%2597%25B6%25E6%258A%25A5%25E9%2594%2599%2520Installing%2520GitBook%2520%2526lt%253B.2.%2526lt%253B%2520D%253A%255CDevInstalls%255CNodeJs%255Cnode_&rsv_pq=e45d122f0002461d&rsv_t=8d8dDKNikplVOgDijpgjKNWOHPFcvCX5uKjmBCrWRhcj3ZSHReun%2F42vEIQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=1470&rsv_n=2&prefixsug=%25E4%25BD%25BF%25E7%2594%25A8gitbook%2520init%2520%25E6%2597%25B6%25E6%258A%25A5%25E9%2594%2599%2520Installing%2520GitBook%2520%2526lt%253B.2.%2526lt%253B%2520D%253A%255CDevInstalls%255CNodeJs%255Cnode_global%255Cnode_modules%255Cgitbook-cli%255Cnode_modules%255Cnpm%255Cnode_modules%255Cgraceful-fs%255Cpolyfills.js%253A287%2520%2520%2520%2520%2520%2520%2520if%2520(cb)%2520cb.apply(this%252C%2520arguments)&rsp=5&rsv_sug4=1470

https://blog.csdn.net/Ming_360/article/details/109685876

http://www.blogdaren.com/post-2567.html

https://www.cnblogs.com/melodyjerry/p/13977865.html

https://blog.csdn.net/qq_30033537/article/details/113738575

https://www.baidu.com/s?wd=%E6%9B%B4%E6%96%B0graceful-fs%E5%BA%93%E6%97%B6%E6%8A%A5%E9%94%99%20npm%20notice%20created%20a%20lockfile%20as%20package-lock.json.&pn=10&oq=%E6%9B%B4%E6%96%B0graceful-fs%E5%BA%93%E6%97%B6%E6%8A%A5%E9%94%99%20npm%20notice%20created%20a%20lockfile%20as%20package-lock.json.&ie=utf-8&fenlei=256&rsv_idx=1&rsv_pq=b7bc5a0a0001409c&rsv_t=811c4NW5MMlLhfUBXVelnxpLzmZX%2FVbblfo%2Brt15txMYwyufelladFiv4%2BA

http://www.bubuko.com/infodetail-3694533.html

https://blog.csdn.net/zheng18237111686/article/details/113882157

https://blog.csdn.net/zheng18237111686/article/details/113878602

node_global

node_cache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值