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

今天,讓我們來說說為什么我越來越喜歡用Git來寫書——只是電子書,并且將它發(fā)布到GitHub上。
GitHub上的第一本書
我在GitHub上寫的第一本書是《一步步搭建物聯(lián)網(wǎng)系統(tǒng)》,它是我的畢業(yè)論文與博客的合集。

在這本電子書里,我和我的同學(xué)小兵一起協(xié)作來編寫內(nèi)容。在今天看來,這仍是一本不錯的物聯(lián)網(wǎng)指南。只是物聯(lián)網(wǎng)這個領(lǐng)域一直都不溫不火,并且在GitHub上比較流行的都是Web開發(fā)的項目。
隨后只是因為這個項目,一個PACKT出版社的編輯在GitHub上找到了我,幫他們審閱《Learning Internet of Things》這本書——英文版的。

從這個過程中,我學(xué)到了兩件事:
- 協(xié)作寫作是可能的
- 在GitHub上寫作意味著機會
接著,我就開始嘗試去寫一本物聯(lián)網(wǎng)的書,并且我使用Git來管理。
使用Git管理內(nèi)容
在開始之前,希望你對于Pandoc這個軟件及LaTeX有一點點概念:
- Pandoc是由John MacFarlane開發(fā)的標(biāo)記語言轉(zhuǎn)換工具,可實現(xiàn)不同標(biāo)記語言間的格式轉(zhuǎn)換,堪稱該領(lǐng)域中的“瑞士軍刀”。如我們可以將Markdown轉(zhuǎn)化為Word,然后統(tǒng)計字?jǐn)?shù)——這是我最常用的功能。

LaTeX 是 Leslie Lamport 在 TeX 基礎(chǔ)上按內(nèi)容/格式分離和模塊化等思想建立的一集 TeX 上的格式。TeX是誕生于20世紀(jì)70年代末到80年代初的一款計算機排版軟件,用來排版高質(zhì)量的書籍論文,特別是包含有數(shù)學(xué)公式的文章書籍。
結(jié)合上面的兩種工具,我們可以用Pandoc結(jié)合LaTex來將md文件轉(zhuǎn)化成PDF格式,又或者用Pandoc結(jié)合kindlegen將其轉(zhuǎn)化為Kindle能閱讀的mobi格式。
(PS: 我的畢業(yè)論文的初稿就是拿Pandoc + LaTeX完成的。)
版本控制
關(guān)于使用Git來作為數(shù)據(jù)庫已經(jīng)不是一個新的概念了。在那篇《編輯-發(fā)布-開發(fā)分離》中我們還提到了,拿Git作為一個NoSQL數(shù)據(jù)庫。它是一個很好的數(shù)據(jù)存儲器,我們可以將其PUSH到我們所能創(chuàng)建的私有倉庫里。并且這個過程中是持續(xù)遞增的,你不再需要不斷地復(fù)制你的文件了——以免丟失造成的影響。
但是這: 少了一個脫稿的理由了
Diff Change
Git讓人最爽的莫過于可以Diff修改了。如果你遇到下面的一些情況:
- 需要對比兩個不同的JSON文件的字段差異
- 查看一個文件的修改歷史
請擁抱Git,并添加一次提交來完成這個工作。
如果我們的寫作項目與不同的人一起完成的話,那么這可能會變成一場惡夢。在我之前的翻譯項目里,我們使用Git來完成這個工作。通過Git,我們可以發(fā)現(xiàn):誰做了一些修改,如添加內(nèi)容、刪除某些內(nèi)容。并且我們都很熟悉Git的話,那么我們只會在一次提交里修改盡量少的文件,并提交代碼。這樣做會避免我們破壞其他人正在修改的文件。
GitHub上的第二本書
我在GitHub上寫的第二本電子書是《GitHub漫游指南》,這本電子書完全沒有任何寫作計劃——它就是一個博客全集(PS: 誰讓我寫過的博客多呢?。?。

而這本書里,我最大的感受是增量性添加——我可以不斷地往這個Repo里添加內(nèi)容,而不需要擔(dān)心影響人們的閱讀。這也是紙質(zhì)書不能比擬的,當(dāng)一本書出版后,只能等下一次修訂。只是修訂只是少數(shù)書的命運,而另外一個明顯的感受是,我們只需要寫一點內(nèi)容就可以判斷是不是用戶想要的內(nèi)容:

在早期做出一個最小化可行產(chǎn)品,然后投向市場,來觀察用戶的反饋。而在這本書里,很好的驗證了我的想法是對的,因此就被添加到Growth中去了。
GitHub協(xié)作
使用GitHub來寫書的最大理由就是協(xié)作。對于熟悉GitHub的用戶來說,他們看到錯誤就很樂意幫你提一下,或者是幫你來一個Pull Request來幫你修復(fù)錯誤。這樣做也可以增加自己的Contributions,同時也可以幫助到別人。
- 持續(xù)部署。GitHub有一個很大的優(yōu)勢,即GitHub Page,使用GitHub Page可以讓我們實現(xiàn)持續(xù)性部署。即我們只能一PUSH我們的修改,我們就可以將我們的最新版本呈現(xiàn)給用戶。
- 支持CNAME。這樣我們就可以使用一個簡單的域名就可以完成一個高逼格的整合。
- 支持評論功能。如果你在某個修改里說了,JavaScript是這個世界最流行的語言,那么有人就會在評論里說了吧。
GitHub上的第三本書
在那本《一步步搭建物聯(lián)網(wǎng)系統(tǒng)》有一個很大的問題是,內(nèi)容并不是受到GitHub上的用戶歡迎的,受眾在網(wǎng)上也比較少——需要依賴于線下渠道。
而《GitHub漫游指南》有一個天生的不足是:在一開始的時候并沒有好好策劃,雖然主題很受歡迎。
因此Growth就結(jié)合了上述兩者的優(yōu)勢,即在一開始的時候做了一個MVP,發(fā)現(xiàn)還不錯。然后還好好地編寫了內(nèi)容。

單單只有努力看上去是不夠的,還要有一點點小技巧。
最后一個偏愛的理由是:人們并不缺乏學(xué)習(xí)的意愿,只是不知道學(xué)習(xí)什么。
在GitHub上一個流行的庫可以幫助你完成工作,但是仍然需要有有文章來幫助你成長,幫助你變得更好。