Fork me on GitHub

gitbook+github

发布自己的电子书

环境

安装gitbook-cli

1
2
$ npm i -g gitbook-cli
$ npm install -g gitbook

新建book项目

1
2
$ cd book
$ gitbook init

然后项目多出两个文件

1
2
3
gitbook/
├── README.md
└── SUMMARY.md

README.md 和 SUMMARY.md 是两个必须文件,README.md 是对书籍的简单介绍。SUMMARY.md 是书籍的目录结构。
编辑SUMMARY.md类似如下:

1
2
* [标题1](README.md)
* [1.1 标题](md文件路径)

然后就可以查看了,监听在本地的4000端口,可以用浏览器打开 http://localhost:4000 查看书籍的效果

1
$ gitbook serve

接下来书本的具体内容就是在本地编辑markdown文档了。

github托管书籍

到github,新建空仓库book,在本地项目文件夹执行以下命令行,在这之前,先添加.gitignore文件

1
2
_book
.idea
1
2
3
4
5
$ git init
$ git add .
$ git commit -m 'init'
$ git remote add origin git@github.com:username/book.git
$ git push -u origin master

创建并切换到gh-pages分支,将静态文件_book push到gh-pages分支

1
2
3
4
5
6
7
$ git checkout -b gh-pages
# 进入_book文件夹
$ cd _book
$ git init
$ git add .
$ git commit -m 'Auto publisher'
$ git push

最后回到上级切换回来master分支,继续编辑书本.

但是这样来回切换非常麻烦,所以可以写个Makefile脚本,然后就可以一直在master分支上进行编辑了。

1
2
3
4
5
publish:
rm -rf _book
gitbook build
cd _book && git init && git add . && git commit -m 'Auto publisher' && git push --force --quiet "git@github.com:username/book.git" master:gh-pages > /dev/null 2>&1
rm -rf _book

执行Makefile文件

1
$ make

然后就可以在username.github.io/book下面看到你的电子书啦。

解析到自己的域名

如果有自己的域名,到域名解析网站,添加CNAME记录,记录值为username.github.io,并添加CNAME文件到项目根目录。

1
解析到的域名xx.xxx.com

稍后就可以在xx.xxxx.com中访问你的电子书了。

注:hexo之所以不需要这么复杂,是因为其在_config.yml里面配置了deploy
当github仓库名为username.github.io的时候branch填的是master
当github仓库名为自定义的时候branch填的是gh-pages
最终电子书

-------------本文结束感谢您的阅读-------------
如果您觉得受益了,欢迎打赏鼓励。