想搭建一個 gitbook,可以導(dǎo)出到本地恬砂,用瀏覽器打開 index.html就可以打開整本書,然后可以點擊左邊的目錄來選擇閱讀的那種蓬痒,但是卻踩了很多坑泻骤。
??1、一開始安裝 gitbook-cli 報錯梧奢,找來找去發(fā)現(xiàn)是 nodejs 版本太高的問題狱掂,降到 node10 解決了安裝問題;
??2亲轨、后來又發(fā)現(xiàn) gitbook build 出來的書籍點擊目錄不能跳轉(zhuǎn)趋惨,根據(jù)網(wǎng)上的答案去修改 theme.js 文件,然后能點擊了惦蚊,但這樣做有兩個問題器虾,問題一,每次 build 后都要去修改theme.js文件蹦锋,麻煩兆沙,問題二,點擊一級目錄比如[Introduction](README.md)莉掂,會跳轉(zhuǎn)到所在文件夾下的文件目錄葛圃,視覺上太不友好,不夠完美巫湘。問題找來找去發(fā)現(xiàn)是gitbook3.0.0以上就開始不支持本地書籍目錄跳轉(zhuǎn)了装悲,所以要用gitbook 2.6.9之類的來build。
??3尚氛、但是用gitbook 2.6.9來build又報錯诀诊。找來找去,發(fā)現(xiàn)是node版本沒對應(yīng)上導(dǎo)致阅嘶,要切換到node6版本的環(huán)境下才能用gitbook 2.6.9 來 build属瓣。
??4载迄、到此build出來的靜態(tài)書籍不用修改theme.js文件就能點擊目錄跳轉(zhuǎn),而且點擊一級目錄無異常抡蛙,完美了护昧。
gitbook是一個基于Node.js的命令行工具,所以要先安裝Node.js粗截,Node.js都會默認安裝npm(node包管理工具)
0惋耙、安裝nvm 【我的是Mac電腦】
nvm:node.js version management,nodejs版本管理器熊昌≌篱唬可以很方便的安裝、切換 nodejs 版本婿屹。
在安裝gitbook-cli和gitbook build的時候需要用nvm切換nodejs版本灭美。
安裝nvm方法:
方法一【我用的這個】: brew install nvm , 根據(jù)提示手動添加?xùn)|西到 ~/. bash_profile中昂利,然后source ~/. bash_profile
届腐。
方法二. 官方方法:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
或wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
;
然后添加以下到~/. bash_profile文件:export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
蜂奸。
檢查安裝情況:
nvm -v // nvm版本號為 0.37.2
// 選用
nvm ls // 列出本地已安裝好的nodejs版本
nvm use 6 // 全局切換版本犁苏,若提示還未安裝nodejs v6,則install
nvm install 6 // 或者nvm install v10.23.0
nvm current // 查看當(dāng)前使用的node版本
nvm ls-remote // 遠程可以安裝的所有node版本號
1窝撵、下載安裝nodejs(安裝后就可以用npm)
gitbook build書籍的時候傀顾,推薦用node6版本
,這樣出來的書籍點擊目錄能跳轉(zhuǎn)碌奉;
安裝gitbook的時候短曾,推薦用node10版本
,至于用node6會怎樣沒試過赐劣;
所以兩個版本都安裝下吧嫉拐。
nvm ls // 查看本地是否有node6/10版本,若無則安裝魁兼,如下
nvm install 6
nvm install 10
安裝gitbook時候婉徘,node版本超過 V10版本 ,則會報錯找不到方法咐汞,大概是:TypeError: cp.apply is not a function盖呼,不太清除了。
檢查安裝情況:
nvm ls
nvm current
node -v // v10.23.0
npm -v // 6.14.8
2化撕、安裝 gitbook-cli 【cli:命令行】
推薦用下面命令行安裝几晤,方便,注意切換nodejs版本到V10版本植阴,也可試試用node6蟹瘾。也可參考 npm 中搜索gitbook圾浅,看如何安裝。
nvm use 10 // 切換nodejs版本憾朴,方便順利安裝gitbook-cli
// npm search gitbook-cli
npm install -g gitbook-cli // -g全局狸捕,安裝命令行版gitbook-cli
// npm install -g gitbook-cli@2.3.2 --save-dev //安裝指定版本的命令行版gitbook-cli
gitbook -V //查看版本號,看是否安裝成功
gitbook fetch 2.6.9 // 再安裝2.6.9众雷,用該版本build出來的書籍點擊目錄可以跳轉(zhuǎn)
gitbook ls
【選讀】查看遠程有哪些gitbook版本可以安裝
gitbook ls-remote
【選讀】安裝指定版本gitbook - 貌似要翻墻
gitbook fetch 2.6.9
【選讀】查看gitbook當(dāng)前版本:
gitbook -V
//CLI version: 2.3.2
//GitBook version: 3.2.3
【選讀】查看本機gitbook都安裝了哪些版本
gitbook ls
//* 3.2.3
// 2.6.9
// 2.6.7
【選讀】卸載指定gitbook版本
gitbook uninstall 3.2.3
3灸拍、用npm下載安裝gitbook插件
比如,生成目錄的插件:gitbook-plugin-summary
砾省,在 npm 中搜索并根據(jù)提示安裝
npm i gitbook-plugin-summary --save
筆記文件夾下的book.json文件株搔,沒有就自己創(chuàng)建一個,添加如下代碼:
{ "plugins": ["summary"] }
npm用法:
- npm搜索模塊
*【npm search xxx】要翻墻纯蛾,要么直接上www.npmjs.com 搜索; - npm安裝模塊
*【npm install xxx】利用 npm 安裝xxx模塊到當(dāng)前命令行所在目錄纵隔;
*【npm install -g xxx】利用npm安裝全局模塊xxx翻诉;
*【npm install xxx@3.21.2】npm安裝指定版本的包; - 本地安裝時將模塊寫入package.json中:
*【npm install xxx】安裝但不寫入package.json捌刮;
*【npm install xxx –save】 安裝并寫入package.json的”dependencies”中碰煌;
*【npm install xxx –save-dev】安裝并寫入package.json的”devDependencies”中。 - npm 刪除模塊
【npm uninstall xxx】刪除xxx模塊绅作;
【npm uninstall -g xxx】刪除全局模塊xxx芦圾;
4、安裝MarkDown編輯工具
安裝markdown編輯工具 typora俄认,或者用別的MarkDown編輯工具个少。
5、在文件夾中初始化
cd 到要創(chuàng)建gitbook的文件夾下
gitbook init
執(zhí)行完后眯杏,如果文件夾里沒有這兩個文件夜焦,會自動生成:
README.md(書籍的介紹在這個文件里)
SUMMARY.md(書籍的目錄結(jié)構(gòu)在這里配置)。
6岂贩、SUMMARY.md
# Summary
* [Introduction](README.md)
* [Read](Read/README1.md)
* [1. 季節(jié)](季節(jié)/ReadMe2.md)
* [1.1 春](季節(jié)/section0.md)
* [1.2 夏](季節(jié)/section1.md)
* [2. 城市](城市/ReadMe3.md)
* [1.1 北京](城市/section0.md)
* [1.2 上海](城市/section1.md)
7茫经、book.json : 配置文件
編輯 book.json 后,執(zhí)行 gitbook install ./
安裝萎津。
注意"gitbook": "3.2.3"
這一對key/value卸伞,改成2.6.7或2.6.9,build的時候要跟 --gitbook=2.6.9 對應(yīng)的上锉屈,否則gitbook版本對應(yīng)不上荤傲,會build失敗。
book.json參考:
{
"title": "opencv",
"output.name": "site",
"language": "zh-hans",
"gitbook": "2.6.9", // gitbook版本
"root": ".",
"plugins": [
"code",
"splitter",
"chapter-fold",
"-summary"
],
"pluginsConfig": {
"code": {
"copyButtons": true
}
}
}
{
"title": "Blankj's Glory",
"author": "Blankj",
"description": "select * from learn",
"language": "zh-hans",
"gitbook": "3.2.3", // gitbook版本可以修改
"styles": {
"website": "./styles/website.css"
},
"structure": {
"readme": "README.md"
},
"links": {
"sidebar": {
"我的狗窩": "https://blankj.com"
}
},
"plugins": [
"-sharing",
"splitter",
"expandable-chapters-small",
"anchors",
"github",
"github-buttons",
"donate",
"sharing-plus",
"anchor-navigation-ex",
"favicon"
],
"pluginsConfig": {
"github": {
"url": "https://github.com/Blankj"
},
"github-buttons": {
"buttons": [{
"user": "Blankj",
"repo": "glory",
"type": "star",
"size": "small",
"count": true
}
]
},
"donate": {
"alipay": "./source/images/donate.png",
"title": "",
"button": "贊賞",
"alipayText": " "
},
"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": [
"google", "facebook", "weibo", "twitter",
"qq", "qzone", "linkedin", "pocket"
]
},
"anchor-navigation-ex": {
"showLevel": false
},
"favicon":{
"shortcut": "./source/images/favicon.jpg",
"bookmark": "./source/images/favicon.jpg",
"appleTouch": "./source/images/apple-touch-icon.jpg",
"appleTouchMore": {
"120x120": "./source/images/apple-touch-icon.jpg",
"180x180": "./source/images/apple-touch-icon.jpg"
}
}
}
}
8部念、gitbook init
SUMMARY.md改動后弃酌,需要 gitbook init氨菇,生成對應(yīng)的文件
9、發(fā)布
gitbook serve
根據(jù)提示在瀏覽器中輸入 http://localhost:4000
即可瀏覽
10妓湘、導(dǎo)出書籍
build時用 --gitbook=2.6.7或2.6.9查蓉,對應(yīng)的nodejs切換到V6,這樣生成書籍點擊目錄可以跳轉(zhuǎn)榜贴。
// 對應(yīng)gitbook2.6.7和2.6.9
nvm use 6
// 解決點擊目錄不能跳轉(zhuǎn)
gitbook build --gitbook=2.6.9 書籍路徑 輸入路徑
//gitbook build 書籍路徑 輸入路徑
build結(jié)束后豌研,nvm再切換回原來版本:
nvm use 10
11、 解決gitbook目錄不能跳轉(zhuǎn)的問題:
按照上面的走唬党,應(yīng)該不會有不能跳轉(zhuǎn)的問題鹃共。
如果build用的gitbook版本大于3.0.0,生成的靜態(tài)書籍驶拱,點擊目錄會無法跳轉(zhuǎn)霜浴。因為從 3.0.0 版起, gitbook build 生成的 website 就不支持 local 打開了, 必需要 webserver 開啟,實在要完全靜態(tài)的, 就用 2.6.7或2.6.9 版吧( 在有些瀏覽器下估計不太完美 )
解決方案1:【推薦】gitbook build --gitbook=2.6.7或2.6.9蓝纲,對應(yīng)的 nodejs 切換到V6;
解決方案2:【不推薦】build時gitbook版本大于3.0.0的情況阴孟,修改theme.js代碼 :打開theme.js文件,搜索if(m)for(n.handler&&税迷,把m修改為false即可永丝。每次 build 后都要修改,而且一級欄目點擊后跳到文件夾層面箭养,用戶體驗不好慕嚷。