2011-07-20 64 views
26

我想用pygmentsjekyll突出顯示傑基爾和Pygments來做不起作用

我有以下代碼:

{% highlight java %} 
NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap 
{% endhighlight %} 

當我產生我的網站jekyll --pygments,HTML結果是:

<div> 
    <pre><code class="java">NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap</code> 
    </pre> 
</div> 

在這個html輸出中沒有預期的<span class="n"><span class="s2">標籤,並且代碼不是突出顯示。

我做錯了什麼?

+1

可能是一個愚蠢的問題,而不是測試異常消息,如果你嘗試一些實際的java代碼會發生什麼? – Kev

+0

是的,我試着用java代碼和ruby代碼,並得到相同的行爲 – denisjacquemin

+0

你有pygments正確安裝? – kikito

回答

35

您需要生成突出顯示的CSS。

$ pygmentize -S default -f html > css/pygments/default.css 
+18

+10 - 在Jekyll文檔中,這應該更加突出(現有?) –

+4

請注意,您還必須告訴您的Jekyll模板以獲取新的CSS文件 - 在我的情況下,通過編輯_layouts /默認。HTML(Jekyll bootstrap)。 – JohnJ

+5

我剛剛在[jekyll install wiki](https://github.com/mojombo/jekyll/wiki/Install)中添加了一些註釋,說明如何在安裝後實際使用Pygments。希望它能清除一切。 –

2

分別安裝Pygments來做併產生CSS的替代,人們可以直接從Jekyllrb文檔here

拉CSS從我在上面提到的文件中提取的直接鏈路是在這裏:https://github.com/mojombo/tpw/blob/master/css/syntax.css

(這是作者在GitHub上的正式版本)

該文件被稱爲syntax.css,將其放到您的css文件夾中,並創建一個相對鏈接任何/所有文件頭的樣式表都可以啓用語法高亮顯示。

這可以作爲這樣的例子來完成,我把它放在head.htmlcss.html在那裏我有所有的相關鏈接,所以它被包含在使用它的所有版面它在_include文件夾:

<link rel="stylesheet" href="/css/syntax.css">

您可能還需要添加到您的_config.yml

highlighter: pygments

測試工作在Jekyll和GitHub頁面(這是特別的,因爲它只允許一組非常有限的插件)

一個相關的SO問題,也幫助我到達正確的解決方案是here。我還困惑於爲什麼我的代碼仍然沒有在模板中突出顯示,即使在添加_config.yml中的行後,我仍然正在移植該模板。它在jekyll new test-site時只適用於自動生成的Jekyll站點的原因是生成的模板已經包含用於語法高亮顯示的SASS(.scss)(在_sass目錄中),它有助於將其生成爲一個main.css