如何在highlight.js中关闭自动语言检测并渲染所有块?

Kun*_*Ren 5 html javascript markdown syntax-highlighting

我在我的网站由Github页面使用redcarpet2 markdown.我将语法高亮显示从pygments切换到highlight.js.

我为每个代码块指定了语言

```r
(some r code)
```
Run Code Online (Sandbox Code Playgroud)

所以我不需要通过highlight.js自动语言检测,其实如果我不指定它总是会误识别我的R代码里面到PHP或Perl代码的语言.

问题是:HTML标记以<code>某种方式混合.

如果没有渲染,markdown会正确转换<code class="r language-r" data-lang="r"></code>应该呈现为R代码的代码块.但是,当我加载highlight.js和运行<script>hljs.initHighlightingOnLoad();</script>,自动侦测也工作,使混合类的代码标签<code class="r language-r hljs php" data-lang="r"></code>,其中php应该被淘汰.

我该如何解决这个问题?

小智 5

可能您highlight.pack.js不包含 R 语言,您可以在此处下载它只需勾选相应的复选框即可。当 HighlightJS 看到未知的code标签类时,它会尝试自动猜测正确的语言。