本文目錄
nodejs高于6.0版本要安裝gitbook3.2.3版本以上扇调,否則會(huì)有問(wèn)題
1抢肛、Gitbook 簡(jiǎn)介
1.1 Gitbook
GitBook 是一個(gè)基于 Node.js 開發(fā)的命令行工具狼钮,使用它可以很方便的管理電子書,GitBook 是目前最流行的開源書籍寫作方案捡絮。
使用 GitBook 可以讓創(chuàng)作者專注寫作,自由的揮灑福稳,不必太多的關(guān)心內(nèi)容排版、發(fā)布和版本管理等問(wèn)題半火。
除了通過(guò) GitBook 命令行管理電子書外,還可以在線或者使用桌面編輯器 Gitbook Editor 來(lái)編寫和管理電子書种玛。
對(duì)于新手來(lái)說(shuō),推薦使用 Gitbook Editor 來(lái)編寫和管理電子書挠蛉,因?yàn)樗闪?GitBook 命令祭示、Markdown 編器和 Git 的功能,內(nèi)容通過(guò) Git 可與 gitbook.com / Gitlab / GitHub 同步谴古,方便版本管理和團(tuán)隊(duì)協(xié)作质涛。
可對(duì)于程序員或熟悉 Git 和 Markdown 的人,更推薦使用 GitBook 命令行 + Typora + SourceTree 來(lái)編寫和管理電子書掰担。使用專業(yè)工具做專業(yè)的事汇陆,比 Gitbook Editor 高效很多。
GitBook 是開源的带饱。
1.2 GitBook 功能
- 支持 Markdown 或 AsciiDoc 語(yǔ)法毡代。
- 可導(dǎo)出靜態(tài)站點(diǎn)或電子書(PDF、epub勺疼、mobi)教寂。
- 支持多語(yǔ)言。
- 可設(shè)置封面执庐。
- 支持變量酪耕、模板和模板繼承。
- 有豐富的插件轨淌。
1.3 GitBook 的工具組合
- Node.js:為了使用 npm 安裝 GitBook迂烁,一定要先安裝 Node.js。
- GitBook 命令:基于 Node.js 開發(fā)的命令行工具猿诸,用于創(chuàng)建和管理電子書婚被。
- Markdown:GitBook 使用 Markdown 來(lái)寫作,作者再也不用擔(dān)心排版了梳虽。
- Git:GitBook 使用 Git 管理寫作內(nèi)容址芯,方便多人協(xié)作和版本管理。
- Github/Gitlab:跟代碼一樣,寫作的內(nèi)容可以托管在 Github 或 Gitlab 中谷炸。
- gitbook.com:用于在線編寫北专、發(fā)布和托管電子書的網(wǎng)站。
1.4 GitBook 的使用場(chǎng)景
- 搭建公司內(nèi)部的文檔平臺(tái)旬陡,用于公司內(nèi)部的資料共享拓颓。
- 發(fā)表開源的電子書,用于在互聯(lián)網(wǎng)上共享自己的知識(shí)描孟,普惠大眾驶睦。
2、Gitbook 環(huán)境配置
2.1 安裝 Node.js
- 因?yàn)?GitBook 是使用 Node.js 開發(fā)的匿醒,需要通過(guò) Node.js 包管理工具 NPM 安裝场航,所以在開始之前要先把 Node.js 安裝好。
2.2 安裝 GitBook
-
使用 NPM 安裝 GitBook 的命令行工具廉羔。
$ sudo npm install gitbook-cli -g
-
安裝完成后查看 GitBook 的版本溉痢。
$ gitbook --version
-
更新 GitBook 命令。
$ npm update gitbook-cli -g
-
卸載 GitBook 命令憋他。
$ sudo npm uninstall gitbook-cli -g
-
注意:
-
本例中使用的是全局安裝 GitBook 命令孩饼,還有一種安裝方式是本地安裝,兩種方式有什么不同呢竹挡?
- 本地安裝:安裝包會(huì)被下載到當(dāng)前所在目錄镀娶,因此只能在當(dāng)前目錄下使用。
- 全局安裝:安裝包會(huì)被下載到到特定的系統(tǒng)目錄下揪罕,安裝包能夠在所有目錄下使用汽畴。
-
例如,查看 macOS 下全局安裝被安裝到了哪里耸序?
$ which gitbook /usr/local/bin/gitbook
- GitBook 被安裝到了 /usr/local/bin/ 目錄下忍些,因此可以全局使用。
-
2.3 快速開始 GitBook
-
1)初始化 GitBook
# 創(chuàng)建 mygitbook 文件夾坎怪,并切換到這個(gè)文件夾下面 $ mkdir mygitbook && cd mygitbook # 初始化 gitbook 工作目錄罢坝,創(chuàng)建必要的文件 $ gitbook init warn: no summary file in this book info: create README.md info: create SUMMARY.md info: initialization is finished
-
然后會(huì)初始化 GitBook 目錄,創(chuàng)建兩個(gè) md 格式的文件 README.md 和 SUMMARY.md
- README.md - 項(xiàng)目的介紹都寫在這個(gè)文件里搅窿。
- SUMMARY.md - GitBook 的目錄結(jié)構(gòu)在這里配置嘁酿。
-
-
2)定義目錄結(jié)構(gòu)
-
兩種方法
-
在 SUMMARY.md 文件中定義目錄結(jié)構(gòu)有兩種方法。
方法 ?. 先定義好目錄結(jié)構(gòu)男应,通過(guò)
gitbook init
自動(dòng)生成目錄結(jié)構(gòu)對(duì)應(yīng)的文件夾和 Markdown 文件闹司。方法 ?. 先創(chuàng)建好文件夾和 Markdown 文件再來(lái)編輯目錄結(jié)構(gòu)。
-
-
SUMMARY.md
-
SUMMARY.md 的目錄結(jié)構(gòu)長(zhǎng)什么樣沐飘?看下面:
# Summary * [項(xiàng)目簡(jiǎn)介](README.md) * [快速開始](docs/快速開始.md) * [環(huán)境搭建](docs/環(huán)境搭建.md) * [簡(jiǎn)單使用](docs/簡(jiǎn)單使用.md) * [學(xué)入學(xué)習(xí)](docs/深入學(xué)習(xí))
-
-
這個(gè)目錄建好以后在根目錄下執(zhí)行命令:
$ gitbook init
-
那些沒(méi)有的目錄和文件都會(huì)被創(chuàng)建:
info: create docs/快速開始.md info: create docs/環(huán)境搭建.md info: create docs/簡(jiǎn)單使用.md info: create docs/深入學(xué)習(xí).md info: create SUMMARY.md info: initialization is finished
-
gitbook init
只支持生成兩級(jí)目錄游桩。
-
-
-
3)啟動(dòng)服務(wù)
-
在根目錄執(zhí)行命令:
$ gitbook serve
-
結(jié)果:
Live reload server started on port: 35729 Press CTRL+C to quit ... info: 7 plugins are installed info: loading plugin "livereload"... OK info: loading plugin "highlight"... OK info: loading plugin "search"... OK info: loading plugin "lunr"... OK info: loading plugin "sharing"... OK info: loading plugin "fontsettings"... OK info: loading plugin "theme-default"... OK info: found 5 pages info: found 0 asset files info: >> generation finished with success in 1.9s ! Starting server ... Serving book on http://localhost:4000 # 注意瀏覽地址
-
執(zhí)行
gitbook serve
命令后牲迫,會(huì)先編譯書籍 gitbook build,如果沒(méi)有問(wèn)題會(huì)打開一個(gè) Web 服務(wù)器借卧,默認(rèn)監(jiān)聽(tīng) 4000 端口盹憎。如果編譯有問(wèn)題,會(huì)拋出錯(cuò)誤信息铐刘。
-
-
4)查看效果
-
用瀏覽器打開 http://localhost:4000/ 或 http://127.0.0.1:4000/ 查看顯示書籍的效果陪每。
image 如果想發(fā)給別人看,把 localhost 換成自己電腦的 IP 地址镰吵。
-
gitbook新版本"gitbook build"命令導(dǎo)出的html不能跳轉(zhuǎn)的解決辦法
gitbook是一個(gè)很好用的工具檩禾,但是呢,我裝了好幾個(gè)版本疤祭,老是出現(xiàn)這個(gè)問(wèn)題锌订,于是請(qǐng)教周圍的前端大神,大神提出了解決方法画株,這個(gè)問(wèn)題倒是可以暫時(shí)解決,具體一勞永逸的做法還沒(méi)找到啦辐,誰(shuí)知道了谓传,別忘了告訴我一聲啊芹关!
可能原因
新版本的gitbook不支持了這個(gè)功能
具體原因
由于點(diǎn)擊事件被js代碼禁用续挟,所以點(diǎn)擊沒(méi)有反應(yīng),但是如果右鍵侥衬,在新窗口/新標(biāo)簽頁(yè)打開的話是可以跳轉(zhuǎn)的
解決辦法
找到j(luò)s代碼诗祸,并修改
找到項(xiàng)目目錄gitbook
找到目錄下的theme.js文件
找到下面的代碼
將if(m)改成if(false)
由于代碼是壓縮后的,會(huì)沒(méi)有空格轴总,搜索的時(shí)候可以直接搜索: 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)
}
完成修改
保存直颅,測(cè)試可用