gpt4 book ai didi

javascript - 使用highlight.js时如何指定语言?

转载 作者:太空狗 更新时间:2023-10-29 16:06:52 28 4
gpt4 key购买 nike

我正在使用 highlight.js 来突出显示 HTML 中的代码块。 highlight.js 可以找到所有代码块并自动确定语言,但我想手动指定元素和语言。通过指定语言,我想避免确定它是哪种语言的开销(虽然 highlight.js 很快,但我想如果它跳过语言检测可能会更快)。

在 HTML 中,我将语言指定为一个类(我需要它来设置代码块的某些样式)。

<pre>
<code class="python">
print "Hello"
</code>
</pre>

在 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]);

但是,我不确定这样做是否正确。首先,我不清楚这是否是我可以依赖的官方 API。其次,我认为 highlight.js 仍在尝试确定代码块是否使用给定语言(这是我首先想要避免的)。

最佳答案

您是在迭代“前代码”元素吗?但是您在“code”标签而不是“pre”标签中指定了语言。我遇到了同样的问题,并在最上面的元素上指定语言解决了这个问题。您的 html 代码应如下所示:

<pre class="python">
<code>
print "Hello"
</code>
</pre>

还要确保“python”包含在您使用的 highlight.js 包中:)

关于javascript - 使用highlight.js时如何指定语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24122530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com