使用Jekyll和pygments突出显示不起作用

时间:2011-07-20 12:37:27

标签: jekyll pygments

我想将pygmentsjekyll

一起使用

我有以下代码:

{% 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">标记,并且代码未突出显示。

我做错了吗?

2 个答案:

答案 0 :(得分:37)

您需要生成css才能突出显示。

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

答案 1 :(得分:2)

单独安装pygments并生成CSS的替代方法,可以直接从Jekyllrb文档中提取CSS here

从我上面提到的文档中提取的直接链接在这里: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