电子书的发布
Gitbook提供了一个发布平台Gitbook.com。这个平台应该也是它未来盈利和发展的目标,可惜在国内访问有些慢,另外体验也不是很好。因此,我们选择使用github pages作为发布书目的替代方案。
Github Pages的特点
使用简单;
全部免费;
支持静态脚本,支持DIY;
可以绑定自己的域名,功能不差
操作方法
1. 两种Pages模式的选择
github pages支持两种模式,一种是User & Organization Pages
(用户和组织页),另一种是Project Pages
(工程页)。
1> 用户和组织页,通常作为一个独立的工程存在,目的是介绍作者或组织的目标、产品等信息,直接托管在master
分支就可以,维护方便。
2> 工程页,重在宣传项目、提供demo或api文档,是工程的辅助,需要托管在gh-pages
分支。
我们建议把书目当作工程管理,因此使用Project Pages
(工程页),如果你建立一个组织,就可以把各类书目集中到该User & Organization Pages
(用户和组织页)里(而每本书还是用的工程页)。
2.发布电子书
我们就以本书为例,采取手动发布到Project Pages
(工程页)的方式(请看官方文档):
1> 建立一个干净的分支
所谓的干净,就是没有其他分支的历史信息(也叫"orphan"分支),最好是直接克隆
$ git clone https://github.com/imfly/how-to-create-self-publishing-platform.git
2> 建立gh-pages
分支
同时,要删除所有文件
$ cd how-to-create-self-publishing-platform
$ git checkout --orphan gh-pages
$ git rm -rf .
3> 一键部署
初始化Npm工程:
$ npm init
按照提示,添加应用名称、描述、作者信息等,最后确认生成一个package.json
文件(也可以手动建一个)。
安装gulp
工具:
$ npm install gulp --save //--save表示安装到书籍目录
在书籍根目录新建gulpfile.js
文件,将下面的代码拷贝进去:
var gulp = require('gulp');
var ghPages = require('gulp-gh-pages');
//Deploy
gulp.task('deploy', function() {
return gulp.src('./_book/**/*')
.pipe(ghPages());
});
设置部署命令:
在package.json
里,添加下面的代码:
"scripts": {
"deploy": "node_modules/.bin/gulp deploy"
}
执行发布命令:
$ npm run deploy
上述代码,都可以在源文地址找到。
4>浏览效果
打开浏览器,输入地址 http(s)://<username>.github.io/<projectname>
,这里就是 http://imfly.github.io/how-to-create-self-publishing-platform (记住是.io而不是.com),电子书已经可以浏览了。
至于,定制使用自己的域名,请看官方文档吧。