使用Gitbook製作電子書

berlinix發表於2014-10-21

Gitbook是一個命令列工具,可以把你的Markdown檔案彙整合電子書,並提供PDF等多種格式輸出。你可以把Gitbook生成的HTML釋出出來,就形成了一個簡單的靜態網站。Gitbook還有一個同名的平臺(gitbook.io),可以釋出和銷售電子書,並提供了一個Markdown客戶端工具(支援Mac、Windows和Linux)幫助寫作。以下是我在使用Gitbook中的筆記。

首先Gitbook和Git/Github都沒有什麼關係。它只是一個build book的工具而已。但它的Git字首的確引起了許多人的迷惑,起初我認為至少它也是個和Github類似的Git平臺吧,但其實沒什麼關係,你只要懂幾條markdown語法,不必理解任何與Git相關的東西就能用Gitbook了,不要為其名字迷惑。

第0步 安裝npm(Node Package Manager)。從node.js的官網上下載安裝程式,即可完成Node.js和npm的安裝。

第1步 通過npm安裝Gitbook。

$ npm install gitbook -g

完成後花10分鐘閱讀下Gitbook的幫助文件。如果你沒耐心看手冊,那就繼續往下讀吧 :D

第2步 瞭解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上的中文非常漂亮。

在我的手機上看Gitbook的頁面時,會讓瀏覽器掛掉。

末,話說我也是個Gitbook新手呢,有理解不對的請大家指教 :-)

請大家關注在下的公眾號:IdleWorks — 關於學習、生活和投資,從不長篇大論 :-)

enter image description here

相關文章