电子书的发布

Gitbook提供了一个发布平台Gitbook.com。这个平台应该也是它未来盈利和发展的目标,可惜在国内访问有些慢,另外体验也不是很好。因此,我们选择使用github pages作为发布书目的替代方案。

Github Pages的特点

  1. 使用简单;

  2. 全部免费;

  3. 支持静态脚本,支持DIY;

  4. 可以绑定自己的域名,功能不差

操作方法

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),电子书已经可以浏览了。

至于,定制使用自己的域名,请看官方文档吧。