9 月完成的事项
以下是 9 月份对 代码、数据和工具 的更新,这些内容支持 MDN Web Docs
- 推出 MDN 支付功能
- 改进 MDN 的无障碍资源
- 删除 15% 的 KumaScript 宏
- 已发布的调整和修复 通过合并 379 个拉取请求实现,其中包括来自 38 位新贡献者的 66 个拉取请求。
10 月份的计划
推出 MDN 支付功能
我们一直在思考 MDN 的发展方向。我们希望与开发者建立更直接的联系,并为他们提供他们在 Web 项目中取得成功所需的宝贵功能和优势。我们研究了几种有希望的想法,并决定直接支付将是第一个实验。已登录用户和 1% 的匿名访客会看到要求他们直接支持 MDN 的横幅。有关更多信息,请参阅 Ali Spivak 和 Kadir Topal 的帖子,支持 MDN 的新方式。

MDN 上的支付页面
实施阶段始于 8 月份,当时 Potato London 被聘用来设计和实施支付功能。Potato 在 5 周的计划中出色地完成了任务,包括多次设计会议、每日站立会议,以及在 MDN 工作周期间从布里斯托尔到伦敦的面对面会面。感谢 Potato 团队的辛勤工作,包括 Charlie Harding、Josh Jarvis、Matt Hall、Michał Macioszczyk、Philip Lackmaker 和 Rachel Lee。
Mozilla 全球的员工帮助这个项目按时完成,从编写文案到安全审查再到 拉取请求审查和修复,包括我、Ali Spivak、Caglar Ulucenk、Diane Tate、Havi Hoffman、Kadir Topal、Kevin Fann、Ryan Johnson 和 Schalk Neethling。
改进 MDN 的无障碍资源
在工作周之后,我们与无障碍专家会面,参加了 MDN 黑客马拉松活动。志愿者和员工改善了 MDN 的无障碍覆盖范围。这包括对无障碍主题的讨论、改进和扩展 MDN 的文档以及编写相关博客文章。它还包括代码更改,例如改善 MDN 的颜色对比度和添加屏幕阅读器的标记。有关详细信息,请参阅 Janet Swisher 的文章,MDN 黑客马拉松:为 MDN Web Docs 提供更好的无障碍功能。
Seren Davies (@ninjanails) 也参加了活动,许多人的指甲都被涂上了颜色。

从上图顺时针方向:Chris Mills (headless mode)、Glenda Sims、Bruce Lawson(手持相机)、Irene Smith、Estelle Weyl、Michiel Bijl 和 Seren Davies
删除 15% 的 KumaScript 宏
MDN 团队在伦敦办公室聚会了一周,回顾了该季度并规划了来年。
我们讨论了 KumaScript,我们的宏语言和渲染服务,它实现了标准化的侧边栏、横幅和内部链接。自从我们在 2016 年 11 月 将宏迁移到 GitHub 之后,分析宏变得更加容易。我们对性能提升感到满意,但代码审查要花费很长时间,翻译很困难,而且编写 测试 的速度很慢。这些问题导致 8 月份出现了一个问题,导致侧边栏宏出现故障,所有 API 参考页面都显示错误整整一天 (bug 1487640)。
员工对 KumaScript 越来越没有耐心,希望用更好的东西来替换它。Florian 在 Discourse 上写下了会议记录,标题为 KumaScript 的下一步计划。
Florian、Will Bamberg 和 Ryan Johnson 开始执行第一步,识别和删除未使用的或很少使用的宏,例如 hello.ejs。(PR 849)。
该团队在 2 周内删除了 72 个宏,并将继续在今年剩余时间内删除这些宏。这将剩下 数量更少的重要宏,我们可以分析这些宏以确定项目的下一步计划。
已发布的调整和修复
9 月份合并了 379 个 PR
- 135 个 mdn/browser-compat-data PR
- 83 个 mdn/kumascript PR
- 47 个 mozilla/kuma PR
- 38 个 mdn/interactive-examples PR
- 28 个 mdn/infra PR
- 24 个 mdn/bob PR
- 10 个 mdn/data PR
- 4 个 mdn/learning-area PR
- 3 个 mdn/webaudio-examples PR
- 2 个 mdn/dom-examples PR
- 2 个 mdn/webextensions-examples PR
- 1 个 mdn/django-locallibrary-tutorial PR
- 1 个 mdn/ansible-jenkins PR
- 1 个 mdn/css-examples PR
其中包括一些重要的更改和修复
EmbedLiveSample
:避免 XSS,并添加allow=
参数 (KumaScript PR 786),来自 我。此 PR 和相关的 PR 修复了实时示例,例如 媒体约束,这些示例在 Chrome 和 Safari 开始在<iframe>
中强制执行功能策略时出现故障。请参阅 Google 的解释页面、策略控制的功能 和 bug 1482159。- 结束兼容性表测试版 (KumaScript PR 860),来自 Florian Scholz,以及 Kuma PR 4988,来自 Stephanie Hobson。随着 96% 的数据迁移,以及超过 6,500 个页面使用新的布局,是时候停止称其为测试版了。
- Python 3 的第一个单元测试修复部分 (Kuma PR 4910),来自 Anthony Maton。我们计划在今年年底之前切换到 Python 3。
- 更新
<div>
示例以使用 CC0 图像 (交互式示例 PR 1088),来自 Eric Shepherd,这是一个持续进行的项目,旨在为交互式示例存储库获得一致的许可。 - 添加控制台的第一个迭代 (bob PR 129),来自 Schalk Neethling,这是一个针对 WebAPI 交互式示例的新功能,用于查看 JavaScript 代码片段的输出。
- 根据重新许可计划删除某些贡献 (数据 PR 294),以及将存储库许可证更改为 CC0 (数据 PR 301),来自 Chris Mills。这是 为期 4 个月的努力 的一部分,旨在将 mdn/data 存储库 和 mdn-data npm 包 的许可证更改为 CC0-1.0,以便数据能够在类似于 mdn-browser-compat-data npm 包 和数据的上下文中使用。
66 个拉取请求来自首次贡献者
- 更新
onpopstate
事件的兼容性数据 (BCD PR 2697),来自 Abhishek Gupta。 - 更新
ScreenOrientation
的数据 (PR 2698),来自 Christophe Coevoet(首次对 BCD 贡献)。 - 更新
flex-grow
IE 的支持 (BCD PR 2701),来自 Nils Lundquist。 - 为 CSS
::-ms-value
伪元素添加兼容性数据 (BCD PR 2708),来自 Andrew C. Dvorak。 - 更新
Worker
name
选项的兼容性数据 (BCD PR 2709),来自 Johan Holmerin。 - 为 WebExtension
find
可选权限添加兼容性数据 (PR 2710),以及为 WebExtensiontabHide
可选权限添加兼容性数据 (PR 2719),来自 glacambre。 - 更新
upgrade-insecure-requests
Safari 的兼容性 (BCD PR 2729),来自 David Harbage。 - Chrome 不会在 XHTML 中延迟脚本 (BCD PR 2754),来自 Franklin Tse。
- 修复
<script>
integrity
的 Edge 和 Safari (PR 2765),更新immutable
响应的标准状态 (PR 2793),以及 3 个更多 PR,来自 Franklin Yu。 - 为 Safari 和 IE 添加 JavaScript 动态导入支持 (BCD PR 2785),来自 dhodder。
- 将
partial-implementation
添加到 CSS 的align-content
(PR 2786),修复Node.ownerDocument
注释中的拼写错误 (PR 2787),以及 3 个更多 PR,来自 Maria Paktiti。 - 更新
HTMLElement.click
支持表 (PR 2789),以及更新HTMLFormElement.submit
兼容性表 (PR 2796),来自 Daniel Smith。 - 修复
RTCPeerConnection
connectionState
兼容性信息 (BCD PR 2815),来自 Philipp Hancke。 - 将
<menuitem>
元素标记为已弃用 (PR 2837),将<contextMenu>
标记为已弃用 (PR 2838),以及 5 个更多 PR,来自 Michael[tm] Smith(首次对 BCD 贡献)。 - 为 MS Edge 添加动态导入状态 (BCD PR 2844),来自 dennisameling。
- 修复了 `RTCPeerConnection.canTrickleIceCandidates` 支持问题(BCD PR 2849),来自 Sean Bright。
- 更新了 node.js 对 `Date[@@toPrimitive]` 的支持(BCD PR 2865),来自 Fayti1703。
- 添加了 Safari 对 `navigator.onLine` 兼容性的支持(BCD PR 2866),来自 Márcio Lucas R. Oliveira。
- 暂时注释掉指示符 `:matches(…)` 块(PR 4961),来自 ExE Boss(对 Kuma 的首次贡献)。
- 减少了网页字体使用(PR 4967),并从 Kuma 中删除了 Zilla Bold 的预加载(PR 4982),来自 tkadlec。
- MDN 贡献支付流程实现(PR 4970),贡献视图流程(PR 4976),以及 3 个更多 PR 到 Kuma,来自 Josh Jarvis。
- 添加了更多有用的方法来访问 `Promise`(交互式示例 PR 1124),来自 Dan Levy。
- 处理新的 Jenkins/AWS 服务(PR 1135),使 `irc-notify.sh` 再次可执行(PR 1136),并将 `awscli` 配置文件设为可选(PR 1137),来自 Ryan Johnson(对交互式示例的首次贡献)。
- 组中的每个单选按钮都应该具有不同的 `value` 属性(交互式示例 PR 1141),来自 Konstantin Rouda。
- 修复了密码示例中的错误标签选择器(交互式示例 PR 1147),来自 Gene Wood。
- 更新图片示例以在小屏幕上更好地工作(PR 1149),来自 Olle Lauri Boström(对交互式示例的首次贡献)。
- 提高了代码示例中注释的颜色对比度(交互式示例 PR 1159),来自 Seren D。
- 为 AES 备份解密添加了密码信息(PR 63),来自 Dave Parfitt(对 infra 的首次贡献)。
- `rm -rf elbs`(PR 86),来自 Josh Mize(对 infra 的首次贡献)。
- 更新语法以匹配最新规范(Data PR 104),来自 Albert Scheiner。
- 添加了 `:matches(…)` 选择器(PR 284),添加了 `||` 列组合器(PR 285),以及添加了 `:has(…)` 选择器(PR 286),来自 ExE Boss(对 Data 的首次贡献)。
- 修复了备用段落中的文件名路径(learning-area PR 94),来自 RACZ Andras。
- 删除了未使用的变量(PR 95),并修复了未定义的变量(PR 96),到 learning-area,来自 Xu Chunyang。
- 将对母鸡的引用从公鸡改为母鸡。(PR 99),来自 Irene Smith(对 learning-area 的首次贡献)。
- 添加了 IIR 滤波器演示(PR 10),并添加了音频基础知识演示(PR 11),到 webaudio-examples,来自 Ruth John。
- 添加了 IIR 滤波器演示(PR 12),来自 Chris Mills(对 webaudio-examples 的首次贡献)。
- 使用 `switch`,`srcObject`,返回 `response.blob`。尝试使视频下载不只一次。(dom-examples PR 28),来自 ZaneHannanAU。
- 修复了 `models.py` 中的语法错误(django-locallibrary-tutorial PR 22),来自 Leonard Meerwood。
- 使 `apt` 能够执行自动安全更新(PR 4),来自 Ed Lim(对 ansible-jenkins 的首次贡献)。
计划于 10 月进行
10 月是第四季度的开始。我们有一些年度目标需要完成,包括 Python 3 迁移、下一轮支付实验以及性能实验。本季度还包含主要的节日和 Mozilla 全员大会,这意味着工作日约为其他季度的二分之一。开始工作吧!
迁移到 Mozilla IT 基础设施
10 月份,Ryan Johnson,Ed Lim,Dave Parfitt 和 Josh Mize 将完成 MDN 服务在 Mozilla IT 基础设施中的设置,并将生产流量切换到新系统。这将完成 MDN 从 Mozilla 营销到新兴技术的迁移,该迁移始于 2018 年 2 月。团队正在组织切换清单,并尝试并行暂存环境。
生产切换计划于 10 月 29 日进行,将包括几个小时的网站只读模式。
关于 John Whitlock
John 是一名网页开发者,负责 MDN Web Docs 的引擎。