使用 github, gitbook, markdown 寫部落格/寫書

s1mba發表於2016-08-08

        Github 是基於 開原始碼管理工具 Git 的一個程式碼託管平臺。Gitbook 是一個命令列工具,可以把你的 Markdown 檔案彙整合電子書,並提供PDF等多種格式輸出。你可以把Gitbook 生成的HTML釋出出來,就形成了一個簡單的靜態網站。Gitbook還有一個同名的平臺(gitbook.io),可以釋出和銷售電子書。Gitbook 其實跟 Git/Github 沒啥關係,但可以通過繫結Github 的專案而達到 push Github 時同時更新到 gitbook.io 的效果。

       首先我們需要有個域名,比如之前隨手買的一個 fxnotes.net,我們在域名提供商比如 godaddy 上面設定下 DNS 解析伺服器,比如 設定為國內的 dnspod:f1g1ns1.dnspod.net   f1g1ns2.dnspod.net 。

       有了域名我們還需要個ip(主機儲存空間),如果購買國內雲伺服器提供商的主機,我們需要做域名備案,很是麻煩(或者買個vps)。對此可以把域名解析到 xxx.github.io(xxx 為 Github 使用者名稱),當然目錄就只能存一些靜態 HTML 檔案了。

現在我們到了 dnspod 控制檯,如下圖配置,將 www cname 到 xxx.github.io,且設定兩條 A 記錄到 Github 提供的 ip 上:

此時我們通過瀏覽器訪問 fxnotes.net 會直接訪問到 github.io 對應的某臺伺服器上面去,但Github 還不存在對應的專案,故建立一個 xxx.github.io 的 repo,在 repo 下建一個檔名為 cname 的檔案,寫上 fxnotes.net,並隨便建一個 index.html 寫幾個字,訪問一下,是不是看到了那幾個字?

       進一步地,如果我們將搭建一個部落格站點,可以使用 jelly or hexo 等部落格模版,然後將寫好的 markdown 格式檔案 push 到 xxx.github.io 某目錄

下,這樣就可以訪問靜態部落格頁面了。

       如果我們想寫開源書籍呢?也是類似的,只不過不用搭建部落格模版,但需要藉助下 gitbook 工具。

比如我們在 github 上建一個 repo WebSecurityLearning,裡面分目錄,且按 gitbook 的要求寫一個 SUMMARY.md,包含了書目即章節結構,大致格

式如下:


SUMMARY.md

This is the summary of my book
* Overview
    * [overview](Overview/overview.md)
* XSS
    * [xss](XSS/xss.md)
* SQLI
    * [sqli](SQLI/SQLI.md)

         接著用 gitbook 生成書籍,需要安裝下 gitbook(使用 npm 安裝需要先安裝 nodejs)。

$ npm install gitbook -g

$ npm install gitbook-cli -g

         把 repo clone 到本地,gitbook build WebSecurityLearning,會發現目錄下多了個 _book 目錄,裡面就是編譯好的書,可以將 

_book 改名為 websec,然後將整個目錄 push 到 xxx.github.io 目錄下,直接訪問 fxnotes.net/websec,其中 Introduction 編譯自 README.md,而目

錄當然是來自 SUMMARY.md 了,如下所示:

        

        這樣我們就能在本地寫 markdown 檔案,然後 push 到 github 做版本維護,用 gitbook 編譯 目錄,替換 站點目錄,更新書籍,

還算是比較方便的。無論寫部落格還是寫文章,如果需要引用圖片,需要外鏈,推薦用七牛雲端儲存來上傳本地圖片做外鏈。


注:本文不涉及詳細流程、設定和命令,只為大家提供個思路索引,具體動手做一遍就清晰了。




相關文章