本指南介绍如何在 Discourse 中配置可用于语法高亮的编程语言。
所需用户级别:管理员
语法高亮通过应用基于编程语言的格式来增强代码块的可读性。您可以自定义 Discourse 中可用于语法高亮的语言。
配置 highlighted_languages 站点设置
要配置语法高亮编程语言列表:
- 导航到管理面板。
- 转到“设置”。
- 搜索
highlighted_languages站点设置。在此设置中,您可以定义哪些语言可用于语法高亮。输入您想要支持的语言名称,用逗号分隔。
添加对其他语言的支持
如果您想要的语言未随 highlight.js 一起打包,则需要手动添加。以下是实现此目的的步骤:
- 找到您语言的模块: 找到支持您要添加的语言的 highlight.js 模块。例如,要添加 Solidity,您可以使用
highlightjs-solidity包。
- Solidity:
https://github.com/highlightjs/highlightjs-solidity- Supercollider:
https://github.com/highlightjs/highlightjs-supercollider- 使用主题组件集成模块:
- 获取所需语言的 HighlightJS 脚本。
- 在 Discourse 中创建一个新的主题组件。
- 将脚本添加到主题组件中,以确保其正确集成。
我想添加 Solidity,这是一个未随 highlight.js 一起打包的语言。它在此包中提供:GitHub - highlightjs/highlightjs-solidity
我不确定如何做到这一点。我已经将其添加到 discourse 设置中。它会为我找到包并处理所有事情,还是我必须将这个额外的 JavaScript 包放在某个地方?我将不胜感激 ![]()
我也对此感兴趣,以通过 GitHub - highlightjs/highlightjs-supercollider 支持 supercollider 语言的语法高亮显示。
Bump。如果我们想为 highlight.js 中尚未支持的语言添加语法高亮支持,是否有任何方法可以直接添加,例如通过主题组件,还是我们需要让上游 highlight.js 的人员接受一个包含附加语法的 PR?
我之所以这样问,是因为有一对相当晦涩的语言 Archetype Description Language (ADL) 和 Archetype Query Language (AQL),discourse.openehr.org 的所有者希望它们能够进行语法高亮。他们具备构建解析器/高亮器的技术能力,只是需要知道如何在 Discourse 中实现它。
这完全可以作为一个主题组件来实现!一旦你准备好了 HighlightJS 脚本,请在这里 ping 我,我可以帮你构建 #theme-component。
感谢 @Falco!我会构建脚本,准备好后会在此回复。
在过去一两周里,我注意到代码高亮似乎没有按预期注册。请参见此处的示例(Leaver Process Deprovisioning - #2 by Carlatto - ISC Discussion and Questions - SailPoint Developer Community Java)时,它会应用颜色。
这是另一个 XML 示例:
https://developer.sailpoint.com/discuss/t/get-application-roles-as-well-as-search-for-the-roles/78194?u=derek_putnam
我们有数十种语言需要检测。我看到此设置下的副文本说,过多的语言会导致性能下降,但我认为我们最近没有添加任何内容。

