一、初衷
身為一名學(xué)計算機出身的工科背景從業(yè)者,在寫作上一直鐘情于Markdown,截至目前發(fā)現(xiàn)最好用的編輯器是Typora,它憑借簡潔、流暢的書寫體驗,讓人愛不釋手。隨著近些年寫作需求越來越多,筆者一直希望能夠找到一個良好支持Markdown的筆記平臺,用以管理自己的輸出,因此開始調(diào)研一些成熟的產(chǎn)品,先后包括:
以上各筆記的對比分析可參考如下文章
《2020年最好用的云筆記軟件推薦》
搜羅完一圈兒后發(fā)現(xiàn),好用的太貴,不花錢的又總是在一些關(guān)鍵方面顯得不足,例如:OneNote依賴翻墻、SimpleNote不能放圖片等等。
糾結(jié)困惑之余,筆者突然想到,難道不能把Typora跟其他的工具結(jié)合起來,一同打造一個個人寫作平臺嗎?
帶著問題再經(jīng)過一輪搜索后,最終鎖定了Typora+Gitbook+NAS的解決方案。
二、解決方案簡介
整個解決方案由三部分內(nèi)容構(gòu)成:
-
Typora:編輯工具
Typora是一款十分值得安利的Markdown格式文本編輯器,它憑借實時預(yù)覽、多平臺支持、便捷的素材插入,以及諸多交互細節(jié)上的完美考量,較其他編輯器能帶來更舒服的書寫體驗,因此深受眾多用戶的喜歡。
Typora界面 Gitbook:圖書構(gòu)建及發(fā)布管理工具
Git是目前世界上公認的最先進的分布式版本控制系統(tǒng)。乍眼一看,好像Gitbook跟Git是類似的工具,但實際上,Gitbook是一個基于Node.js的開源命令行工具,它可以實現(xiàn)對Markdown文檔的有序組織和格式轉(zhuǎn)化,即可以將Markdown文檔組織成冊,也可以將Markdown文檔轉(zhuǎn)化為HTML、PDF、eBook等格式。Git/NAS:版本管理工具【可選】
Git就不必多講。NAS準確來說的話是網(wǎng)絡(luò)存儲器的統(tǒng)稱,現(xiàn)在也常常被用作個人云的代名詞。如果是個人的話,NAS的存儲能力以及版本管理能力就足夠滿足需要。當(dāng)然,如果你想把寫的文檔存儲在個人電腦上,并能夠很好的手動管理的話,其實Git和NAS都可以不需要。
三、搭建(以Mac為例)
版本信息:
系統(tǒng)版本:MacOS Mojave 10.14.6
Node:v12.16.1
Npm:v6.13.4
Nvm:v0.35.3
GitBook CLI version:v2.3.2
GitBook version:v3.2.3
1、安裝Typora
下載地址:https://www.typora.io/
根據(jù)系統(tǒng)類型,選擇不同的安裝包,目前支持Mac、Windows和Linux三個平臺。
2、安裝Gitbook
- 安裝Node.js
如果系統(tǒng)已經(jīng)安裝brew,可以通過以下方式安裝Nodejs
$ brew install node
也可以前往官網(wǎng)下載安裝包
https://nodejs.org/en/

Node.js安裝成功后,在命令行可通過以下方式查詢到版本信息:
$ node -v #查詢node版本
v12.16.1 #顯示結(jié)果
$ npm -v #查詢npm版本
6.13.4 #顯示結(jié)果
- 安裝Nvm
Nvm是Mac系統(tǒng)下比較推薦的Node版本管理工具,用于切換Node的不同版本。
$ brew install nvm
安裝成功后,可以通過如下方式查看目前Node的版本配置信息:
$ nvm ls #查詢node配置情況
-> system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
- 切換Node版本
基于高版本的Node安裝Gitbook v3.2.3,會在創(chuàng)建的文檔實例轉(zhuǎn)換成HTML后,出現(xiàn)目錄無法點擊跳轉(zhuǎn)的情況,解決的辦法就是將Node降級到v6.16.0版本后再安裝Gitbook。
$ nvm install 6.16.0
$ nvm use 6.16.0
$ nvm ls
v6.16.0
-> system
node -> stable (-> v6.16.0) (default)
stable -> 6.16 (-> v6.16.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/ * -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.19.0 (-> N/A)
lts/erbium -> v12.16.1 (-> N/A)
- 安裝Gitbook
當(dāng)Node版本切換完成后,執(zhí)行如下命令安裝Gitbook
$ sudo npm install -g gitbook-cli
/usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook-cli/bin/gitbook.js
+ gitbook-cli@2.3.2
added 578 packages from 672 contributors in 11.621s
$ gitbook init
Installing GitBook 3.2.3
...
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished
至此,如果沒有出現(xiàn)問題的話,那么整個搭建過程算是順利完成。接下來就可以體驗以下如何利用Gitbook來管理Markdown文檔了。
四、使用
下面就以一個小例子,演示一下如何通過Typora和Gitbook來創(chuàng)建你的文檔。
1、創(chuàng)建文檔目錄并初始化
我們按照如下指令,在桌面新建一個測試目錄TestBook,進入該目錄后,通過Gitbook初始化得到README和SUMMARY兩個基礎(chǔ)文件。這樣,TestBook就變成了一個文檔集,或更直白點說,它就是一本書。README像是書的序言,而SUMMARY則是書的目錄。
$ cd ~/Desktop/
$ mkdir TestBook
$ cd TestBook
$ gitbook init
warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished
2、編輯文檔大綱并重新構(gòu)建
用Typora打開TestBook,可以看到如下內(nèi)容

按照如下內(nèi)容編輯TestBook的文檔大綱
# Summary
* [什么是5W2H](README.md)
* [Part I:5W](part1/README.md)
* [What](part1/what.md)
* [Why](part1/why.md)
* [Who](part1/who.md)
* [When](part1/when.md)
* [Where](part1/where.md)
* [Part II:2H](part2/README.md)
* [How](part2/how.md)
* [How much](part2/howmuch.md)
然后再使用Gitbook對TestBook進行初始化,生成大綱列出的各個md文件和子目錄
$ gitbook init
info: create part1/README.md
info: create part1/what.md
info: create part1/why.md
info: create part1/who.md
info: create part1/when.md
info: create part1/where.md
info: create part2/README.md
info: create part2/how.md
info: create part2/howmuch.md
info: create SUMMARY.md
info: initialization is finished
構(gòu)建完成后,發(fā)現(xiàn)TestBook下的目錄結(jié)構(gòu)是這樣的
TestBook
├── README.md
├── SUMMARY.md
├── part1/
| ├── README.md
| ├── what.md
| ├──why.md
| ├──who.md
| ├──when.md
| └── where.md
└── part2/
├── README.md
├── how.md
└── howmuch.md
3、啟動服務(wù)通過瀏覽器查看文檔
對文檔目錄下的md文件分別進行編輯后,可執(zhí)行如下命令生成html格式的文檔并查看
# 構(gòu)建過程
$ gitbook build
info: 7 plugins are installed
info: 6 explicitly listed
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 10 pages
info: found 0 asset files
info: >> generation finished with success in 0.6s !
# 服務(wù)啟動過程
$ gitbook serve
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 10 pages
info: found 0 asset files
info: >> generation finished with success in 0.6s !
Starting server ...
Serving book on http://localhost:4000
最后,打開瀏覽器,輸入http://localhost:4000便可以訪問文檔了。

