静态语法高亮


静态语法高亮指的是对用户_无法_更改的代码进行高亮。这包括代码片段、迭代以及更多内容。

Note

在线编辑器_不_使用静态语法高亮,因为用户可以随时修改代码。 如果你想进一步了解我们在在线编辑器中如何处理语法高亮,请查阅动态语法高亮文档。

实现

静态语法高亮通过 highlightjs 库 实现。

为你的语言添加支持时,有三种方案:

  1. 该语言已被 highlightjs _开箱即用_地支持(即已被列为受支持的语言)。 如果是这样,请继续阅读配置轨道一节。
  2. 该语言通过已有的 highlightjs 插件获得支持。 如果是这样,请继续阅读使用已有插件一节。
  3. 该语言_不_受支持。 此时有三种方案:
    1. 从零开始编写一个 highlightjs 插件,详见创建新插件一节。
    2. 你的语言的语法与另一种语言的语法(十分)相似(例如 Unison 的语法与 Haskell 相似),这种情况下,你可以考虑为你的语言使用那种语言的语法高亮。 更多信息请参阅配置轨道一节。
    3. 不使用静态语法高亮。

配置轨道

要为你的轨道所使用的语言启用 highlightjs 支持,你需要修改该轨道的 config.json文件。 在config.json文件中,把online_editor.highlightjs_language键添加或设置为合适的 highlightjs 语言标识符(可在文档中找到)。

示例

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

使用已有插件

要使用已有插件,该插件必须已发布到 NPM 上。 如果该插件尚未发布到 NPM,你可以:

  1. 询问插件作者是否愿意将其发布到 NPM。
  2. 复刻该代码仓库并自行发布。
  3. 让我们(Exercism)复刻该代码仓库并由我们发布。 为此,请在论坛上发起一个话题提出请求。

下一步是启用插件。

启用插件

要启用某个插件(该插件必须已发布到 NPM 上),请在论坛上发起一个话题,请我们为该插件在网站上添加支持。 然后我们(Exercism)会创建一个 Pull Request,把该插件添加到网站上。 PR 合并后,你就能按照配置轨道一节中的说明启用 highlightjs 支持。

创建新插件

如果你想创建插件,有两种托管方式:

  1. 在你的个人账号下创建一个代码仓库并自行发布。
  2. 让我们(Exercism)创建代码仓库并由我们发布。 为此,请在论坛上发起一个话题提出请求。

有了代码仓库之后,按照语言贡献说明来实现该插件。

然后你需要把该插件发布到 NPM。 下一步是启用插件。

使用另一种语言

你的语言的语法与另一种语言的语法(十分)相似,这种情况下,你可以考虑为你的语言使用那种语言的语法高亮。 为此,请把轨道配置为使用另一种语言的 highlightjs 语言标识符。 更多信息请参阅配置轨道一节。