开发者社区> 玄学酱> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

为什么我偏爱用 GitHub 来写书?

简介:
+关注继续查看

GayHub 作为一个全球著名的社交网站,它的用途可不仅仅只有约基那么简单。今天,让我们来说说为什么我越来越喜欢用Git 来写书——只是电子书,并且将它发布到GitHub上。

GitHub上的第一本书

我在GitHub上写的第一本书是《一步步搭建物联网系统》,它是我的毕业论文与博客的合集。

screenshot

在这本电子书里,我和我的同学一起协作编写内容。在今天看来,这仍是一本不错的物联网指南。只是物联网这个领域一直都不温不火,况且在GitHub上比较流行的都是Web开发的项目。

随后仅仅是因为这个项目,一个PACKT出版社的编辑在GitHub上找到了我,让我帮他们审阅《Learning Internet of Things》这本书——英文版的。

screenshot

从这个过程中,我学到了两件事:

协作写作是可能的

在GitHub上写作意味着机会

接着,我就开始尝试去写一本物联网的书,并且我使用Git来管理。

使用Git管理内容

在开始之前,希望你对Pandoc这个软件及LaTeX有一点点概念:

Pandoc是由John MacFarlane开发的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。如我们可以将Markdown转化为Word,然后统计字数——这是我最常用的功能。

LaTeX 是 Leslie Lamport 在 TeX 基础上按内容/格式分离和模块化等思想建立的一集 TeX 上的格式。TeX是诞生于20世纪70年代末到80年代初的一款计算机排版软件,用来排版高质量的书籍论文,特别是包含有数学公式的文章书籍。

结合上面的两种工具,我们可以用Pandoc结合LaTex来将md文件转化成PDF格式,又或者用Pandoc结合kindlegen将其转化为Kindle能阅读的mobi格式。

版本控制

关于使用Git来作为数据库已经不是一个新的概念了。在那篇《编辑—发布—开发分离》中我们还提到了,拿Git作为一个NoSQL数据库。它是一个很好的数据存储器,我们可以将其PUSH到我们所能创建的私有仓库里。并且这个过程中是持续递增的,你不再需要不断地复制你的文件了——以免丢失造成的影响。

但是这:少了一个拖稿的理由了。

Diff Change

Git让人最爽的莫过于可以Diff修改了。如果你遇到下面的一些情况:

需要对比两个不同的JSON文件的字段差异

查看一个文件的修改历史

请拥抱Git,并添加一次提交来完成这个工作。

如果我们的写作项目是与不同的人一起完成的话,那么这可能会变成一场恶梦。在我之前的翻译项目里,我们使用Git来完成这个工作。通过Git,我们可以发现:谁做了一些修改,如添加内容、删除某些内容。并且我们都很熟悉Git的话,那么我们只会在一次提交里修改尽量少的文件,并提交代码。这样做会避免我们破坏其他人正在修改的文件。

GitHub上的第二本书

我在GitHub上写的第二本电子书是《GitHub漫游指南》,这本电子书完全没有任何写作计划——它就是一个博客全集。

screenshot

而这本书里,我最大的感受是增量性添加——我可以不断地往这个Repo里添加内容,而不需要担心影响人们的阅读。这也是纸质书不能比拟的,当一本书出版后,只能等下一次修订。只是修订只是少数书的命运,而另外一个明显的感受是,我们只需要写一点内容就可以判断是不是用户想要的内容:

在早期做出一个最小化可行产品,然后投向市场,来观察用户的反馈。而在这本书里,很好的验证了我的想法是对的,因此就被添加到Growth中去了。

GitHub协作

使用GitHub来写书的最大理由就是协作。对于熟悉GitHub的用户来说,他们看到错误就很乐意帮你提一下,或者是帮你来一个Pull Request来帮你修复错误。这样做也可以增加自己的Contributions,同时也可以帮助到别人。

持续部署。GitHub有一个很大的优势,即GitHub Page,使用GitHub Page可以让我们实现持续性部署。即我们只能一PUSH我们的修改,我们就可以将我们的最新版本呈现给用户。

支持CNAME。这样我们就可以使用一个简单的域名就可以完成一个高逼格的整合。

支持评论功能。如果你在某个修改里说了,JavaScript是这个世界最流行的语言,那么有人就会在评论里说了吧。

GitHub上的第三本书

在那本《一步步搭建物联网系统》有一个很大的问题是,内容并不是受到GitHub上的用户欢迎的,受众在网上也比较少——需要依赖于线下渠道。

而《GitHub漫游指南》有一个天生的不足是:在一开始的时候并没有好好策划,虽然主题很受欢迎。

因此Growth就结合了上述两者的优势,即在一开始的时候做了一个MVP,发现还不错,然后还好好地编写了内容。

单单只有努力看上去是不够的,还要有一点点小技巧。

最后一个偏爱的理由是:人们并不缺乏学习的意愿,只是不知道学习什么。

在GitHub上一个流行的库可以帮助你完成工作,但是仍然需要有有文章来帮助你成长,帮助你变得更好。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
上传开源项目到GitHub,原来这么简单啊
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/76165054 搜索“GitHub上传项目”,能得到很多相关的文章教程,里面讲的都特别麻烦,要弄什么ssh之类的,可算是吓坏了我,使我非常的怀疑为什么GitHub不做一个直接拖拽项目文件夹的功能呢?但其实不然,上传过程很简便,不信来看看,完全不需要什么ssh啊?! 我已经有GitHub账号了,所以就直接跳过这一步了。
691 0
28款GitHub最流行的开源机器学习项目(一):TensorFlow排榜首
现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习得到了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、DNA序列测序、战略游戏和机器人等方面。 云栖社区特意翻译整理了目前GitHub上最受欢迎的28款开源的机器学习项目,以供开参考使用。
32373 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20683
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载