一、Gitbook概述
GitBook 是一個基於 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 來製作精美的電子書,GitBook 並非關於 Git 的教程。
GitBook支持輸出多種文檔格式:
-
靜態站點:GitBook默認輸出該種格式,生成的靜態站點可直接託管搭載Github Pages服務上;
-
PDF:需要安裝gitbook-pdf依賴;
-
eBook:需要安裝ebook-convert;
-
單HTML網頁:支持將內容輸出爲單頁的HTML,不過一般用在將電子書格式轉換爲PDF或eBook的中間過程;
-
JSON:一般用於電子書的調試或元數據提取。
使用GitBook製作電子書,必備兩個文件:README.md和SUMMARY.md。README.md多爲電子書的簡介內容,SUMMARY.md用來定義電子書章節結構,如:
同時,GitBook還支持嵌入JavaScript的交互式內容,未來版本會支持Python、Ruby等語言。
二、gitbook的安裝
以下是來自gitbook項目頁上提供的安裝方法:
- GitBook can be installed from NPM using:
- $ npm install gitbook-cli -g
- Create the directories and files for a book from its SUMMARY.md file (if existing) using
- $ gitbook init
- You can serve a repository as a book using:
- $ gitbook serve
- Or simply build the static website using:
- $ gitbook build
三、gitbook的基本規則
Gitbook需要2個基本文件:
- README.md
- SUMMARY.md
README.md是關於你的書的介紹,而SUMMARY.md中則包含了書目,即章節結構,它的格式大致是:
- * [第1章](c1.md)
- * [第1節](c1s1.md)
- * [第2節](c1s2.md)
- * [第2章](c2.md)
剩下的東西就很好理解了,你只需要編寫相應章節即可。在編輯完README.md和SUMMARY.md後,你可以運行以下命令:
- $ gitbook serve -p 8080 .
Gitbook首先把你的Markdown文件編譯爲HTML文件,並根據SUMMARY.md生成書的目錄。所有生存的文件都保存在當前目錄下的一個名爲_book的子目錄中。完成這些工作後,Gitbook會作爲一個HTTP Server運行,並在8080端口監聽HTTP請求。
運行以上命令後,打開瀏覽器,在地址欄輸入:http://localhost:8080即可看到你的書頁了。
其中位於左側書目頂部的Introduction一節就編譯自README.md,而書目本身自編譯自SUMMARY.md。你要在自己的網站上發佈新書,只需把_book目錄複製到服務器相應目錄即可。至此Gitbook的基本用法就介紹完畢。下面簡單討論下Gitbook的其他應用,包括Gitbook的插件、與Github的融合、Gitbook客戶端、Gitbook平臺,以及Gitbook的問題。
四、Gitbook的插件支持
Gitbook可以生成HTML,因此它支持一些外部的JavaScript文件嵌入到HTML中,例如Google統計、Disqus評論系統等。以下以頁面中嵌入Disqus評論爲例。
首先是安裝Gitbook的Disqus插件。
- $ npm install gitbook-plugin-disqus
然後建立一個book.json文件,其格式如下:
- {
- "plugins": ["disqus"],
- "pluginsConfig": {
- "disqus": {
- "shortName": "NAME-FROM-DISQUS"
- }
- }
- }
把上面的NAME-FROM-DISQUS修改爲你在Disqus上的項目名即可。
再次運行命令:
- $ gitbook serve -p 8080 .
並刷新瀏覽器,即可看到附加了Disqus評論的頁面。
與Github的融合
Gitbook的博客上說Github提供了對Gitbook的特殊支持,但我沒有測試。只是依然把源文件保存在Github上,然後用Gitbook去編譯。期待Gitbook做的更好。
Gitbook客戶端
Gitbook客戶端支持Mac、Windows、Linux。我在Mac和Windows簡單嘗試了這個客戶端,總體而言可以用。但也僅僅是可以用而已。你可以在客戶端裏編輯Markdown文件,並提供一個實時的預覽窗口;可以關聯到你的Gitbook賬戶,並把內容同步到gitbook.io,併爲你生成PDF等。說句題外話,如果你要Markdown的客戶端的話,飛象馬克更好用,至少Vim編輯模式你得支持啊。
五、Gitbook的問題
Gitbook網站的訪問速度很慢。可以在生成_book目錄後,把其中的HTML文件和gitbook子目錄(包含字體和js文件等)複製到自己的網站上。
Gitbook提供的push功能不能用。push.gitbook.io這個地址無法訪問,不知是否是臨時性服務故障。
Gitbook生成PDF的中文字體極其難看。萬分期待改進。話說Gitbook生存的HTML上的中文非常漂亮。