我有以下代码:
{% 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">
标记,并且代码未突出显示。
我做错了吗?
答案 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.html
或css.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
。