Gitbook是一个命令行工具(node.js库), 使用Github/Git创建漂亮的图书。 你可以看一些用它编写的图书的例子: 学习Javascript. 你也可以很容易的通过gitbook.io网站发布在线图书。 editor 是一个图形化的编辑工具, 提供Windows, Mac 和Linux的版本. 关注Twitter帐号 @GitBookIO. 这篇文章只是一个起步教程, 完整的文档可以在help.gitbook.io网站找到.
怎么用:
GitBook 可以通过 NPM 安装:
|
|
你可以将一个repository
作为一本书:
|
|
或者简单的生成静态网站:
|
|
命令 build
和 serve
的参数为:
|
|
GitBook 会从仓库中的book.json
文件加载默认的配置,前提是此文件存在.
下面是此文件的一些配置项:
|
|
输出格式
GitBook可以产生下列类型的图书:
- 静态站点: 默认格式. 创建一个完全交互式的静态网站,可以发布到GitHub Pages等网站.
- eBook: 图书完成后可以使用它创建电子书. 创建命令:
gitbook ebook ./myrepo
. 你需要安装 ebook-convert. 输出格式可以是 PDF, ePub 或 MOBI. - 单页网页: 可以生成一个单页的HTML网页。这个格式可以用来转换PDF或者eBook. 创建命令:
gitbook build ./myrepo -f page
. - JSON: 此格式用来调试或者抽取图书的元数据. 创建命令:
gitbook build ./myrepo -f json
.
图书格式
一本图书就是一个Git repository, 至少包含两个文件: README.md
和 SUMMARY.md
.
README.md
典型的, 它应该是你的图书的介绍. 它可以自动的被加到最终的summary中.
SUMMARY.md
SUMMARY.md
定义了你的图书的结构. 它应该包含章节的列表,以及它们的链接.
例如:
|
|
不被SUMMARY.md
包含的文件不会被gitbook
处理.
多语言
GitBook 支持使用多种语言编写图书. 每种语言应该是一个子目录, 遵循正常gitbook格式, LANGS.md
文件应该被放到repository的根文件夹, 格式如下:
|
|
看个例子 学习 Git.
词汇表
允许你列出条目以及它们的定义. 基于这些条目 gitbook
会自动创建一个索引,并在页面中加亮这些条目.
GLOSSARY.md
格式很简单 :
|
|
忽略文件和文件夹
GitBook 读取.gitignore
, .bookignore
和 .ignore
得到需要忽略的文件/文件夹的列表. (文件的格式和 .gitignore
一样).
.gitignore
最佳实践是忽略build文件,这些文件来自 node.js (node_modules
, ...) 和GitBook的build文件: _book
, *.epub
, *.mobi
and *.pdf
.
封面
封面文件为: /cover.jpg.
尺寸为 1800x2360. 插件 autocover可以自动创建一个文件.
封面的小尺寸图形为: /cover_small.jpg.
发布图书
平台 GitBook.io就像"Heroku for books": 你可以在它上面创建图书 (公开的, 付费的, 或者私有的), 并且使用 git push 就可以更新.
插件
P插件可以扩展图书的功能. 查看插件介绍 GitbookIO/plugin来了解如何创建一个插件.
官方插件:
名称 | 描述 |
---|---|
exercises | Add interactive exercises to your book. |
quizzes | Add interactive quizzes to your book. |
mathjax | Displays mathematical notation in the book. |
mixpanel | Mixpanel tracking for your book |
其它插件:
名称 | 描述 |
---|---|
Google Analytics | Google Analytics tracking for your book |
Disqus | Disqus comments integration in your book |
Autocover | Generate a cover for your book |
Transform annoted quotes to notes | Allow extra markdown markup to render blockquotes as nice notes |
Send code to console | Evaluate javascript block in the browser inspector's console |
Revealable sections | Reveal sections of the page using buttons made from the first title in each section |
Markdown within HTML | Process markdown within HTML blocks - allows custom layout options for individual pages |
Bootstrap JavaScript plugins | Use the Bootstrap JavaScript plugins in your online GitBook |
Piwik Open Analytics | Piwik Open Analytics tracking for your book |
Heading Anchors | Add linkable Github-style anchors to headings |
JSBin | Embedded jsbin frame into your book |
调试
增加环境变量 DEBUG=true
来得到更好的错误信息(包含错误堆栈). 例如:
|
|