【问题标题】:How can I add language aliases to highlightjs?如何将语言别名添加到 highlightjs?
【发布时间】:2019-09-15 13:06:24
【问题描述】:

根据highlightjs docs,您可以将一组语言传递给configure 对象。如下所示文档中的示例并没有举例说明如何使用languages参数。

hljs.configure({
  tabReplace: '    ', // 4 spaces
  classPrefix: ''     // don't append class prefix
                      // … other options aren't changed
})
hljs.initHighlighting();

从 emacs 导出源代码使用类 src-language 而不仅仅是 language,并且 highlightjs 有时会错误地自动检测。

因此它将src-emacs-lisp 识别为scheme 而不是elisp 或只是lisp。那么对于别名列表,如何配置对象的languages数组呢?有没有可行的例子?

【问题讨论】:

    标签: arrays associative-array highlightjs


    【解决方案1】:

    例如,如果 highlightjs 安装支持 bash 之类的 shell,但不支持 zshfish,并且作为用户,您认为 bash 配置将适用于 zshfish,您可以这样配置:

    var bash = hljs.requireLanguage("bash").rawDefinition();
    bash.aliases.concat(["zsh","fish","etc"])
    // push the new bash back overtop of the old one
    hljs.registerLanguage("bash", bash)
    

    关于问题的示例,其中 org-mode 将 lisp 代码导出为 src-emacs-lisplisp 在 highlightjs 中配置,代码将是

    var lispHighlight = hljs.requireLanguage("lisp").rawDefinition();
    lispHighlight.aliases.concat(["src-emacs-lisp"])
    hljs.registerLanguage("lisp", lispHighlight)
    

    【讨论】:

    • 我正在尝试做同样的事情,但对于 kts/kotlin:const kotlin = hljs.getLanguage("kotlin"); const kotlinDef = hljs.getLanguage("kotlin").rawDefinition(); kotlinDef.aliases.concat["kt", "kts", "kotlin"]; hljs.registerLanguage(kotlin.name, kotlinDef); 我在 htljs 10.5.0 上收到 Language definition for 'Kotlin' could not be registered. 错误
    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多