gitbook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML、PDF、eBook 等格式的电子书。
gitbook 与 Markdown 和 Git 息息相关,只有将它们结合起来使用,才能将它们的威力发挥到极致!通常我们会选择合适的 Markdown 编辑工具以获得飞一般的写作体验;使用 GitBook 管理文档,预览、制作电子书;同时通过 Git 管理书籍内容的变更,并将其托管到云端(比如 GitHub、GitLab、码云,或者是自己搭建的 Git 服务器),实现多人协作。
相比于word,因为它以二进制格式保存、软件不兼容、格式不兼容、难以进行版本控制、难以实时分享预览、难以多人协作等短板。而这恰恰是 GitBook + Markdown + Git 的长处。
安装
1、使用npm全局安装gitbook-cli
npm install gitbook-cli -g
2、使用gitbook --version来查看gitbook的版本
gitbook --version
3、新建一个文件夹,初始化gitbook,会自动生成两个文件。
README.md —— 书籍的介绍写在这个文件里
SUMMARY.md —— 书籍的目录结构在这里配置
gitbook init
4、接着,使用gitbook serve命令来启动gitbook本地服务器,预览书籍内容。
gitbook serve
serve 命令也可以指定端口:
gitbook serve --port 2333
5、打开localhost:4000,会出现如下页面
6、生成静态网页
执行 gitbook build 命令构建书籍,默认将生成的静态网站输出到 _book 目录。实际上,这一步也包含在 gitbook serve 里面,因为它们是 HTML,所以 gitbook 通过 Node.js 提供服务了。
gitbook build #生成静态网页
可以生成 PDF 格式的电子书:
gitbook pdf ./ ./mybook.pdf
生成 epub 格式的电子书:
gitbook epub ./ ./mybook.epub
生成 mobi 格式的电子书:
gitbook mobi ./ ./mybook.mobi
如果生成不了,还需要安装工具ebook-convert,安装好后,还需要执行以下命令
ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin
编辑 SUMMARY.md 文件,内容修改为:
* [快速入门](README.md)
* 业务组件
* [日历组件](component/rx-touch-calendar/README.md)
* [展示瑞信头像组件](component/rx-getPhoto-list/README.md)
目录结构
.
├── README.md
├── SUMMARY.md
├── book.json
├── component
│ ├── rx-getPhoto-list
│ └── rx-touch-calendar
└── style.css
book.json,该文件用于存放配置信息。
【title】书本的标题
【author】作者的相关信息
【description】本书的简单描述
【language】gitbook使用的语言
【root】指定存放 GitBook 文件(除了 book.json)的根目录
【structure】指定自述文件,摘要,词汇表等的路径
gitbook支持许多插件,可以扩展gitbook的功能。
【打赏功能:donate】
{
"plugins": ["donate"],
"pluginsConfig": {
"donate": {
"wechat": "例:/images/qr.png",
"alipay": "http://blog.willin.wang/static/images/qr.png",
"title": "默认空",
"button": "默认值:Donate",
"alipayText": "默认值:支付宝捐赠",
"wechatText": "默认值:微信捐赠"
}
}
}
【广告功能:ad】
{
"plugins": ["ad"],
"pluginsConfig": {
"ad": {
"contentTop": "<div>Ads at the top of the page</div>",
"contentBottom": "%3Cdiv%3EAds%20at%20the%20bottom%20of%20the%20page%3C/div%3E"
}
}
}
// note: contentBottom is escape('<div>Ads at the bottom of the page</div>')
【目录宽度可调节:splitter】
{
"plugins": ["splitter"]
}
【github图标】
{
"plugins": [ "github" ],
"pluginsConfig": {
"github": {
"url": "https://github.com/your/repo"
}
}
}
【自定义页脚:tbfed-pagefooter】
{
"plugins": [ "tbfed-pagefooter" ],
"pluginsConfig": {
"tbfed-pagefooter": {
"copyright":"© Taobao FED Team",
"modify_label": "该文件修订时间:",
"modify_format": "YYYY-MM-DD HH:mm:ss"
}
}
}
【目录章节可折叠:expandable-chapters】
{
{
plugins: ["expandable-chapters"]
}
{
"pluginsConfig": {
"expandable-chapters":{}
}
}
}
【畅言评论:changyan】
{
"plugins": [
"changyan"
],
"pluginsConfig": {
"changyan": {
"appid": "your changyan's appid",
"conf": "the conf in the code generate by changyan"
}
}
}
【返回顶部:back-to-top-button】
{
"plugins" : [ "back-to-top-button" ]
}
上面支持列举了一些常用的插件,想要了解更多可以阅读官方文档,插件在book.json配置好后,需要安装。
sudo gitbook install
book.json模板
{
"title": "UI",
"description": "UI组件库",
"author": "zhuyongbo",
"language": "zh-hans",
"links": {
"sidebar": {
"开放平台": "http://e.cnpc.com.cn/opensdk/"
}
},
"styles":{
"website":"style.css"
},
"plugins": [
"-lunr",
"-search",
"-livereload",
"-sharing",
"expandable-chapters",
"search-plus",
"splitter",
"github",
"-sharing",
"emphasize",
"include-codeblock",
"tbfed-pagefooter",
"back-to-top-button",
"anchor-navigation-ex"
],
"pluginsConfig": {
"github": {
"url": "https://github.com/webzhuyongbo"
},
"sharing": {
"douban": false,
"facebook": false,
"google": false,
"hatenaBookmark": false,
"instapaper": false,
"line": false,
"linkedin": false,
"messenger": false,
"pocket": false,
"qq": false,
"qzone": false,
"stumbleupon": false,
"twitter": false,
"viber": false,
"vk": false,
"weibo": false,
"whatsapp": false,
"all": [
"weibo","qq","qzone","google","douban"
]
},
"anchor-navigation-ex": {
"associatedWithSummary":false,
"showLevel":true,
"multipleH1": true,
"mode": "float",
"pageTop": {
"showLevelIcon": false,
"level1Icon": "fa fa-hand-o-right",
"level2Icon": "fa fa-hand-o-right",
"level3Icon": "fa fa-hand-o-right"
}
},
"tbfed-pagefooter": {
"copyright": "©北京信息技术有限责任公司",
"modify_label": "文档更新时间:",
"modify_format": "YYYY-MM-DD HH:mm:ss"
}
}
}
去掉gitbook的版权信息:
创建样式表文件“styles/website.css”,添加代码如下:
.gitbook-link {
display: none !important;
}
编辑“book.json”文件,添加如下代码:
{
"styles": {
"website": "styles/website.css"
}
}
好了,让我们看一下我们文档的效果图。