為什麼我偏愛用GitHub來寫書?

Phodal發表於2016-04-21

為什麼我偏愛用GitHub來寫書?

GayHub作為一個全球著名的社交網站,它的用途可不僅僅只有約基那麼簡單。

github-social.png

今天,讓我們來說說為什麼我越來越喜歡用Git來寫書——只是電子書,並且將它釋出到GitHub上。

GitHub上的第一本書

我在GitHub上寫的第一本書是《一步步搭建物聯網系統》,它是我的畢業論文與部落格的合集。

designiot.png

在這本電子書裡,我和我的同學小兵一起協作來編寫內容。在今天看來,這仍是一本不錯的物聯網指南。只是物聯網這個領域一直都不溫不火,並且在GitHub上比較流行的都是Web開發的專案。

隨後只是因為這個專案,一個PACKT出版社的編輯在GitHub上找到了我,幫他們審閱《Learning Internet of Things》這本書——英文版的。

learning-iot.png

從這個過程中,我學到了兩件事:

  • 協作寫作是可能的
  • 在GitHub上寫作意味著機會

接著,我就開始嘗試去寫一本物聯網的書,並且我使用Git來管理。

使用Git管理內容

在開始之前,希望你對於Pandoc這個軟體及LaTeX有一點點概念:

  • Pandoc是由John MacFarlane開發的標記語言轉換工具,可實現不同標記語言間的格式轉換,堪稱該領域中的“瑞士軍刀”。如我們可以將Markdown轉化為Word,然後統計字數——這是我最常用的功能。

    latex.png

    LaTeX 是 Leslie Lamport 在 TeX 基礎上按內容/格式分離和模組化等思想建立的一集 TeX 上的格式。TeX是誕生於20世紀70年代末到80年代初的一款計算機排版軟體,用來排版高質量的書籍論文,特別是包含有數學公式的文章書籍。

結合上面的兩種工具,我們可以用Pandoc結合LaTex來將md檔案轉化成PDF格式,又或者用Pandoc結合kindlegen將其轉化為Kindle能閱讀的mobi格式。

(PS: 我的畢業論文的初稿就是拿Pandoc + LaTeX完成的。)

版本控制

關於使用Git來作為資料庫已經不是一個新的概念了。在那篇《編輯-釋出-開發分離》中我們還提到了,拿Git作為一個NoSQL資料庫。它是一個很好的資料儲存器,我們可以將其PUSH到我們所能建立的私有倉庫裡。並且這個過程中是持續遞增的,你不再需要不斷地複製你的檔案了——以免丟失造成的影響。

但是這: 少了一個脫稿的理由了

Diff Change

Git讓人最爽的莫過於可以Diff修改了。如果你遇到下面的一些情況:

  • 需要對比兩個不同的JSON檔案的欄位差異
  • 檢視一個檔案的修改歷史

請擁抱Git,並新增一次提交來完成這個工作。

如果我們的寫作專案與不同的人一起完成的話,那麼這可能會變成一場惡夢。在我之前的翻譯專案裡,我們使用Git來完成這個工作。通過Git,我們可以發現:誰做了一些修改,如新增內容、刪除某些內容。並且我們都很熟悉Git的話,那麼我們只會在一次提交裡修改儘量少的檔案,並提交程式碼。這樣做會避免我們破壞其他人正在修改的檔案。

GitHub上的第二本書

我在GitHub上寫的第二本電子書是《GitHub漫遊指南》,這本電子書完全沒有任何寫作計劃——它就是一個部落格全集(PS: 誰讓我寫過的部落格多呢!)。

github-roam.png

而這本書裡,我最大的感受是增量性新增——我可以不斷地往這個Repo裡新增內容,而不需要擔心影響人們的閱讀。這也是紙質書不能比擬的,當一本書出版後,只能等下一次修訂。只是修訂只是少數書的命運,而另外一個明顯的感受是,我們只需要寫一點內容就可以判斷是不是使用者想要的內容:

mvp.png

在早期做出一個最小化可行產品,然後投向市場,來觀察使用者的反饋。而在這本書裡,很好的驗證了我的想法是對的,因此就被新增到Growth中去了。

GitHub協作

使用GitHub來寫書的最大理由就是協作。對於熟悉GitHub的使用者來說,他們看到錯誤就很樂意幫你提一下,或者是幫你來一個Pull Request來幫你修復錯誤。這樣做也可以增加自己的Contributions,同時也可以幫助到別人。

  • 持續部署。GitHub有一個很大的優勢,即GitHub Page,使用GitHub Page可以讓我們實現持續性部署。即我們只能一PUSH我們的修改,我們就可以將我們的最新版本呈現給使用者。
  • 支援CNAME。這樣我們就可以使用一個簡單的域名就可以完成一個高逼格的整合。
  • 支援評論功能。如果你在某個修改裡說了,JavaScript是這個世界最流行的語言,那麼有人就會在評論裡說了吧。

GitHub上的第三本書

在那本《一步步搭建物聯網系統》有一個很大的問題是,內容並不是受到GitHub上的使用者歡迎的,受眾在網上也比較少——需要依賴於線下渠道。

而《GitHub漫遊指南》有一個天生的不足是:在一開始的時候並沒有好好策劃,雖然主題很受歡迎。

因此Growth就結合了上述兩者的優勢,即在一開始的時候做了一個MVP,發現還不錯。然後還好好地編寫了內容。

github-ebook.png

單單隻有努力看上去是不夠的,還要有一點點小技巧。

最後一個偏愛的理由是:人們並不缺乏學習的意願,只是不知道學習什麼。

在GitHub上一個流行的庫可以幫助你完成工作,但是仍然需要有有文章來幫助你成長,幫助你變得更好。

更多精彩內容歡迎關注我的微信公眾號:Phodal

http://articles.phodal.com/qrcode.jpg

相關文章