没文档或者文档太烂的项目是可怕的,完善易懂的文档是一个好项目的标配。

如何管理项目文档对于维护一个靠谱的项目是至关重要的。

ReadTheDocs

这是一个很常见的项目文档托管网站,支持 GitHub,GitLab,BitBucket 登录,可导入 gitsvn 等项目。

Feature

  • 支持多版本文档
  • 支持多分支构建
  • 项目更新后自动重新构建
  • 可接入 Google Analytics 和广告
  • 支持自定义域名

Weakpoint

  • 仅支持用 Sphinx 生成文档
  • 构建文档的过程限制内存为 1G(这通常不是问题,但如果你有深度学习的项目且需要安装后导入代码中的文档,光是安装深度学习的包估计就超过 1G 了)

GitHub Pages

目前有很多项目都直接用 GitHub Pages 来构建文档了,也可以用来写博客,甚至一些 CS 课程也用它展示相关信息。作为一个免费的静态页面平台,跟 GitHub 集成在一起,一向不缺用户的。

Feature

  • 具有相对较高的自由度,可以自己选择文档生成工具
  • 可以自己配置 Google Analytics,生成 RSS 等
  • 可以配合 Travis 一类的工具实现文档自动部署
  • 文档跟代码放在同一平台上易于管理
  • 支持自定义域名

Weakpoint

  • 某些搜索引擎不收录 GitHub Pages 相关页面
  • 某些地区访问 GitHub Pages 可能出现问题

自动化部署

这部分需要配合 Travis CI,当然其他 CI 工具应该也有类似的功能。

我写了一个 Gist 详细介绍相关步骤,可以在这里看到 Auto-Deploying Docs (English)。

主要是网上查到的多数都是测试完用 Bash 脚本来部署的,而 Travis 推出了一个 Beta 版的 deploy 功能,非常好用,要比 Bash 脚本部署简单很多,所以就写了这么个 Gist(因为看到别人也都是写的 Gist)。

大概的流程就是申请一个个人的 GitHub Token 用来授权操作仓库,然后在 Travis 中设置成对外不可见的环境变量,或者用 Travis 的加密变量传进去,之后就可以用 Travis 的 .travis.yml 来进行部署操作了。