将Gitbook发布到Github Pages
以Mac为例
1. 安装Node.js
Node.js下载地址
2. 安装Gitbook
npm install gitbook-cli -g
3. 在Github创建一个仓库,比如:web-cookbook
- 克隆到本地:git clone git@github.com:USERNAME/web-cookbook.git
4. 初始化gitbook
- gitbook init
5. 创建分支
master分支保存.md的源码,gh-pages分支保存编译生成的html文件
- 创建gh-pages分支(分支名称不能变):git checkout -b gh-pages
- 清空分支下的文件:git rm *
- 将分支push到仓库:git push -u origin gh-pages
- 切换到主分支:git checkout master
- 克隆分支到一个新文件(book-branch):git clone -b gh-pages git@github.com:USERNAME/web-cookbook.git book-branch, 将book-branch加入到.gitignore文件中,即可忽略book-branch的修改
6. 编译
- 构建书籍:gitbook build
- 本地浏览:gitbook serve
README.md和SUMMARY.md是Gitbook项目必备的两个文件,也就是一本最简单的gitbook也必须含有这两个文件,它们在一本Gitbook中具有不同的用处
README.md这个文件相当于一本Gitbook的简介
SUMMARY.md这个文件是一本书的目录结构
7. 发布到Github Pages
- 将_book下的内容拷贝到分支中,即book-branch文件夹中:cp -r ./_book/* book-branch/
- 进入book-branch目录提交修改:
- git add .
- git commit -m 'publish book'
- git push origin gh-pages
- 访问USERNAME.github.io/web-cookbook查看
8. gulp发布Gitbook到Github Pages
var gulp = require("gulp"),
deploy = require("gulp-gh-pages");
gulp.task('publish', function () {
return gulp.src("_book/\*\*/\*.\*")
.pipe(deploy({
remoteUrl: "git@github.com:USERNAME/web-cookbook.git"
}))
.on("error", function(err){
console.log(err)
})
});
9. Gitbook的book.json文件
gitbook在编译书籍的时候会读取书籍源码顶层目录中的book.js或者book.json,这里以book.json为例,参考gitbook文档。
{
"description": null,
"extension": null,
"generator": "site",
"isbn": null,
"links": {
"sharing": {
"all": null,
"facebook": null,
"google": null,
"twitter": null,
"weibo": null
},
"sidebar": {
"Style's GitBook":"http://stylever.github.io/web-cookbook"
}
},
"output": null,
"pdf": {
"fontSize": 12,
"footerTemplate": null,
"headerTemplate": null,
"margin": {
"bottom": 36,
"left": 62,
"right": 62,
"top": 36
},
"pageNumbers": false,
"paperSize": "a4"
},
"plugins": [],
"title": null,
"variables": {}
}
10. Disqus评论插件
Disqus是一款网站集成评论系统的工具,gitbook可以集成。
- 在disqus注册一个账号
- 创建一个website
- 安装disqus 插件
$ npm install gitbook-plugin-disqus - 修改 book.json 配置文件
{ "plugins": ["disqus"], "pluginsConfig": { "disqus": { "shortName": "introducetogitbook" (在disqus上创建的website的Shortname) } } }