【官网】https://www.gitbook.com/
参考:https://chrisniael.gitbooks.io/gitbook-documentation/content/build/ebookconvert.html
GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML、PDF、eBook 等格式的电子书。所以我更喜欢把 GitBook 定义为文档格式转换工具。
GitBook 又与 Markdown 和 Git 息息相关,因为只有将它们结合起来使用,才能将它们的威力发挥到极致!因此,通常我们会选择合适的 Markdown 编辑工具以获得飞一般的写作体验;使用 GitBook 管理文档,预览、制作电子书;同时通过 Git 管理书籍内容的变更,并将其托管到云端(比如 GitHub、GitLab、码云,或者是自己搭建的 Git 服务器),实现多人协作。
实际上,GitBook Editor 对于新手来说是个不错的选择,它集成了 GitBook、Git、Markdown 等功能,还支持将书籍同步到 gitbook.com 网站,使我们可以很方便地编辑和管理书籍。但是不幸的是,GitBook Editor 的注册和登录需要,即便注册成功了也可能登录不上,似乎是因为网站最近在升级。
GitBook + Typora + Git
npm config set registry=http://registry.npm.taobao.org -g
npm install -g gitbook-cli
#或
#cnpm i gitbook -g
1.2安装PDF等格式输出支持【无用步骤】
npm install ebook-convert -g
Typora 下载地址:https://typora.io/
Git 下载地址:https://git-scm.com/downloads
gitbook init
执行完后,你会看到多了两个文件 —— README.md 和 SUMMARY.md,它们的作用如下:
README.md —— 书籍的介绍写在这个文件里
SUMMARY.md —— 书籍的目录结构在这里配置
# 目录
* [前言](README.md)
* [第一章](Chapter1/README.md)
* [第1节:衣](Chapter1/衣.md)
* [第2节:食](Chapter1/食.md)
* [第3节:住](Chapter1/住.md)
* [第4节:行](Chapter1/行.md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)
回到命令行,在 mybook 文件夹中再次执行 gitbook init
命令。GitBook 会查找 SUMMARY.md 文件中描述的目录和文件,如果没有则会将其创建。
执行 gitbook serve
来预览这本书籍,执行命令后会对 Markdown 格式的文档进行转换,默认转换为 html 格式,最后提示 “Serving book on http://localhost:4000”。嗯,打开浏览器看一下吧:
gitbook serve
执行 gitbook build 命令构建书籍:默认将生成的静态网站输出到 _book 目录。实际上,这一步也包含在 gitbook serve 里面,因为它们是 HTML,所以 GitBook 通过 Node.js 给你提供服务了。
gitbook build
建议用老版生成,新版出现不能跳转问题:
gitbook build --gitbook=2.6.7
gitbook build [书籍路径] [输出路径]
gitbook serve --port 2333
gitbook pdf ./ ./mybook.pdf
gitbook epub ./ ./mybook.epub
gitbook mobi ./ ./mybook.mobi
如果生成不了,你可能还需要安装一些工具,比如 ebook-convert。或者在 Typora 中安装 Pandoc 进行导出。
除此之外,别忘了还可以用 Git 做版本管理呀!在 mybook 目录下执行 git init 初始化仓库,执行 git remote add 添加远程仓库(你得先在远端建好)。接着就可以愉快地 commit,push,pull … 啦!
不是程序员的小伙伴可能不太喜欢用命令行,那其实版本管理这部分可以下载安装 Git 或 GitHub 这些客户端程序,在图形界面上操作也是可以完成工作的。
如果是要导出PDF,ePub或者mobi格式的电子书时,需要安装Calibre电子书阅读/管理器和命令行工具,不然可能会报错“EbookError: Error during ebook generation: ‘ebook-convert’”。
【calibre下载】https://pc.qq.com/detail/16/detail_1916.html
https://calibre-ebook.com/download_windows64
下载完成后要配置环境变量,然后再gitbook pdf
;
新版本的gitbook不支持了这个功能
由于点击事件被js代码禁用,所以点击没有反应,但是如果右键,在新窗口/新标签页打开的话是可以跳转的
找到book_book\gitbook\theme.js代码,并修改
if(m)for(n.handler&&
if (m)
for (n.handler && (i = n,
n = i.handler,
o = i.selector),
o && de.find.matchesSelector(Ye, o),
n.guid || (n.guid = de.guid++),
(u = m.events) || (u = m.events = {}),
(a = m.handle) || (a = m.handle = function(t) {
return "undefined" != typeof de && de.event.triggered !== t.type ? de.event.dispatch.apply(e, arguments) : void 0
}
),
t = (t || "").match(qe) || [""],
l = t.length; l--; )
s = Ze.exec(t[l]) || [],
h = g = s[1],
d = (s[2] || "").split(".").sort(),
h && (f = de.event.special[h] || {},
h = (o ? f.delegateType : f.bindType) || h,
f = de.event.special[h] || {},
c = de.extend({
type: h,
origType: g,
data: r,
handler: n,
guid: n.guid,
selector: o,
needsContext: o && de.expr.match.needsContext.test(o),
namespace: d.join(".")
}, i),
(p = u[h]) || (p = u[h] = [],
p.delegateCount = 0,
f.setup && f.setup.call(e, r, d, a) !== !1 || e.addEventListener && e.addEventListener(h, a)),
f.add && (f.add.call(e, c),
c.handler.guid || (c.handler.guid = n.guid)),
o ? p.splice(p.delegateCount++, 0, c) : p.push(c),
de.event.global[h] = !0)
}
gitbook uninstall 3.2.3
指定用老版2.6.7本生成
gitbook build --gitbook=2.6.7
或
gitbook fetch 2.6.7
在这里插入代码片