从 GitHub 到 WordPress

发布日期: 作者:

维护像 jQuery 这样的大型开源项目需要使用各种软件和服务。我们最依赖和最喜欢的两款产品是 GitHub 和 WordPress。

我们已经使用并喜欢 GitGitHub 多年了。社区协作一直很出色。我们看到了社区提供的错误修复、重构、新功能等的巨大增长。即使在团队内部,GitHub 提供的服务也极大地提高了生产力。分支和拉取请求为代码共享和代码同行评审提供了极好的机制。该界面几乎以我们想要的方式呈现每个文件,特别是 Markdown。API 和服务钩子为自动化各种任务提供了一种很棒的方式。

我们使用 GitHub 的时间甚至比使用 GitHub 更久,我们一直使用 WordPress 来管理我们的各种网站。我们拥有数量惊人的网站。在项目网站、API 文档、教程、贡献指南、活动和组织网站之间,我们维护的网站数量与我们维护的代码项目数量相当。WordPress 提供了工具,使管理如此多的具有共同品牌的网站几乎与管理一个共享用户、主题继承和出色插件体系结构的网站一样简单,提供了比 GitHub 更多的挂钩。

缺失的部分

不幸的是,我们的 WordPress 体验缺乏我们喜欢的所有协作工具和工作流程。只有少数人可以访问内容编辑权限,而没有拉取请求的协作则很痛苦。由于基于 XML 的工作流程,管理 api.jquery.com 上的内容更是麻烦,WordPress 编辑器显然不是为此设计的。

虽然 GitHub 拥有我们喜欢的众多工具,并且他们甚至拥有 GitHub Pages,但它缺乏我们管理网站内容所需的架构。GitHub Pages 没有内置功能,也不能进行任何服务器端处理。搜索和评论等功能要么需要通过客户端 JavaScript 在每个网站上添加,要么根本无法实现。

将所有内容整合在一起

为了解决这些问题,我们决定找到一种将这两种产品整合在一起的方法,以实现两全其美。一开始进展相当坎坷,但我们最终成功了!当我们得到 WordPress 首席开发人员 Andrew Nacin 的支持后,事情开始真正加速发展。Nacin 在建立我们的新基础架构并确保我们以最有效的方式使用 WordPress 中发挥了关键作用。在他的帮助下,以及一些新项目的帮助下,例如 node-wordpressgrunt-wordpressgrunt-jquery-content,我们能够构建出我们想要的东西。

我们现在在 jquery-wp-content 中管理我们的 WordPress 主题,所有网站的内容都存储在 GitHub 上的各个存储库 中并进行管理。将每个网站的内容存储在 GitHub 上让我们可以享受在问题中跟踪任务、在拉取请求中进行讨论、查看更改的视觉差异等所有优势。每个页面的内容由 grunt-jquery-content 从 HTML、XML 或 Markdown 源代码生成,具体取决于存储库。然后,使用 grunt-wordpress 将此内容同步到 WordPress。就像我们的代码一样,我们所有网站的内容都是开源的,并根据 MIT 许可的条款发布,但我们的品牌除外,它未授权他人使用。

我们现在使用这个新流程为十几家网站提供服务,平均每个网站有 20 名贡献者。我们最受欢迎的社区贡献网站是 learn.jquery.com,该网站即将达到三位数,以及 api.jquery.com,目前拥有 50 名贡献者。我们平均每个网站有 40 个拉取请求,这表明这种新的工作流程对团队和社区来说是多么有益。如果你想加入这个社区努力,你可以 阅读更多关于我们的流程以及如何参与 我们的贡献网站,并帮助让 jQuery 变得更好。

评论已关闭。