原文鏈接:https://blog.csdn.net/luckydarcy/article/details/81100704
本文適當(dāng)修改了一部分內(nèi)容于置,對部分可能出現(xiàn)的bug進行了總結(jié)茧吊!
同時希望各位遇到的其他問題還有解決方法都發(fā)到評論區(qū)!
本文從 “是什么”、“為什么”搓侄、“怎么辦”瞄桨、“好不好” 四個維度來介紹 GitBook,帶你從黑暗之中走出來讶踪,get 這種美妙的寫作方式讲婚。
是什么?
在我認識 GitBook 之前俊柔,我已經(jīng)在使用 Git 了筹麸,毋容置疑,Git 是目前世界上最先進的分布式版本控制系統(tǒng)雏婶。
我認為 Git 不僅是程序員管理代碼的工具物赶,它的分布式協(xié)作方式同樣適用于很多場合,其中一個就是寫作(這會是一個引起社會變革的偉大的工具A敉怼)酵紫。所以在我發(fā)現(xiàn) GitBook 之前,實際上我已經(jīng)無數(shù)次想象過它的使用場景了错维。
咋一看 GitBook 的名字奖地,你可能會認為它是關(guān)于 Git 的一本書。而當(dāng)你有所了解之后赋焕,你也許會認為它是一個使用 Git 構(gòu)建電子書的工具参歹。其實不然,GitBook 與 Git 的關(guān)系隆判,就像雷鋒塔和雷鋒那樣犬庇,沒有一點關(guān)系!
實際上侨嘀,GitBook 是一個基于 Node.js 的命令行工具臭挽,支持 Markdown 和 AsciiDoc 兩種語法格式,可以輸出 HTML咬腕、PDF欢峰、eBook 等格式的電子書。所以我更喜歡把 GitBook 定義為<font color="#cc0000">文檔格式轉(zhuǎn)換工具</font>涨共。
所以纽帖,GitBook 不是 Markdown 編輯工具,也不是 Git 版本管理工具煞赢。市面上我們可以找到很多 Markdown 編輯器抛计,比如 Typora哄孤、MacDown照筑、Bear、MarkdownPad、MarkdownX凝危、JetBrains’s IDE(需要安裝插件)波俄、Atom、簡書蛾默、CSDN 以及 GitBook 自家的 GitBook Editor 等等懦铺。
但 GitBook 又與 Markdown 和 Git 息息相關(guān),因為只有將它們結(jié)合起來使用支鸡,才能將它們的威力發(fā)揮到極致冬念!因此,通常我們會選擇合適的 Markdown 編輯工具以獲得飛一般的寫作體驗牧挣;使用 GitBook 管理文檔急前,預(yù)覽、制作電子書瀑构;同時通過 Git 管理書籍內(nèi)容的變更裆针,并將其托管到云端(比如 GitHub、GitLab寺晌、碼云世吨,或者是自己搭建的 Git 服務(wù)器),實現(xiàn)多人協(xié)作呻征。
實際上耘婚,GitBook Editor 對于新手來說是個不錯的選擇,它集成了 GitBook陆赋、Git边篮、Markdown 等功能,還支持將書籍同步到 gitbook.com 網(wǎng)站奏甫,使我們可以很方便地編輯和管理書籍戈轿。但是不幸的是,GitBook Editor 的注冊和登錄需要翻墻阵子,即便注冊成功了也可能登錄不上思杯,似乎是因為網(wǎng)站最近在升級。
因此挠进,我推薦色乾,也是我目前使用的搭配是 GitBook + Typora + Git
。
為什么领突?
通常暖璧,我們最開始學(xué)習(xí)和使用的辦公軟件就是 Word、Excel 和 PowerPoint君旦。這里不是說它們已經(jīng)過時了澎办,不是說 GitBook 能夠替代它們嘲碱。
相反,Microsoft 的辦公軟件很優(yōu)秀并且經(jīng)受了時間的考驗局蚀,但是正因為它功能豐富麦锯,導(dǎo)致稍顯臃腫(二八定律:80%的時間里我們只會只用20%的功能),同時因為它存在以二進制格式保存琅绅、軟件不兼容扶欣、格式不兼容、難以進行版本控制千扶、難以實時分享預(yù)覽料祠、難以多人協(xié)作等短板。而這恰恰是 GitBook + Markdown + Git 的長處澎羞。
簡單來說术陶,GitBook + Markdown + Git 帶來的好處有:
- 語法簡單
- 兼容性強
- 導(dǎo)出方便
- 專注內(nèi)容
- 團隊協(xié)作
所以,如果你和我一樣煤痕,不滿足于傳統(tǒng)的寫作方式梧宫,正在尋找一種令人愉悅的寫作方式,那么該嘗試使用 GitBook 啦摆碉!
當(dāng)然塘匣,GitBook 不是萬能的,當(dāng)我們需要復(fù)雜排版時巷帝,依然需要依托于 Word 等工具忌卤。但不用擔(dān)心,因為我們可以把 Markdown 格式的文檔導(dǎo)出為 Word 格式楞泼,再進一步加工驰徊。
怎么辦?
怎么安裝
當(dāng)你聽了我的慫恿堕阔,并決定嘗試使用 GitBook 的時候棍厂,首先面臨的問題是 —— 如何搭建 GitBook 環(huán)境?
因為 GitBook 是基于 Node.js超陆,所以我們首先需要安裝 Node.js(下載地址:http://nodejs.cn/download/)牺弹,找到對應(yīng)平臺的版本安裝即可。
現(xiàn)在安裝 Node.js 都會默認安裝 npm(node 包管理工具)时呀,所以我們不用單獨安裝 npm张漂,打開命令行,執(zhí)行以下命令安裝 GitBook:
npm install -g gitbook-cli
安裝完之后谨娜,就會多了一個 gitbook 命令(如果沒有航攒,請確認上面的命令是否加了 -g
)。
上面我推薦的是 GitBook + Typora + Git趴梢,所以你還需要安裝 Typora(一個很棒的支持 macOS漠畜、Windows币他、Linux 的 Markdown 編輯工具)和 Git 版本管理工具。戳下面:
- Typora 下載地址:https://typora.io/
- Git 下載地址:https://git-scm.com/downloads
Typora 的安裝很簡單盆驹,難點在于需要翻墻才能下載(當(dāng)然你也可以找我要)圆丹。Git 的安裝也很簡單滩愁,但要用好它需要不少時間躯喇,這里就不展開了(再講下去怕你要跑啦~)。
怎么使用
想象一下硝枉,現(xiàn)在你準(zhǔn)備構(gòu)建一本書籍廉丽,你在硬盤上新建了一個叫 mybook 的文件夾,按照以前的做法妻味,你會新建一個 Word 文檔正压,寫上標(biāo)題,然后開始巴滋巴滋地筆耕责球。但是現(xiàn)在有了 GitBook焦履,你首先要做的是在 mybook 文件夾下執(zhí)行以下命令:
gitbook init
執(zhí)行完后,你會看到多了兩個文件 —— README.md 和 SUMMARY.md雏逾,它們的作用如下:
- README.md —— 書籍的介紹寫在這個文件里
- SUMMARY.md —— 書籍的目錄結(jié)構(gòu)在這里配置
這時候嘉裤,我們啟動恭候多時的 Typora 來編輯這兩個文件了:
編輯 SUMMARY.md 文件,內(nèi)容修改為:
# 目錄
* [前言](README.md)
* [第一章](Chapter1/README.md)
* [第1節(jié):衣](Chapter1/衣.md)
* [第2節(jié):食](Chapter1/食.md)
* [第3節(jié):住](Chapter1/住.md)
* [第4節(jié):行](Chapter1/行.md)
* [第二章](Chapter2/README.md)
* [第三章](Chapter3/README.md)
* [第四章](Chapter4/README.md)
然后我們回到命令行栖博,在 mybook 文件夾中再次執(zhí)行 gitbook init
命令屑宠。GitBook 會查找 SUMMARY.md 文件中描述的目錄和文件,如果沒有則會將其創(chuàng)建仇让。
Typora 是所見即所得(實時渲染)的 Markdown 編輯器典奉,這時候它是這樣的:
接著我們執(zhí)行 gitbook serve .
來預(yù)覽這本書籍,執(zhí)行命令后會對 Markdown 格式的文檔進行轉(zhuǎn)換丧叽,默認轉(zhuǎn)換為 html 格式卫玖,最后提示 “Serving book on http://localhost:4000”。嗯踊淳,打開瀏覽器看一下吧:
當(dāng)你寫得差不多骇笔,你可以執(zhí)行 gitbook build
命令構(gòu)建書籍,默認將生成的靜態(tài)網(wǎng)站輸出到 _book 目錄嚣崭。實際上笨触,這一步也包含在 gitbook serve .
里面,因為它們是 HTML雹舀,所以 GitBook 通過 Node.js 給你提供服務(wù)了芦劣。
當(dāng)然,build 命令可以指定路徑:
gitbook build [書籍路徑] [輸出路徑]
serve 命令也可以指定端口:
gitbook serve . --port 2333
你還可以生成 PDF 格式的電子書:
gitbook pdf ./ ./mybook.pdf
生成 epub 格式的電子書:
gitbook epub ./ ./mybook.epub
生成 mobi 格式的電子書:
gitbook mobi ./ ./mybook.mobi
如果生成不了说榆,你可能還需要安裝一些工具虚吟,比如 ebook-convert寸认。或者在 Typora 中安裝 Pandoc 進行導(dǎo)出串慰。
除此之外偏塞,別忘了還可以用 Git 做版本管理呀!在 mybook 目錄下執(zhí)行 git init
初始化倉庫邦鲫,執(zhí)行 git remote add
添加遠程倉庫(你得先在遠端建好)科盛。接著就可以愉快地 commit酬核,push被冒,pull … 啦惶楼!
不是程序員的小伙伴可能不太喜歡用命令行,那其實版本管理這部分可以下載安裝 Git 或 GitHub 這些客戶端程序滔以,在圖形界面上操作也是可以完成工作的捉腥。
好不好?
額… 你覺得好不好嘛你画?
反正我覺得挺好的抵碟,特別是對我這種懶得排版,又想隨時隨地寫作的寶寶來說坏匪。而且能夠查看每個版本內(nèi)容變更的情況拟逮,同時又避免了硬盤單一故障帶來的風(fēng)險。
使用過程中的報錯與解決
步驟:
shell npm install -g gitbook-cli
- gitbook init
- 接著我們執(zhí)行 gitbook serve . 來預(yù)覽這本書籍
- gitbook build
error:
Thrown:
shell npm install -g gitbook-cli
^^^
SyntaxError: Unexpected identifier
- gitbook : 無法加載文件 C:\Users\13365\AppData\Roaming\npm\gitbook.ps1剥槐,因為在此系統(tǒng)上禁止運行腳本唱歧。有關(guān)詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies粒竖。
Error: ENOENT: no such file or directory, stat 'C:\Users\13365\Documents\my_book\_book\gitbook\gitbook-plugin-livereload\plugin.js'
- 使用gitbook build命令生成html之后颅崩,本地html只能起了服務(wù)器之后才能正常跳轉(zhuǎn)
解決:
-
shell npm install -g gitbook-cli
應(yīng)在命令行執(zhí)行 - https://cloud.tencent.com/developer/article/1007688
gitbook serve .
- 解決1. https://segmentfault.com/q/1010000012724784;2. https://www.zhihu.com/question/62727687
推薦:
在Linux上安裝gitbook:http://www.reibang.com/p/ec1e7d2c76c6