通过Liquid模板的字符串错误导致Pygments语法高亮失败
我正在使用Jekyll把我的markdown文件转换成网页,同时用Pygments来给代码加上高亮显示。
这里是maruku显示的错误信息:
Liquid error: undefined method `join' for "\n song_info = []\n for song in songs:\n song_info.append(song.name) \n":String
我的标记语言内容如下:
{% highlight python %}
song_info = []
for song in songs:
song_info.append(song.name)
{% endhighlight %}
在iPython中测试Pygments没有出现任何错误。
有什么想法吗?;o(
提前谢谢你们!
3 个回答
1
只需要把 liquid-2.3.0
的文件换成从 Github上下载的最新版本。
这个方法适用于 jekyll-0.11.2
+ liquid-2.3.0
+ Pygments
。
2
顺便提一下,GitHub推荐使用RedCarpet。
要使用它,首先需要配置Jekyll,方法是在./_config.yml
文件中添加markdown: redcarpet
。接着,在你的开发机器上使用[sudo] gem install redcarpet
来安装RedCarpet,这样你就可以编译你的Jekyll网站了。
21
我也遇到了同样的问题,所以我把 liquid 这个库的版本降回到了 2.2.2 作为解决办法。看起来是 2.3.0 版本在处理 pygments 这个功能时有个 bug,或者是 Jekyll 在使用它时出了问题。
sudo gem uninstall liquid
sudo gem install liquid --version '2.2.2'