我在Github网页托管的网站上使用redcarpet2 markdown。我将语法高亮显示从pygments切换到highlight.js。
我通过
为每个代码块指定了语言```r
(some r code)
```
所以我不需要通过highlight.js进行自动语言检测,实际上如果我没有指定语言,它总是会错误地将我的R代码识别为php或perl代码。
问题是:<code>
的HTML标记在某种程度上是混合的。
没有渲染,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
应该被删除。
我该如何解决这个问题?
答案 0 :(得分:4)
您的highlight.pack.js
可能不包含R语言,您可以下载here,只需勾选相应的复选框即可。当HighlightJS看到code
标记的未知类时,它会尝试自动猜测正确的语言。
答案 1 :(得分:0)
可以使用hljs.configure({languages:[]})
禁用Highlight.js自动语言检测。仍然会突出显示具有明确指定语言的代码块。
<script>hljs.configure({languages:[]});hljs.initHighlightingOnLoad();</script>