发布书籍
在发布书籍之前,需要先了解 gitbook 的基本工作方式。
首先,gitbook中有两种内容:
- 书籍的原始内容: 以markdown格式编写的文本内容,和其他诸如图片等附加文件
- 书籍的展现内容: 最常见的是HTML格式,也可以生成PDF/ePub/mobi格式
如上图所示,点击箭头所指之处可以看到 HTML 格式,下面红框里面可以下载到 PDF/ePub/mobi 格式的书籍文件。
第一种内容用于编辑和存储,第二种内容用于展现和发布。
然后 gitbook 提供工具(包括本地命令行和官方网站)从原始内容生成展现内容。
对应上述的工作方式,gitbook在存储内容时也分成两块。
典型就是存储在git仓库中:
- github,大家最熟悉的
- gitbook官网提供的git仓库
- 自己的或者公司的私有git仓库,典型如使用gitlab搭建
视具体情况选择,其中github和gitbook的仓库都是public可以免费使用,private需要收费。
对书籍展现内容的存储
gitbook生成的展现内容,它的存储和发布的方式有以下几种:
github pages
github pages是github推出的免费服务,特别使用用来存放各种静态站点,一般多用于个人blog或者项目文档等。具体介绍可以参考这里:,虽然是介绍Jekyll,不过方式可以通用于其他类似方案,比如我喜欢的blog工具hexo和今天介绍的gitbook。
简单一句话介绍说github pages的使用: 只要在对应github仓库上建立分支 ,然后将静态web文件提交到这个分支,github就会以
http://yourid.github.io/yourproject/
的URL提供web服务,例如 http://skyao.github.io/leaning-grpc/。这个方式配合 github 的免费git仓库,堪称绝配。
gitbook官网
在gitbook官网,提供gitbook使用的全套服务,自然也包括数据的发布。而且编辑存储发布是一条龙服务,非常方便。
此外,gitbook的build内容时,会自动生成 PDF/ePub/mobi 格式的文件并提供下载服务,这点比用github方便。
理论上说,上述列举的存储方案和展现方案是可以任意搭配使用的,即 3 × 3 = 9 种方案。
实际上,比较推荐的方案是:
私有git仓库存储 + 私有web服务器发布
搭建一个gitlab,存放一些以gitbook格式存放的开发文档,然后通过ci服务器(如jenkins)监控更新并生成HTML内容,再部署到nginx/apache等web服务器。
github仓库存储 + github pages发布
这是github提供的一条龙服务,也是我之前使用的典型方案。
好处是方便,够简单,也直白,缺点是不能直接生成 PDF/ePub/mobi 格式, 而且内容更新之后需要自己手工发布(虽然理论上也可以用jenkins自动跑)。
gitbook仓库存储 + gitbook发布
这是 gitbook 推荐的方式。
用起来很方便,而且提供前面说的直接生成 PDF/ePub/mobi 格式的功能。但是最大的问题,是我不习惯将代码存放到github之外的地方。
注:我目前在慢慢将原来方案2的各种学习笔记转为方案4。