28

我想用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">标记,并且代码没有突出显示。

难道我做错了什么?

4

2 回答 2

38

您需要生成 CSS 以突出显示。

$ pygmentize -S default -f html > css/pygments/default.css
于 2012-03-20T00:12:32.930 回答
2

单独安装 pygments 并生成 CSS 的替代方法,可以直接从 Jekyllrb 文档中提取 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 Pages 上工作(这是特别的,因为它只允许非常有限的插件集)

一个相关的 SO 问题也帮助我找到了正确的解决方案。我也很困惑为什么我的代码仍然没有在我要移植的模板中突出显示,即使在_config.yml. 这样做时它只能在自动生成的 Jekyll 站点上工作的jekyll new test-site原因是因为生成的模板已经包含用于语法高亮的 SASS ( .scss)(在_sass目录中),这有助于将其全部生成为一个main.css.

于 2015-04-29T05:29:23.693 回答