admin管理员组

文章数量:1327665

I use redcarpet2 markdown in my site hosted by Github pages. I switch the syntax highlighter from pygments to highlight.js.

I specified the language for each code block by

```r
(some r code)
```

So I don't need the auto language detection by highlight.js, actually if I don't specify the language it will always mis-recognize my R code to php or perl code.

The problem is: the HTML tag for <code> is somehow mixed.

Without rendering, the markdown correctly translate the code block with <code class="r language-r" data-lang="r"></code> which should be rendered as R code. But when I load highlight.js and run <script>hljs.initHighlightingOnLoad();</script>, the auto detect also works and makes the code tags mixed like <code class="r language-r hljs php" data-lang="r"></code> where php should be eliminated.

How can I fix the problem?

I use redcarpet2 markdown in my site hosted by Github pages. I switch the syntax highlighter from pygments to highlight.js.

I specified the language for each code block by

```r
(some r code)
```

So I don't need the auto language detection by highlight.js, actually if I don't specify the language it will always mis-recognize my R code to php or perl code.

The problem is: the HTML tag for <code> is somehow mixed.

Without rendering, the markdown correctly translate the code block with <code class="r language-r" data-lang="r"></code> which should be rendered as R code. But when I load highlight.js and run <script>hljs.initHighlightingOnLoad();</script>, the auto detect also works and makes the code tags mixed like <code class="r language-r hljs php" data-lang="r"></code> where php should be eliminated.

How can I fix the problem?

Share Improve this question asked Feb 16, 2014 at 7:02 Kun RenKun Ren 5,0334 gold badges39 silver badges50 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

Probably your highlight.pack.js does not include R language, you can download it here just tick the appropriate checkboxes. When HighlightJS sees unknown class for code tag it tries to guess automatically right language.

It's possible to disable highlight.js auto language detection with hljs.configure({languages:[]}). It will still hightlight code blocks with a language explicitly specified.

<script>hljs.configure({languages:[]});hljs.initHighlightingOnLoad();</script>

本文标签: javascriptHow can I turn off auto language detection in highlightjs and render all blocksStack Overflow