欢迎 Yari:MDN Web Docs 拥有一个新的平台

经过数月的紧张工作,终于迎来了这一天:MDN Web Docs 的新平台(代号为 Yari)终于发布了!

icon for yari, includes a man with a spear, plus the text yari, the mdn web docs platform

从 11 月 2 日到 12 月 14 日,我们进行了一个 Beta 测试阶段,在这个阶段中,许多热心的社区成员测试了新平台,提交了内容更改,让我们尝试了新的贡献工作流程,并对平台和样式提出了改进建议。对所有人的辛勤付出,我们表示衷心的感谢。

这篇文章旨在提供有关我们目前所处阶段、未来目标以及您可以如何帮助的更新。

我们目前所处阶段

我们在短时间内构建了一个完善的系统,它在很大程度上改进了之前的平台,并解决了许多实际问题。当然,还有很多工作要做,但这个新版本提供了一个稳定的基础来进行迭代,您将在未来几个月看到许多进一步的改进。以下是我们目前所处阶段的概览。

在 GitHub 上进行贡献

新平台最显著的区别在于我们已经将内容从 SQL 数据库分散到 git 存储库中的文件。要编辑内容,您现在需要针对 https://github.com/mdn/content 存储库提交拉取请求,而不是使用旧的 WYSIWYG 编辑器编辑 wiki。

这在贡献工作流程方面具有巨大优势 - 由于它是一个 GitHub 存储库,您可以根据自己的喜好将其插入到工作流程中,批量更改更易于以编程方式进行,并且您可以将对多个页面的编辑合并到单个拉取请求中,而不是将其分散为独立的编辑,并且我们可以对编辑应用智能的自动 linting,从而加快工作速度。

内容存储库最初带有一些基本的 CLI 工具,可以帮助您完成基本任务,例如 yarn start(创建文档在 MDN 上渲染后的实时预览)、yarn content create(添加新页面)、yarn content move(移动现有页面)等。您可以在 存储库的 README 文件 中找到有关这些工具以及其他贡献说明的更多详细信息。

关注社区

社区互动不仅会得到改善,而且会发生改变。您现在可以在最终确定并提交拉取请求之前就对其进行更改,提出建议并进行迭代,而不必担心第一次就要做到完美。

我们认为,这种模式将让贡献者对进行更改更有信心,并让我们能够与社区建立更好的关系,帮助他们改进自己的贡献。

减轻开发者负担

这次更新还大大减轻了我们的开发人员维护负担。现有的(Kuma)平台很复杂,难以维护,添加新功能非常困难。这次更新将大大简化平台代码 - 我们估计可以删除现有的代码库中的大部分代码,这意味着更容易进行维护和贡献。

这同样适用于我们的前端架构:现有的 MDN 平台存在许多前端不一致和可访问性问题,我们一直希望解决这些问题。迁移到一个新的、简化的平台为我们提供了一个绝佳的机会来解决这些问题。

我们接下来的工作

在未来,我们可以采取许多措施来进一步改进新平台。例如,上周我们已经讨论了关于 MDN l10n 未来计划 的内容。

明年我们将首先解决新平台中的问题。之后,我们可以开始比以前更好地服务我们的读者和贡献者,更快、更自信地实施新功能,这将导致 MDN 变得更加有用,并拥有更强大的贡献模式。

以下部分并非最终确定,但它们确实提供了一个关于我们对平台的未来计划的有用想法。我们计划在未来发布一个公开路线图,以便您可以了解我们的进展情况并提出建议。

迁移到 Markdown

在发布时,内容以 HTML 格式存储。这没什么问题 - 我们都了解一些 HTML - 但它并非最方便的编辑和编写格式,尤其是当您要从头开始创建一个较大的新页面时。大多数人发现 Markdown 比 HTML 更易于编写,因此我们希望最终将核心内容存储在 Markdown(或其他格式)中,而不是 HTML 中。

改进搜索

长期以来,MDN 的搜索功能一直不尽如人意。展望未来,我们不仅希望升级搜索功能以返回有用的结果,而且还希望更有效地进行搜索,例如模糊搜索、按流行度搜索、按标题搜索、摘要搜索、全文搜索等等。

表示 MDN 元页面

目前,我们的新内容存储库中只包含 MDN 内容页面。我们希望最终停止使用旧的首页、个人资料和搜索页面(它们目前仍由我们旧的基于 Django 的平台提供服务),并将它们带入新平台,以利用新平台带来的所有优势。

还有更多!

我们还想开始探索:

  • 优化文件附件
  • 在 MDN 上实施和强制执行 CSP
  • 对所有代码片段进行自动 linting 和格式化
  • 逐步删除 MDN 内容中剩余的旧式 KumaScript 宏,根据需要删除、渲染或替换它们。例如,链接宏可以被简单地渲染出来,因为标准的 HTML 链接可以正常工作,而我们拥有的所有侧边栏宏都应该被内置于实际平台中的适当的侧边栏系统所取代。

您可以如何帮助

如您从上述下一步中看到的,还有很多工作要做,我们希望社区能够帮助我们进行未来的 MDN 内容和平台工作。

  • 如果您更感兴趣的是帮助进行内容工作,您可以在 参与 MDN 贡献 中找到帮助方法。
  • 如果您更感兴趣的是帮助进行 MDN 平台开发,最好的学习起点是 Yari README
  • 至于寻找一个讨论 MDN 的良好通用场所,您可以加入 MDN Web Docs 聊天室 的讨论,该聊天室位于 Matrix 上。

关于 Chris Mills

Chris Mills 是 Mozilla 的高级技术作家,负责编写有关开放式 Web 应用程序、HTML/CSS/JavaScript、A11y、WebAssembly 等的文档和演示。他喜欢摆弄 Web 技术,并偶尔在会议和大学发表技术演讲。他曾为 Opera 和 W3C 工作,喜欢演奏重金属鼓和喝好啤酒。他与他的夫人和三个可爱的儿女居住在英国曼彻斯特附近。

更多 Chris Mills 的文章...


10 条评论

  1. maxloh

    以下 MDN 文章建议用户通过检查代码示例添加到 MDN 的时间来确定代码示例的许可证。如果代码示例是在 2010 年 8 月 20 日之后添加的,则它是 CC0,否则它是 MIT。
    https://mdn.org.cn/en-US/docs/MDN/About#Copyrights_and_licenses

    但是,在 MDN 迁移到 Yari 之后,这种方法不再有效,因为 GitHub 存储库不包含 2020 年 9 月 15 日之前文章的历史记录。

    在迁移到 Yari 之后,我们应该如何确定特定代码示例适用的许可证?

    2020 年 12 月 14 日 下午 5:37

    1. Chris Mills

      是的,这是一个问题,我们目前正在研究处理这个问题的最佳方法。很快就会有消息。

      2020 年 12 月 15 日 上午 0:27

  2. Al

    恭喜!

    2020 年 12 月 15 日 上午 4:44

  3. Yinsi Rio

    题外话,这张照片是基于《战国无双》中的真田幸村吗?

    2020 年 12 月 15 日 上午 8:04

  4. Rami Yushuvaev

    好消息!

    @Chris,我们现在可以开始使用 Markdown 了吗?

    2020 年 12 月 15 日 下午 12:56

    1. Chris Mills

      还没呢 ;-)

      迁移到 Markdown 是未来平台迭代的路线图中的一个项目。

      2020 年 12 月 16 日 上午 01:28

  5. h.rayflood

    标志图片中的武士是光荣特库摩控股株式会社开发的《战国无双 4》中的真田幸村。
    https://www.gamecity.ne.jp/sengoku4/chara00.html
    https://www.koeitecmoamerica.com/sw4/chara00.html
    这张图片是否存在任何版权问题?因为这张图片是基于原始图片的。

    2020 年 12 月 15 日 下午 14:43

  6. Tim E

    这真是太棒了!我们在康泰纳仕做了很多关于 Markdown 的研究,我可以说它对非技术人员来说有很多问题。如果所有使用文档的人都精通 Markdown,那就太好了!

    我们遇到的问题是,所有标记数据都存放在一个类似“数据湖”的地方,这使得批量分析或从中提取信息变得很困难。这使得我们很难了解哪些功能被频繁使用以及我们应该为编辑提供哪些新功能。

    根本不存在无效的 Markdown!这让我感到很意外。为了提供反馈,我们需要了解什么看起来像错误。

    剩下的内容与富文本编辑有关,但事实证明,这些内容为将我们的编辑从直接在 Markdown 中编辑迁移到富文本编辑带来了一个主要的痛点。分隔符运行很复杂,而且要理解如何在不破坏用户意图的情况下对某个东西进行适当嵌套,这很混乱。90% 的文本都可以很容易地由机器用 Markdown 编写,但剩下的部分就变得非常难以正确处理。(我个人花了几年时间编写代码来整理我们的 Markdown)。

    最后,在不使用空格的语言中用 Markdown 编写,会使得不可能按他们想要的方式格式化特定的文本范围(部分原因是我们自定义的 Markdown 扩展)。这主要是由于 Markdown 中的分隔符运行方式以及它们与空格的交互方式。

    (还要注意,Markdown 不是为存储而设计的,参见:https://twitter.com/gruber/status/1106278808137666563

    如果有人想聊得更多,我们很乐意!请随时联系我们,再次祝贺你取得了这一里程碑!

    2020 年 12 月 15 日 下午 17:18

  7. Knissing

    太棒了。迫不及待想要贡献。

    2020 年 12 月 16 日 下午 19:58

  8. Sudarshan

    这是一个好消息!感谢你们所有的努力。
    我会尽我所能帮助。

    2020 年 12 月 26 日 下午 17:05

本文的评论已关闭。