2014-02-16 63 views
5

我在Github頁面託管的我的網站中使用redcarpet2 markdown。我將語法高亮器從pygments切換到highlight.js。如何關閉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應該被刪除。

我該如何解決這個問題?

回答

4

也許你的highlight.pack.js不包括R語言,你可以下載它here只需勾選相應的複選框。當HighlightJS看到未知的類爲code標記時,它會嘗試自動猜測正確的語言。