我正在使用highlight.js突出显示HTML中的代码块.highlight.js可以找到所有代码块并自动确定语言,但我想手动指定元素和语言.通过指定语言,我希望避免确定它是哪种语言的开销(尽管highlight.js很快,如果它会跳过语言检测,它可能会更快,我猜).
在HTML中我将语言指定为一个类(我需要这个代码块的一些样式).
<pre>
<code class="python">
print "Hello"
</code>
</pre>
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,我迭代代码元素(由于某些其他原因,我需要获取这些元素的列表).当我迭代代码元素时,我调用hljs.highlightBlock函数.因为我知道语言(存储为类),我认为实际告诉highlight.js它应该突出显示的语言是有利的.
从highlight.js网站上的用法示例中我猜到我可以调用hljs.configure函数并指定要尝试的语言列表:
// ...
if (codeElement.hasClass('python'))
language = 'python';
else if (codeElement.hasClass('bash'))
language = 'bash';
hljs.configure({languages: [language]});
hljs.highlightBlock(codeElement[0]);
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这是否是正确的方法.首先,我不清楚这是否是我可以依赖的官方API.其次,我认为highlight.js仍然试图确定代码块是否使用给定的语言(这是我想要首先避免的).