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

GayHub作为一个全球著名的社交网站,它的用途可不仅仅只有约基那么简单。

今天,让我们来说说为什么我越来越喜欢用Git来写书——只是电子书,并且将它发布到GitHub上。

GitHub上的第一本书

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

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

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

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

  • 协作写作是可能的
  • 在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格式。

(PS: 我的毕业论文的初稿就是拿Pandoc + LaTeX完成的。)

版本控制

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

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

Diff Change

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

  • 需要对比两个不同的JSON文件的字段差异
  • 查看一个文件的修改历史

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

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

GitHub上的第二本书

我在GitHub上写的第二本电子书是《GitHub漫游指南》,这本电子书完全没有任何写作计划——它就是一个博客全集(PS: 谁让我写过的博客多呢!)。

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

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

GitHub协作

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

  • 持续部署。GitHub有一个很大的优势,即GitHub Page,使用GitHub Page可以让我们实现持续性部署。即我们只能一PUSH我们的修改,我们就可以将我们的最新版本呈现给用户。
  • 支持CNAME。这样我们就可以使用一个简单的域名就可以完成一个高逼格的整合。
  • 支持评论功能。如果你在某个修改里说了,JavaScript是这个世界最流行的语言,那么有人就会在评论里说了吧。

GitHub上的第三本书

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

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

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

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

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

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

更多精彩内容欢迎关注我的微信公众号:Phodal

为什么我偏爱用GitHub来写书?相关推荐

  1. 学习 GitHub 对我们有什么好处?

    学习 GitHub 对我们有什么好处? 为什么要学习 GitHub,或者说学习 GitHub 对我们有什么好处? 理由一:GitHub 上有很多大牛出没,国外的咱先不说,就国内的像百度.腾讯.阿里之类 ...

  2. gitbook结合github写书及发布到gitbook上

    本案例发布的书可以点击这里看效果 程序员一般喜欢用markdown语法写文档,一般我们使用的markdown工具有 1.window系统下: mdcharm 2.mac系统下:MacDown 虽然使用 ...

  3. 使用 github, gitbook, markdown 写博客/写书

    Github 是基于 开源代码管理工具 Git 的一个代码托管平台.Gitbook 是一个命令行工具,可以把你的 Markdown 文件汇集成电子书,并提供PDF等多种格式输出.你可以把Gitbook ...

  4. GitHub上整理的一些工具【转载】

    技术站点Hacker News:非常棒的针对编程的链接聚合网站Programming reddit:同上MSDN:微软相关的官方技术集中地,主要是文档类infoq:企业级应用,关注软件开发领域OSCh ...

  5. 这个GitHub 1400星的Git魔法书火了,斯坦福校友出品丨有中文版

    杨净 发自 凹非寺  量子位 报道 | 公众号 QbitAI 如何学用Git? 或许这有一本适合你的Git魔法书. 由斯坦福大学CS校友Ben Lynn编写,2007年出品的Git Magic,如今已 ...

  6. Github上的10个数据科学和机器学习知识库

    来源:DeepHub IMBA 本文共1200字,建议阅读5分钟在本文中将介绍一些对数据科学和机器学习爱好者最有用的 Github 代码库.(排名顺序不分先后) 1.The Algorithm 数据结 ...

  7. 专为设计师而写的GitHub快速入门教程

    在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目托管平台,许多企业也都是用GitHub来协同开发工作,当然我们彩程也是其中之一.笔者最初决定学习Git也是因为在团队内部设 ...

  8. github使用-知乎的某小姐的一篇文章

    作者:珊姗是个小太阳 链接:http://www.zhihu.com/question/20070065/answer/79557687 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 作为一 ...

  9. 步入github世界

    在源码的世界里,越来越多的优秀源码涌现,开源的世界不但代表他的优秀,也代表了他优秀的传播途径. https://github.com/ github自从2008年现世,可谓是后来者居上.开源代码的公开 ...

  10. 这个GitHub 1400星的Git魔法书火了,斯坦福校友出品

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习> ...

最新文章

  1. 在世界第二届半机械人奥运会上,瘫痪飞行员在Cybathlon BCI竞赛中争夺金牌
  2. tomcat主目录(ROOT.xml)和虚拟目录
  3. docker报错:OCI runtime create failed...process_linux.go:449: container init caused “write /proc/self/
  4. J2EE中下载和安装spring插件
  5. Mac电视投屏工具:Mirror for Any Device for Mac
  6. Android开发,并不见得是一个走得长远的路子
  7. 人工智能究竟能否实现?
  8. 绕过tp路由器管理密码_TP-LINK 无线路由器设置详解
  9. mtex极图_一种多相金属材料相成分识别的方法与流程
  10. centos7设置DNS
  11. 比我的脸还干的gan货——Python Flask Web 框架入门
  12. uniapp封装方法
  13. 钟汉良日记:改变心态了,回武平待3年
  14. 为什么只有T字型人才实用价值才比较大?
  15. BlueHost主机从零开始使用笔记,我踩过的坑你就不要踩了.
  16. 全自动过滤器:全自动过滤器工作原理
  17. 简单实用的记账软件,做到有账可查
  18. 嵌入式Linux根文件系统制作
  19. 【Python】标识符 ( Python 标识符命名规则 - 强制性 | 内容限定 | 大小写敏感 | 非关键字 | Python 标识符命名规范 - 建议性 | 下划线命名法 | 英文字母全小写 )
  20. 浙政钉踩坑记录:真机调试-H5APP 不存在

热门文章

  1. 视频后期制作Premiere Pro 2022
  2. Gauss消去法、列主元素消去法及LU分解法的MATLAB实现
  3. 反向题在测试问卷信效度_如何进行问卷的信度和效度分析_spss问卷信度效度分析...
  4. 关于BetterScroll 2.0版本出现BScroll is not defined 的解决方案
  5. 电子电路仿真软件中文版_一个电子工程师的自我修养
  6. 海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
  7. 51单片机实现超声波测距
  8. Access数据库对象包括哪六个?Access与 Excel 最重要的区别是什么?
  9. 如何深入Delphi编程
  10. 苹果id被禁用_【苹果ios游戏推荐】模拟人生免费版