GitBook 制作 Kindle 电子书详细教程(命令行版)
* GitBook 已改版,本教程已失效。
之前 Kindle 伴侣曾经写过一篇“可视化版”的 GitBook 教程,主要介绍了利用 GitBook.com 的在线服务和桌面客户端的使用方法。本文是其姊妹篇“命令行版”GitBook 教程。
GitBook 是一款基于 Node.js 开发的开源的工具,可以通过命令行的方式创建电子书项目,再使用 MarkDown 编写电子书内容,然后生成 PDF、ePub、mobi 格式的电子书,或生成一个静态站点。
除此之外,还可以利用 Git 命令管理电子书版本。如果你是 GitHub 的重度使用者,还可以把你的 GitBook 帐户和 GitHub 帐户关联起来,这样不论在任何一方修改了内容,都可以互相同步。
目录
一、安装 Node.js
二、安装 GitBook
三、创建电子书项目
四、编辑电子书内容
1、README.md
2、SUMMARY.md
3、Glossary.md
4、book.json
5、普通章节.md 文件
6、电子书封面图片
五、预览电子书内容
六、生成电子书文件
七、把项目托管到 GitBook.com
1、注册 GitBook.com 账号
2、安装 Git 软件
3、上传已有的电子书项目
八、把项目关联到 GitHub 帐户
1、关联 GitBook 和 GitHub 帐户
2、把 GitBook 项目导入到 GitHub
3、设置 GitBook 和 GitHuB 同步
一、安装 Node.js
由于 GitBook 是基于 Node.js 开发的,所以依赖 Node.js 环境。如果您的系统中还未安装 Node.js,请点击下面的链接,根据你所使用的系统下载对应的版本。如果已安装则略过本步骤。
Node.js 下载页面:https://nodejs.org/en/download/stable/
Windows 版和 Mac 版的 Node.js 都是常规的安装包,连续下一步安装即可。Lunix 版可以参照官方文档通过 yum、apt-get 之类的工具安装,也可以通过源码包安装,如下所示:
$ wget https://nodejs.org/dist/v5.4.1/node-v5.4.1.tar.gz
$ tar zxvf node-v5.4.1.tar.gz
$ cd node-v5.4.1
$ ./configure
$ make
$ make install
二、安装 GitBook
打开“命令提示符”(Mac 系统打开“终端”)输入以下命令安装 GitBook:
$ npm install gitbook-cli -g
由于网络的原因,安装的时间可能会较长一些,请耐心等待直到安装完成。安装完成后可以输入以下命令,以查看 GitBook 版本的方式检查是否安装成功:
$ gitbook -V
三、创建电子书项目
新建一个目录,并进入该目录使用 gitbook 命令初始化电子书项目。举个例子,现在要创建一个名为“MyFirstBook”的空白电子书项目,如下所示:
$ mkdir MyFirstBook
$ cd MyFirstBook
$ gitbook init
四、编辑电子书内容
初始化后的目录中会出现“README.md(电子书简介文件)”和“SUMMARY.md(导航目录文件)”两个基本文件。除此之外还可以手动新建其它“Glossary.md(书尾的词汇表)”、“book.json(电子书配置文件)”。电子书的正文内容可以根据自己的喜好创建新的后缀为 .md 文件,如“chapter01.md”,然后用 MarkDown 编写具体的文本内容即可。下面对这些文件分别做详细介绍。
1、README.md
此文件是简单的电子书介绍,可以把您所制作的电子书做一下简单的描述:
# 简介
这是我的第一本使用 GitBook 制作的电子书。
2、SUMMARY.md
此为电子书的导航目录文件,每当新增一个章节文件就需要向此文件中添加一条记录。对于 Kindle 电子书来说,此文件所呈现的目录结构就是开头的目录内容和“前往”的目录导航。
# Summary
* [简介](README.md)
* [第一章](section1/README.md)
* [第二章](section2/README.md)
如果需要“子章节”可以使用 Tab
缩进来实现(最多支持三级标题),如下所示:
# Summary
* [第一章](section1/README.md)
* [第一节](section1/example1.md)
* [第二节](section1/example2.md)
* [第二章](section2/README.md)
* [第一节](section2/example1.md)
3、Glossary.md
对于电子书内容中需要解释的词汇可在此文件中定义。词汇表会被放在电子书末尾。其格式如下所示:
# 电子书
电子书是指将文字、图片、声音、影像等讯息内容数字化的出版物和植入或下载数字化文字、图片、声音、影像等讯息内容的集存储和显示终端于一体的手持阅读器。
# Kindle
Amazon Kindle 是由 Amazon 设计和销售的电子书阅读器(以及软件平台)。用户可以通过无线网络使用 Amazon Kindle 购买、下载和阅读电子书、报纸、杂志、博客及其他电子媒体。
4、book.json
“book.json”是电子书的配置文件,可以看作是电子书的“原数据”,比如 title、description、isbn、language、direction、styles 等,更多点击这里查看。它的基本结构如下所示:
{
"title": "我的第一本電子書",
"description": "用 GitBook 制作的第一本電子書!",
"isbn": "978-3-16-148410-0",
"language": "zh-tw",
"direction": "ltr"
}
5、普通章节.md 文件
普通章节.md 文件可以使用您感觉顺手的文本编辑器编写。MarkDown 的写法可以点击这里查看相关示例。每编写一个 .md 文件,不要忘了在“SUMMARY.md”文件中添加一条记录哦。
6、电子书封面图片
GitBook 帮助文档建议封面图片的尺寸为 1800*2360 像素并且遵循建议:
- 没有边框
- 清晰可见的书本标题
- 任何重要的文字在小版本中应该可见
图片的格式为 jpg 格式。把图片重命名为“cover.jpg”放到电子书项目文件夹即可。
五、预览电子书内容
电子书内容编写完毕后可以使用浏览器预览一下。先输入下面的命令据 .md 文件生成 HTML 文档:
$ gitbook build
生成完毕后,会在电子书项目目录中出现一个名为“_book”的文件夹。进入该文件夹,直接用浏览器打开“index.html”,或先输入下面的命令:
$ gitbook serve
然后在浏览器中输入“http://localhost:4000”即可预览电子书内容,预览完毕后按 Ctrl + C
结束。
六、生成电子书文件
确定电子书没有问题后,可以通过输入以下命令生成 mobi 电子书:
$ gitbook mobi ./ ./MyFirstBook.mobi
如果出现以下错误提示,说明您还未安装 Calibre。由于 GitBook 生成 mobi 格式电子书依赖 Calibre 的 ebook-convert,所以请先点击这里下载安装 Calibre。
Error: Need to install ebook-convert from Calibre
Calibre 安装完毕后,对于 Mac OS X 系统,还需要先设置一下软链接:
$ ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin
再次运行转换命令,即可生成 mobi 格式电子书。
七、把项目托管到 GitBook.com
以上所有的步骤都是在本地进行的,如果需要实现电子书的版本管理,或者把电子书发布到网络上,还可以通过 Git 命令将本地的项目托管到 GitBook.com 上。
1、注册 GitBook.com 账号
首先进入 GitBook.com 注册一个账号,并新建一个项目。在“Setting(设置)”页面获取到“Git URL(Git 链接)”,链接的样子如下所示:
https://git.gitbook.com/kindlefere/myfirstbook.git
2、安装 Git 软件
在开始下面的步骤之前请先确保您的系统中已经安装了 Git。一般 Mac 和 Linux 自带 Git 功能,可以在终端运行 git --version
查看 Git 版本。Windows 一般不会自带 Git 功能,请点击这里下载先安装。
在安装 Windows 版的 Git 时,会看到“Use Git from Git Bash only”和“Use Git from the Windows Command prompt”两个选项。前者指的在程序自带的独立终端中使用 Git。后者是指可以通过系统自带的“命令提示符”使用 Git 命令。可以根据自己的喜好选择,个人推荐使用后者。
3、上传已有的电子书项目
在本地新建一个文件夹,并通过 Git 命令把刚才新建的远程项目抓取到本地,如下所示:
$ mkdir MyFirstBook-Git
$ cd MyFirstBook-Git
$ git init
$ git pull https://git.gitbook.com/kindlefere/myfirstbook.git
然后把本地项目“MyFirstBook”中的所有内容拷贝到刚才新建的文件夹中,如上面的“MyFirstBook-Git”。然后使用 Git 命令把本地的项目上传到远程,如下所示:
$ git add -A
$ git commit -m "提交说明"
$ git remote add gitbook https://git.gitbook.com/kindlefere/myfirstbook.git
$ git push -u gitbook master
期间需要输入你的 GitBook 注册邮箱和密码。今后修改内容后只需要输入以下 Git 命令即可:
$ git add [修改的文件]
$ git commit -m "提交说明"
$ git push -u gitbook master
八、把项目关联到 GitHub 帐户
如果你喜欢使用 GitHub 管理项目。还可以把您的 GitBook 帐户和 GitHub 帐户关联起来,这样两者的修改内容就可以互相同步了。
1、关联 GitBook 和 GitHub 帐户
关联设置也很简单,首先进入 GitBook 的“Account Settings(帐户设置)”页面,在“Profile(个人资料)”标签页找到“GitHub”选项卡,点击【Connect to GitHub】按钮会转向 GitHub 的“Authorize application”页面,点击【Authorize application】按钮即可完成关联。
2、把 GitBook 项目导入到 GitHub
完成关联后即可设置同步电子书项目了。以电子书项目“MyFirstBook”为例,首先需要把项目导入到 GitHub 中一份。进入某个电子书项目的设置页面,切换到“GitHub”选项卡。在“GitHub Repository”中,点击【Export to GitHub】按钮,按照向导所示步骤将项目导入 GitHub 中。
3、设置 GitBook 和 GitHuB 同步
导出成功后,再回到 GitBook 项目设置页面的“GitHub”选项卡,在“GitHub Repository”中的输入框中填入 GitHub 的 Repository 名,如“GitHub用户名/myfirstbook”,点击【Save】按钮保存。
保存后当前页面会出现一个名为“Integration”的选项卡,点击里面的【Add webhook】按钮,允许 GitBook 接收 Github 的内容更新。这样就把 GitBook 上的项目和 GitHub 相对应的项目关联上了。
此后即可用 GitHub 管理电子书项目,在 GitBook 上对电子书内容修改也会自动同步到 GitHub 中。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/288.html
“制作Kindle电子书”相关阅读
- Sigil 基础教程(二):Sigil 的基本操作
- 如何制作完美的 Kindle 期刊杂志格式排版的电子书
- Kindle 漫画制作软件 ChainLP 简明教程
- Sigil 进阶教程:从零开始制作 EPub 电子书
- 制作 KF8 标准电子书示例(下):图片与背景
- 遵循亚马逊标准!Kindle 电子书专业制作教程
- KF8 格式电子书支持的 HTML 标签和 CSS 属性
- 亚马逊 Kindle 电子书发布指南(二)一般最佳实践
- 亚马逊 Kindle 电子书发布指南(四)附录
- 亚马逊 Kindle 电子书发布指南(三)特定类型电子书指南
- 制作 KF8 标准电子书示例(上):字体与文本
- 亚马逊推电子书制作工具 Kindle Textbook Creator
- Kindle Comic Converter:最简单的漫画转换工具
- 乐书:在线 Kindle 电子书制作和转换工具
- 如何为 Kindle 电子书添加嵌入多种自定义字体
就没有轻量级的方法么?windows下太蛋疼了,又不是latex
第七大项的第一小项,找不到git链接啊,是不是在github里面找,不是在gitbook里面找
Shiki 您好。GitBook 改版了,在 GitBook 项目中,可以找到一个绿色的 Edit 按钮,它旁边有一个倒三角按钮,点开就是这个 GitBook 项目的 Git 地址了。
写一本书这么Geek……对于精细化的排版需求不知道gitbook支持的如何
gitbook init命令后在安装gitbook最新版的过程中报错:
|
Error: Failed to parse json
Unexpected token ‘\u0000’ at 1:1
^
最后npm cache clean命令清空缓存解决了。