我想使用kramdown(带有屏蔽代码块,内联属性列表,标题ID等功能)以及用于语法突出显示的pygments(例如,对于LaTeX支持,kramdown使用的CodeRay不支持) 。 Jekyll支持kramdown和pygments,但显然不是两者一起(除非我使用Liquid标签,我不愿意)。
我还发现了一些plugin snippets如何使kramdown fenced代码块吐出pygments突出显示的代码,但不幸的是我不知道如何使其工作。
我尝试在某个_plugins/krampygs.rb
文件中转储该网站的所有代码,但后来jekyll build
抱怨:
Generating... error: undefined method `matches'
如果我按照Jekyll plugin docs的指示提供了一些简单的matches
和output_ext
,但我不知道如何为我的.md
文件选择这个新的转换器。添加类似
markdown: MarkdownConverter
我_config.yml
上的仅抱怨这不是一个有效的选项。
所以,好吧,我重申一下我的问题:如何在Jekyll中使用kramdown和pygments?
在Matthias(下面)的帮助下,我能够为Jekyll 1.x准备这个Kramdown+Pygments plugin。
答案 0 :(得分:3)
“该网站”的作者。
这取决于Jekyll版本。对于撰写帖子的版本,这就足够了。至少Jekyll 1.x要求在matches
中定义MarkdownConverter
,如下所示:
def matches(ext)
ext =~ /^\.md$/i
end
Jekyll 1.x出现的另一个问题是每个自定义Markdown转换器都是ignored。我通过明确声明输出扩展来解决这个问题
def output_ext(ext)
".html"
end
告诉Jekyll通过设置
寻找伪造的Markdown扩展markdown_ext: foo
_config.yml
中的。
答案 1 :(得分:1)