今天准备整理一下 web 前端开发规范,就了解了一下 gitbook,下面贴出了解过程:
Gitbook 是一个命令行工具,可以把你的 Markdown 文件汇集成电子书,并提供PDF等多种格式输出。你可以把 Gitbook 生成的 HTML 发布出来,就形成了一个简单的静态网站。Gitbook 还有一个同名的平台(gitbook.io),可以发布和销售电子书,并提供了一个 Markdown 客户端工具(支持 Mac、Windows 和 Linux)帮助写作。以下是我在使用 Gitbook 中的笔记。
1. 安装 npm,从 node.js 的官网上下载安装程序,即可完成 Node.js 和 npm 的安装,也可以Google;
2. 通过 npm 安装 Gitbook
gitbook 1.x 时执行:
$ npm install gitbook -g
而从 gitbook 2.x 开始,执行下面新的命令语句:
$ npm install gitbook-cli -g
3. 项目结构
README.md 和 SUMMARY.md 是 Gitbook 项目必备的两个文件,也就是一本最简单的 gitbook 也必须含有这两个文件,它们在一本 Gitbook 中具有不同的用处。
3.1 README.md
这个文件相当于一本 Gitbook 的简介。
3.2 SUMMARY.md
这个文件是一本书的目录结构,使用 Markdown 语法。PS:
# Summary
This is the summary of my book.
* 第一章
* [第一节](section1/example1.md)
* [第二节](section1/example2.md)
* [第二章](section2/README.md)
* [第一节](section2/example1.md)
3.3 目录初始化
当 SUMMARY.md 这个目录文件创建好之后,我们可以使用 Gitbook 的命令行工具将这个目录结构生成相应的目录及文件:
$ gitbook init
4. 图书输出
目前为止,Gitbook支持如下输出:
静态HTML,可以看作一个静态网站
PDF格式
eBook格式
单个HTML文件
JSON格式
4.1 本地预览
当你在自己的电脑上编辑好图书之后,你可以使用 Gitbook 的命令行进行本地预览:
$ gitbook serve ./图书名称
这里会启动一个端口为4000用于预览的服务器:
$ gitbook serve .
Press CTRL+C to quit ...
Starting build ...
Successfuly built !
Starting server ...
Serving book on http://localhost:4000
你可以你的浏览器中打开这个网址:http://localhost:4000
这里你会发现,你在你的图书项目的目录中多了一个名为 _book 的文件目录,而这个目录中的文件,即是生成的静态网站内容。
4.2 输出一个静态网站
与直接预览生成的静态网站文件不一样的是,使用这个命令,你可以将内容输入到你所想要的目录中去:
$ gitbook build ./图书目录 --output=./指定目录
查看帮助
$ gitbook -h
Usage: gitbook [options] [command]
Commands:
build [options] [source_dir] Build a gitbook from a directory
serve [options] [source_dir] Build then serve a gitbook from a directory
pdf [options] [source_dir] Build a gitbook as a PDF
ebook [options] [source_dir] Build a gitbook as a eBook
init [source_dir] Create files and folders based on contents of SUMMARY.md
Options:
-h, --help output usage information
-V, --version output the version number
4.3 输出 PDF
输入为 PDF 文件,需要先使用 npm 安装上 gitbook pdf:
$ npm install gitbook-pdf -g
然后,使用下面的命令,可生成PDF文件了:
$ gitbook pdf ./图书目录
如果你在图书目录内容,也可以这样做:
$ gitbook pdf .
然后,你会发现你的目录里多了一个名为book.pdf的文件,就是它了!
其他的几种格式暂时还没有尝试。