如果你曾经使用过网络技术构建过任何东西,你可能熟悉 MDN Web 文档。该网站大约有 13,000 页文档介绍了如何使用 HTML、CSS 和 JavaScript 等编程语言,任何给定时间都有大约 8,000 人在使用该网站。
MDN 依靠贡献者来帮助维护其不断扩展和更新的文档。除了 Open Web Docs、Google、w3c、微软、三星和 Igalia 等公司(仅举几例)的支持外,贡献者还来自社区成员。这些贡献采取多种形式,从修复问题到贡献代码,再到帮助新手和本地化内容。
我们联系了 4 位长期社区贡献者,讨论他们如何以及为何开始贡献,以及他们为何坚持贡献,并询问他们对新贡献者的建议。
认识贡献者
MDN 贡献者来自世界各地,具有不同的背景,并以不同的方式做出贡献。
Irvin 和 Julien 的主要贡献领域是本地化。他们是庞大志愿者团队的一部分,确保 MDN 翻译成七种不同的语言(了解 MDN 内容的翻译是如何进行的。
自 2020 年底以来,MDN 文章的翻译已在新的基于 GitHub 的平台上进行。
Irvin,@irvinfly,Mozilla 台湾社区志愿者
我做过十多年的前端工程师。我一直都是 MDN 的休闲贡献者。我在编写网站时经常查看 MDN,但我只做了一些简单的贡献,比如修正错别字。
2020 年初,MDN 团队问我们 zh(中文)语言环境是否愿意加入 Yari(新的基于 GitHub 的平台)的本地化系统早期阶段。我们接受了邀请,并组成了 zh-review-team。从那时起,我每周就开始为 MDN 做贡献。
我的主要工作是与其他 zh 审核人员合作,检查和审核 拉取请求,包括繁体中文和简体中文语言环境。我们的目标是确保对 zh 文档的所有更改都已完成,包括文件格式和翻译。
Sphinx (Julien) (他 / 他),@Sphinx_Twitt
我的大部分贡献都围绕着将 MDN 内容本地化为法语(翻译新文章,并维护现有页面)。自从 MDN 迁移到 GitHub 后,贡献也包括审查他人的贡献。
我开始贡献时,作为学生,我加入了 Framasoft 领导的一个协作翻译项目。经过几番讨论,我加入了一个邮件列表和 IRC。我看到的第一个贡献建议是关于改进法语版 MDN 词汇表,以帮助新手。
我开始帮助他们,并且当时得到了团队和社区的欢迎。一件事接着一件事,我开始帮助将 MDN 的其他领域翻译成法语。
Tanner 和 Kenrick 也是长期志愿者。他们的主要活动领域是贡献代码,解决 MDN 存储库中的问题,以及审查和协助其他贡献者的提交。
在 MDN 中,所有用户都可以向问题追踪器添加问题,以及贡献修复,并审查其他人的修复。
Tanner Dolby,@tannerdolby
我通过积极参与 MDN 存储库的问题追踪器来为 MDN 做贡献。
我倾向于浏览问题,并寻找我能理解的问题,然后阅读问题线程中的对话以了解上下文。如果有任何问题或注意到对话未得到解决,我会在该线程中发表评论以获得澄清,然后才能继续前进。
从那里,我本地测试我提出的更改,然后提交拉取请求以修复 GitHub 上的问题。我提交的更改将由项目维护者审查。审查后,我会实施推荐的更改。
除此之外,我还通过发现错误并创建新问题,修复现有问题,为我想在网站上看到的功能提出功能请求,协助完成功能请求,参与代码审查以及与其他贡献者就现有问题进行互动,来为 MDN 做贡献。
我开始为 MDN 做贡献,是在 mdn/yari 存储库中创建了一个问题。我在引用文档时,想澄清一些可能出现错别字的信息。
MDN Web 文档团队欢迎我解决这个问题,因此我打开了一个我提交的 PR 并对其进行了审查/合并,从而修复了问题。Yari 项目维护者详细解释了情况,帮助我理解 MDN Web 文档的内容位于 mdn/content 中,而不是直接位于 mdn/yari 源代码中。我最初打开的问题已转移到 mdn/content,相应的修复已合并。
我在 MDN 的第一个开源体验非常有趣。它帮助我扩展到其他 MDN 存储库中的问题/拉取请求,以更好地了解 MDN Web 文档的工作原理,以便我将来可以再次做出贡献。
Kenrick,@kenrick95
我编辑过内容并为 MDN 存储库贡献过代码:browser-compat-data、interactive-examples 和 yari。
我第一次为内容做贡献是在很久以前,当时我们可以在 MDN 上直接编辑。我不记得那是什么了,可能是修复了错别字。
我第一次代码贡献是针对“interactive-examples”存储库。我注意到编辑器有一些错误,我找到了 GitHub 的问题。在我阅读代码后,我认为该错误很容易修复,所以我继续发送了一个拉取请求
为什么要贡献?
贡献对 MDN 项目至关重要。在谈到他们为何认为对 MDN 的贡献是关键任务时,贡献者强调了不同的方面,强调了它作为面向程序员、网络开发者和学习者的开放、可靠且易于访问的资源的重要性。
对 MDN 文档和基础设施的贡献有助于确保这种资源的不断改进。
对 MDN 的贡献很重要,因为它有助于为开发者提供一个可靠且可访问的网络信息来源。MDN Web 文档作为开源项目,允许贡献者快速发现错误,并轻松地对功能请求进行原型设计。
在公开环境中构建,可以让来自世界各地的贡献者帮助使 MDN 成为每个人都能使用更好的资源,这是不可思议的。 (Tanner)
对支持 MDN 的平台和工具的贡献对于增强用户体验至关重要 (Kenrick)
大小贡献都具有重要意义,并会产生实际影响。关于为 MDN 做贡献的一个普遍误解是,你只能贡献代码,但事实并非如此!
MDN 是人们检查任何 web 开发技术参考资料的首选网站。即使是修正一个错别字这样的小事,对 MDN 的任何贡献都可以帮助成千上万的程序员和学习者。(Irvin)
本地化贡献使学习者和开发者能够以英语以外的语言访问此资源,使其更易于访问。
特别是对于那些难以阅读英文文档的人来说,本地化可以让他们获得最新的可靠知识(Irvin)
本地化贡献可以帮助网络新手找到高质量的文档和说明,这样他们就可以在无需了解英语的情况下构建网站、应用程序等等。MDN 既是技术参考,也是培养新人的绝佳学习场所。从基本概念到复杂技术,语言不应成为在网络上构建内容的障碍。(Julien)
贡献是一种有意义的体验
我们询问贡献者,他们为何发现为 MDN 做贡献是一种有意义的体验。 他们告诉我们,贡献是一种帮助他人的方式,也是学习新事物的途径。他们谈到了志愿者在贡献过程中与他人建立的关系,以及从他人那里学习和帮助他人的可能性。
我最享受贡献的一部分是为某些问题提供修复,这些修复会积极地影响浏览 MDN Web 文档的用户体验。这可能是更新文档以帮助为开发者提供准确的文档,或者帮助在网站上添加新功能,从而为用户提供新的或改进的功能。在我开始为 MDN 做贡献之前,我经常参考 MDN Web 文档,并且真正欣赏为此网站付出的辛勤努力。时至今日,我仍然渴望通过开源贡献来帮助使 MDN Web 文档成为最棒的资源。(Tanner)
我喜欢找到不同的观点来实现相同的事情。这是自然的,因为我与之互动的人来自世界各地,我们都受到当地文化的影响(Kenrick)
我最喜欢贡献的部分绝对是学习和从翻译内容中发现新东西的那部分 (…). 我最难忘的贡献 MDN 的经历是 我有幸与 MDN 相关人员一起度过了一个傍晚,观赏了熔岩和海面的日落,我对他们怀有最深的敬意。 (Julien)
贡献本身的旅程很重要。MDN 维护者的支持和想法的交流是必不可少的。贡献不是孤立进行的,而是志愿者和 MDN 团队之间共同努力的结果。
我最难忘的贡献 MDN 的经历是创建 MDN Web Docs 上代码片段的复制到剪贴板功能。我还记得我在本地 mdn/yari 中为这个功能制作原型,然后开始看到它快速地实现,这真是太棒了。
这个功能的代码审查过程非常令人愉快,并且非常激励人心。该功能的每个步骤都经过了彻底的测试,每个成功都得到了庆祝。
每天早上,我都会醒来,迫不及待地查看我的电子邮件,看看是否有任何标有“Re: [mdn/yari]”的电子邮件,因为这意味着我可以继续与 MDN Web Docs 团队合作。这个贡献真正让我意识到开源软件是多么的有趣和回报。 (Tanner)
我最难忘的贡献 MDN 的经历是在 https://github.com/mdn/yari/pull/172上工作。这项更改本身并不大,但在经过长时间讨论后,解决方案多次发生改变。我很惊讶维护者们是如何开放地接受不同的观点来实现最终目标的 (Kenrick)
值得自豪的贡献
所有的贡献都很重要,但有些贡献对每个志愿者来说都意义非凡。
我最自豪的贡献是为 MDN Web Docs 文档页面上的所有代码片段添加了复制到剪贴板的功能。我在浏览 MDN Web Docs 页面时经常使用这个功能,看到我帮助构建的功能在网站上为其他人使用,感觉真是太棒了。
这个贡献是我希望在网站上看到的,在与 Yari 团队讨论了这个功能后,我开始制作原型并参与代码审查,直到这个功能被合并到网站中。这个工具是我为 mdn/yari 做出的第一个“大型”功能请求,我为此感到非常自豪。 (Tanner)
我最自豪的贡献是在 2017 年将 HTML、CSS 和 JavaScript 部分完整并更新为法语,之前有人告诉我这是不可能的 :)。最近,我帮助重建了新 MDN 平台上本地化人员使用的工具,并添加了一个跟踪仪表板 (Julien)
Kenrick 最自豪的是添加了一个功能,可以在侧边栏中标记你正在查看的页面。这个更改对于视觉学习者来说意义重大。
这是一个简单的更改,但我认为这个 UX 改进很重要,因为它可以作为阅读者的指南,让他们了解与他们正在阅读的文档相关的其他文档。
入门指南
有很多方法可以为 MDN 做贡献!我们经验丰富的贡献者建议从报告问题和尝试修复问题开始,关注问题跟踪器并熟悉 GitHub。不要害怕提出问题,也不要害怕犯错误,会有很多人帮助你并审查你的工作。
Go 以你自己的速度,不要犹豫提出问题。如果可以,尝试破解一些东西来修复你在项目中遇到的问题。如果你渴望学习 Web 知识,可以将 MDN 作为一种贡献开源的方式 (Julien)
如果你发现 MDN 文档中存在任何错误(例如错别字),你可以直接点击“在 Github 上编辑”按钮进行修复。审查团队会确保它是好的,所以你不用担心会犯任何错误。 (Irvin)
从迈出第一步开始,贡献者就可以逐步处理更困难的问题和贡献。
不要害怕阅读代码。从 GitHub 中选择任何问题,你就可以轻松地开始贡献代码! (Kenrick)
我对新贡献者或刚开始接触开源的人的建议是,先熟悉他们想要贡献的项目,然后开始关注问题跟踪器。
通过查看问题并阅读评论来开始积极参与项目,这是一种学习项目知识的可靠方法。如果你还没有准备好贡献,但想就某个话题进行讨论,可以在问题线程中发表评论,或者在仓库中创建一个讨论,这是一个激发人们讨论某个话题的好方法。
最后,对于那些考虑开始贡献开源软件的人来说,了解 Git 等版本控制软件是推荐的。在刚开始接触开源的时候,要乐于以任何方式提供帮助,我从 MDN Web Docs 上的文档修复工作开始,然后逐渐开始做更复杂的贡献,因为我对项目越来越熟悉。 (Tanner)
如果你想开始贡献,请查看以下资源
如果你有任何问题,请加入 MDN 的矩阵聊天室。
关于 Francesca Minelli
Mozilla 的社区经理。