使用GitBook写电子书
工作以来一直有写博客的习惯,除了在各大站长写博客外,还可以使用 gitbook 将博客整理成电子书出版,如果受到好评还可以将图书弄成电子版出版。 经过近半年的整理,我的新书《React Native移动开发实战》就要发售了,提前打个广告,书名和封面样式还在确认中,也欢迎大家给出好的点子。
今天要给大家说的是如何利用GitBook编写一本属于自己的点子书。
1,GitBook Editor
首先到官网下载GitBook Editor,目前支持Mac、Linux、Windows主流平台。
安装完成之后,使用github账号直接登录(GitBook提供了四种方式登录,这里直接使用gitHub登录,后面会用到)。登录后,可以直接在gitbook上创建书籍,建议在gitbook网站上创建书籍,然后通过GitBook Editor clone 下来;
创建完成时候,就可以写书了,不过建议先clone到本地后在写,主要是有时候网络等问题造成不必要的损失。
注意:此时的GitBook的book页面默认没有download按钮的,需要做如下的设置。点击Settting设置打开E-Books选项
2,同步GitHub
如果没有github账号,先注册,之后绑定github账号。然后依次点击Setting->github,进行相关的设置即可。
安装完成之后,就可以关联github了,先在github上创建一个项目,然后再关联,第一次关联可能会有如下的错误:
点击GitBook或者GitHub下面的链接按钮即可关联上了。
然后我们添加一篇文章,在gitBook上点击Updates按钮。
注意:如果碰到,更新失败,无法转换成pdf/mobi/epub格式。
PS:如果涉及到多人协作还可能会涉及其他问题,这里不多介绍。
3,安装Node环境
首先我们需要安装的是Nodejs,关于Node 环境的搭建这里不再详述,做过前端开发的通信应该不糊陌生。node安装完成之后,就可以现在GitBook全局环境了。
4,全局安装 gitbook
现在我们可以开始安装全局的 gitbook 了。执行 命令,进行安装。
npm install gitbook-cli -g
安装完成之后,可以使用命令来查看是否安装成功。
gitbook -V
关于GitBook相关的教程,读者可以参考:GitBook教程
PS:gitbook 常用的命令如下:
gitbook init //初始化目录文件
gitbook help //列出gitbook所有的命令
gitbook --help //输出gitbook-cli的帮助信息
gitbook build //生成静态网页
gitbook serve //生成静态网页并运行服务器
gitbook build --gitbook=2.0.1 //生成时指定gitbook的版本, 本地没有会先下载
gitbook ls //列出本地所有的gitbook版本
gitbook ls-remote //列出远程可用的gitbook版本
gitbook fetch 标签/版本号 //安装对应的gitbook版本
gitbook update //更新到gitbook的最新版本
gitbook uninstall 2.0.1 //卸载对应的gitbook版本
gitbook build --log=debug //指定log的级别
gitbook builid --debug //输出错误信息
5,GitBook使用
此部分没有试验,来自网络:
gitbook serve
C:UsersAllenIversonDesktopgitbook-test>gitbook serve
Live reload server started on port: 35729
Press CTRL+C to quit ...
info: 7 plugins are installed
info: loading plugin "livereload"... OK
info: loading plugin "highlight"... OK
info: loading plugin "search"... OK
info: loading plugin "lunr"... OK
info: loading plugin "sharing"... OK
info: loading plugin "fontsettings"... OK
info: loading plugin "theme-default"... OK
info: found 3 pages
info: found 0 asset files
info: >> generation finished with success in 1.9s !
Starting server ...
Serving book on http://localhost:4000
gitbook ls
C:UsersAllenIversonDesktopgitcourse>gitbook ls
GitBook Versions Installed:
* 3.2.2
Run "gitbook update" to update to the latest version.
gitbook ls-remote
C:UsersAllenIversonDesktopgitcourse>gitbook ls-remote
Available GitBook Versions:
4.0.0-alpha.5, 4.0.0-alpha.4, 4.0.0-alpha.3, 4.0.0-alpha.2, 4.0.0-alpha.1, 3.2.2, 3.2.1, 3.2.0, 3.2.0-pre.1, 3.2.0-
pre.0, 3.1.1, 3.1.0, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-pre.15, 3.0.0-pre.14, 3.0.0-pre.13, 3.0.0-pre.12, 3.0.0-pre.11, 3
.0.0-pre.10, 3.0.0-pre.9, 3.0.0-pre.8, 3.0.0-pre.7, 3.0.0-pre.6, 3.0.0-pre.5, 3.0.0-pre.4, 3.0.0-pre.3, 3.0.0-pre.2, 3.0
.0-pre.1, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.2, 2.5.1, 2.5.0, 2.5.0-beta.7, 2.5.0-beta.6, 2.5.0
-beta.5, 2.5.0-beta.4, 2.5.0-beta.3, 2.5.0-beta.2, 2.5.0-beta.1, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.3, 2.3.2, 2.3.1, 2.3.0,
2.2.0, 2.1.0, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-beta.5, 2.0.0-beta.4, 2.0.0-beta.3, 2.0.0-beta.2, 2.0.0-beta.1,
2.0.0-alpha.9, 2.0.0-alpha.8, 2.0.0-alpha.7, 2.0.0-alpha.6, 2.0.0-alpha.5, 2.0.0-alpha.4, 2.0.0-alpha.3, 2.0.0-alpha.2,
2.0.0-alpha.1
Tags:
latest : 3.2.2
pre : 4.0.0-alpha.5
gitbook -V
C:UsersAllenIversonDesktopgitcourse>gitbook -V
CLI version: 2.3.0
GitBook version: 3.2.2
新建一个GitBook项目后,系统会默认新建几个文件:README.md、SUMMARY.md和chapter1.md。README.md相当于简介,SUMMARY.md:相当于这本书的目录,
6,calibre
首先到calibre官网下载对应的版本并安装,打开后界面如下:
gitbook-convert
把docx、xml、html、odt文档转成GitBook,首先需要安装gitbook-convert插件。
npm install gitbook-convert -g
如果需要转换,可以使用下面的命令:
gitbook-convert [options] <file> [export-directory]
7,常用插件
Gitbook 插件 里已经有100多个插件,可以在 book.json 文件的 plugins 和 pluginsConfig 字段添加插件及相关配置,添加后别忘了进行安装。例如:
// book.json
{
"title": "Webpack 中文指南",
"description": "Webpack 是当下最热门的前端资源模块化管理和打包工具,本书大部分内容翻译自 Webpack 官网。",
"language": "zh",
"plugins": [
"disqus",
"github",
"editlink",
"prism",
"-highlight",
"baidu",
"splitter",
"sitemap"
],
"pluginsConfig": {
"disqus": {
"shortName": "webpack-handbook"
},
"github": {
"url": "https://github.com/zhaoda/webpack-handbook"
},
"editlink": {
"base": "https://github.com/zhaoda/webpack-handbook/blob/master/content",
"label": "编辑本页"
},
"baidu": {
"token": "a9787f0ab45d5e237bab522431d0a7ec"
},
"sitemap": {
"hostname": "http://zhaoda.net/"
}
}
}
然后使用gitbook install安装插件。
# 安装插件
$ gitbook install ./
更多插件的使用请参考:GitBook使用教程
- Windows下TensorFlow安装指南(图文版)
- 20120918-双向链表类定义《数据结构与算法分析》
- 20120918-LIST类定义《数据结构与算法分析》
- Scala入门学习笔记四--List使用
- 20120918-向量实现《数据结构与算法分析》
- hadoop 1.x环境搭建
- JavaScript二维码生成——qrcode.js
- Spark中文指南(入门篇)-Spark编程模型(一)
- HDOJ 1008
- 单链表反转的分析及实现
- 在windows下使用eclipes连接linux下的Hadoop集群
- 移动端弹框后禁用页面滑动
- 移动端图片放大滑动查看-插件photoswipe的使用
- 在O(1)时间删除链表结点
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 2020-10-05:如何求模平方根?
- leetcode栈之比较含退格的字符串
- Discourse 如何不使用 Let’s Encrypt 而使用 CA 签名的密钥进行安装
- 3分钟短文:Laravel slug,让你的url地址更“好记”
- Qt音视频开发28-Onvif信息获取
- CentOS 8 启用 NTP 服务
- Discourse 如何使用命令行方式进行恢复
- CentOS 8 Apache 启用 SSL
- leetcode栈之二叉树的前序遍历
- 前端学数据结构与算法(七): 从零实现优先队列-堆及其应用
- 前端学数据结构与算法(六):二叉树的四种遍历方式及其应用
- 前端学数据结构与算法(五):理解二叉树特性及从零实现二叉搜索树
- 前端学数据结构与算法(四):理解递归及拿力扣链表题目练手
- 前端学数据结构与算法(三):链表为什么能和数组相提并论?用链表实现数组bettle下
- 前端学数据结构与算法(二):数组的操作特性与栈的应用