gitbook是一个很不错的编写上传共享电子书的开源工具,可以部署在unix和windows系统上,应公司为新人编写指导手册的需求,我花了点时间搭建了环境。


系统版本:

# lsb_release -a

LSB Version:    core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch

Distributor ID: SUSE LINUX

Description:    SUSE Linux Enterprise Server 11 (x86_64)

Release:        11

Codename:       n/a


1、安装配置nodejs

我选择免编译的方式,解压就可以直接用。

下载链接:

https://nodejs.org/en/download/


选择系统对应的软件版本Linux Binaries (x86/x64) 64-bit


# tar -xf node-v6.9.5-linux-x64.tar.xz -C /usr/local


# ln -s /usr/local/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node


# ln -s /usr/local/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm


2、安装gitbook

gitbook是通过npm安装的

# npm install -g gitbook-cli

如果由于网络的原因可能会安装失败,这时候更换安装源的话会快些。


更换安装源

修改

/usr/local/node-v6.9.5-linux-x64/lib/node_modules/npm/doc/files # vi npmrc.md 


添加

registry = http://registry.nmp.taobao.org


/usr/local/node-v6.9.5-linux-x64/lib/node_modules/gitbook-cli/node_modules/npmi/node_modules/npm/doc/files # vi npmrc.md 


添加registry = http://registry.nmp.taobao.org


再次执行安装,当出现下面的结果说明安装成功了。

# npm install -g gitbook-cli

/usr/local/node-v6.9.5-linux-x64/bin/gitbook -> /usr/local/node-v6.9.5-linux-x64/lib/node_modules/gitbook-cli/bin/gitbook.js

/usr/local/node-v6.9.5-linux-x64/lib

└── [email protected] 


# ln -s /usr/local/node-v6.9.5-linux-x64/bin/gitbook /usr/local/bin/gitbook


查看gitbook版本

# gitbook -V

CLI version: 2.3.0

Installing GitBook 3.2.2


3、gitbook使用

gitbook是使用使用Markdown语法编写的,易于学习

首先创建README.md和SUMMARY.md,前者相当于一本书的简介,而后者相当于一本书的目录

~ # mkdir test_gitbook

~ # cd test_gitbook/

~/test_gitbook # touch README.md

~/test_gitbook # touch SUMMARY.md


3.1、编辑目录文件

~/test_gitbook # vim SUMMARY.md 


* [简介](README.md)

* [第一章](chapter1/README.md)

 - [第一节](chapter1/section1.md)

 - [第二节](chapter1/section2.md)

* [第二章](chapter2/README.md)

 - [第一节](chapter2/section1.md)

 - [第二节](chapter2/section2.md)

* [结束](end/README.md)


注意要严格按照标准和层次结构编写,例如第一行*和[之间是由分号隔开的,其他详细的语法大家可以参考网上的Markdown语法格式。


~/test_gitbook # tree

.

├── README.md

├── SUMMARY.md

├── chapter1

│?? ├── README.md

│?? ├── section1.md

│?? └── section2.md

├── chapter2

│?? ├── README.md

│?? ├── section1.md

│?? └── section2.md

└── end

    └── README.md


3.2、输出为静态网页

~/test_gitbook # 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 8 pages 

info: found 0 asset files 

info: >> generation finished with success in 0.9s ! 


Starting server ...

Serving book on http://localhost:4000


这时候可以在浏览器中输入http://服务器IP:4000/进行访问了,注意上边的进程通过键盘CTRL+C才可以关闭。

安装gitbook_第1张图片


想要添加内容的话大家也可以在相应章节的文件添加内容


查看生成的文件,可以看到多了_book目录,这个就是生成的电子书目录,可以迁移该目录到任何你想迁移的地方。

~/test_gitbook # ll

total 20

-rw-r--r-- 1 root root    0 Feb 21 05:12 README.md

-rw-r--r-- 1 root root  288 Feb 21 05:14 SUMMARY.md

drwxr-xr-x 6 root root 4096 Feb 21 07:42 _book

drwxr-xr-x 2 root root 4096 Feb 21 05:14 chapter1

drwxr-xr-x 2 root root 4096 Feb 21 05:14 chapter2

drwxr-xr-x 2 root root 4096 Feb 21 05:14 end


进入电子书可以看到有一个index.html文件,该文件就是生成的静态页面

~/test_gitbook/_book # ll

total 32

drwxr-xr-x  2 root root 4096 Feb 21 07:42 chapter1

drwxr-xr-x  2 root root 4096 Feb 21 07:42 chapter2

drwxr-xr-x  2 root root 4096 Feb 21 07:42 end

drwxr-xr-x 10 root root 4096 Feb 21 07:42 gitbook

-rw-r--r--  1 root root 8853 Feb 21 07:42 index.html

-rw-r--r--  1 root root 1945 Feb 21 07:42 search_index.json


这里需要注意的是gitbook serve 占用cpu非常多,建议直接用gitbook build 然后放到任何支持静态文件的web server上。


3.3、使用模拟的web服务器供访问电子书静态页面

~/test_gitbook/ # gitbook build

~/test_gitbook/ # cd _book


使用python模拟web服务器

~/test_gitbook/ # python -m SimpleHTTPServer 4000


这样就可以在浏览器中输入http://服务器IP:4000/index.html进行访问电子书的静态页面了


3.4、衍生

想上面的目录结构还是相对简单的,如果遇到篇幅比较长,目录结构复杂的电子书的话,例如下面展示的目录结构,在linux系统内编写的话就显得太过繁琐,有没有图形化的工具可以供我们使用编写电子书,这样就简单多了,图形化的gitbook电子书编写工具很多,我下篇文章为大家讲解gitbook editor的使用方法。

~/test_gitbook/publish1 # vi SUMMARY.md 

# Summary

* [Introduction](README.md)

* [第一章:安装ansible并测试](ch1/install_ansible.md)

    * [1. 查看系统版本](ch1/check_release.md)

    * [2. 安装ansible配置yum配置](ch1/cfg_ansibleyum.md)

    * [3. 安装ansible](ch1/install.md)

    * [4. ansible安装后测试](ch1/test.md)

    * [小结](ch1/WRAPUP.md)

* [第二章:安装tower](ch2/install_tower.md)

    * [1. 资源下载](ch2/download.md)

    * [2. 解压缩tower引导文件](ch2/unzip_guidefile.md)

    * [3. 配置安装tower的yum源](ch2/cfg_toweryum.md)

    * [4. 部署tower](ch2/deploy_tower.md)

    * [1. 资源下载](ch2/download.md)

* [第三章:导入licenses](ch3/import_licenses.md)

* [结束](end/SUMMARY.md)