自 ry 宣布在 Deno 两周年的 2020 年 5 月 13 日发布首个 Deno 1.0 正式版后,Deno 再一次受到了开发者们的关注。
上周我也组织了一些对 Deno 感兴趣的志愿者,争取为 Deno 生态添砖加瓦。第一件事就是翻译中文 API 手册。
经过志愿者们的努力 3 天时间就翻译完了 80% 的文档,当时的最新版是 Deno v0.40。依据惯例每周五 Deno 都会发布一个小版本,终于我们还是迎来了 Deno 的更新,而如何维护中文文档和英文文档的同步更新的问题也摆在了我们面前。
我先是创建了deno_api_diff项目,通过 GitHub 自带的 diff 视图功能维护.d.ts
版本之间的变更:
但这种方式依然有很大问题,通过最后一列的 Stats 可以看出来,每次 Deno 版本升级后,.d.ts
文件的变更 少则几百行,多则上千行。
最终经过社区的讨论我们决定保留英文原文,并通过自定义 tag 的方式做中文翻译,通过修改 typedoc 的默认主题还可以实现中英文对照的功能。
于是我开发了 typedoc-deno-theme 主题来显示逐行的中英文对照。另外还开发了 typedoc-plugin-deno 来解析自定义 tag。我们使用的自定义 tag 有:@i18n
、@param_i18n
、@return_i18n
等。
由于是第一次写 typedoc 插件和主题,再加之 typedoc 的文档和文章太匮乏,于是我通读了 src/lib/converter 目录里面的上千行代码,最终完成了对这些自定义 tag 的解析和显示。效果如下:
目前typedoc-plugin-deno是一个通过插件,但是typedoc-deno-theme则是一个专门为 Deno 中文文档开发的主题。以后我会开发一个更加通用的支持双语对照的插件和主题,可用于任何基于 typedoc 的双语文档。
距离 Deno 的首个正式版越来越近了,我会在这个五一假期彻底重构vscode-deno扩展。如果你对 vscode 扩展开发比较熟悉,或者想参与进来,可以与我一起开发这个扩展。
如果你对 Deno 感兴趣可以关注专栏[Deno 开发者社区]。