每個程序員都會進行個人知識管理,我自己在個人wiki上經歷過幾個階段:
最開始使用在線筆記,后來不用.一是習慣了vim,可視化后按鍵別扭; 二是使用筆記容易copy/paste,自己整理的少,懶.
使用vim+vimwiki插件.后來不用,一是那時候vimwiki還不支持markdown,而是使用特定語法;二是vimwiki生成html頁面,效果看個人的css,而前端正式我的弱項,所以我的頁面很難看.
使用gitpage+jekyll+markdown.很多人用這個承載blog,開始的時候是把wiki直接放到這個上,但是很多雜亂的草稿直接公開不是太好。而且jekyll沒有toc,搜索上不是很好。最后只有自己的blog還用這個.就是現在這個網站。
現階段, gitbook來維護自己的wiki。實際上gitbook就是用git+markdown來編寫書籍的解決方案。效果是這個樣子:
為什么選擇gitbook做wiki管理
三個理由:
系統性。gitbook是適合寫書的,寫書需要系統性,所以gitbook有左側的目錄欄。wiki往往是片段的,所以系統性非常重要。TOC是個人選擇gitbook的最重要的因素。
書寫上,markdown+git天生適合程序員,高效便利。
gitbook展示非常好,html,pdf都可以,上面的圖就可以看出來,而且還提供搜索。
gitbook-server可以將文檔目錄轉換成html網站,或者pdf等.
軟件包方式安裝
On Ubuntu14.04
sudo apt-getinstallnodejssudo apt-getinstallnpmsudo npminstall-g gitbook-cliapt-getinstallnodejs-legacy
通過docker使用gitbook-server
docker pull billryan/gitbookdocker run-d-v"$PWD:/gitbook"-p4000:4000billryan/gitbook gitbook? serve --watch
gitbookserve .# 更多信息查看幫助信息gitbook --help
準備文件和目錄
mkdir gitbook-democdgitbook-demomkdir chapter1touch? chapter1/{readme,1,2}.mdtouch README.mdechotest> README.md
編寫目錄
vim SUMMARY.md*[前言](README.md)*[第一章](chapter1/readme.md)? * [第一節](chapter/1.md)? * [第二節](chapter/2.md)
SUMMARY.md是目錄文件,gitbook生成網頁左側的目錄就是SUMMARY.md文件中記錄的.
運行gitbook server
gitbookserve . --port8888
非常簡單吧,這樣我們就可以專注于內容了。
上面介紹的是本地使用gitbook-server。還可以使用gitbook.com的服務,支持一本私有圖書,無限公開圖書,可以和github聯動,只要將代碼提交到github,gitbook網站會自動的生成,可是國內的訪問速度基本無法使用。
還有個工具是gitbook-editor,可視化的markdown編輯工具,gitbook.com提供,做了深度集成。不怎么推薦使用,目前不太好用,而且markdown就是為了編寫時不考慮展示,用了可視化工具,感覺效率不怎么高了。
使用docker運行gitbook-server非常方便。gitlab+jenkins+docker(gitbook-server)可以非常便捷地提供研發文檔解決方案。只要開發人員想代碼一樣提交變更,文檔就自動生成了,目前我們組就是采用了這套方案,效果很好。形成了文檔的CICD,質量很好。