在Jekyll中使用kramdown和pygments

在Jekyll中使用kramdown和pygments,jekyll,pygments,kramdown,Jekyll,Pygments,Kramdown,我想与fenced代码块、内联属性列表、标题ID和pygments等功能一起使用,以突出显示语法,例如LaTeX支持,kramdown使用的CodeRay不提供这种支持。Jekyll同时支持kramdown和pygments,但显然不能同时支持这两个,除非我使用我不喜欢的液体标签 我还发现了一些如何使kramdown防护代码块吐出pygments突出显示的代码的方法,但不幸的是,我不知道如何使其工作 我试图将该站点的所有代码转储到一些plugins/krampygs.rb文件中,但jekyll

我想与fenced代码块、内联属性列表、标题ID和pygments等功能一起使用,以突出显示语法,例如LaTeX支持,kramdown使用的CodeRay不提供这种支持。Jekyll同时支持kramdown和pygments,但显然不能同时支持这两个,除非我使用我不喜欢的液体标签

我还发现了一些如何使kramdown防护代码块吐出pygments突出显示的代码的方法,但不幸的是,我不知道如何使其工作

我试图将该站点的所有代码转储到一些plugins/krampygs.rb文件中,但jekyll build抱怨:

Generating... error: undefined method `matches'
如果我按照的指示提供一些琐碎的匹配并输出_ext,但是我不知道如何为我的.md文件选择这个新转换器。添加类似于

markdown: MarkdownConverter
在my_config.yml上,我只抱怨这不是一个有效的选项

所以,好吧,我重申我的问题:我如何在《杰基尔》中使用kramdown和pygments

解决方案
在下面Matthias的帮助下,我为Jekyll 1.x.准备了这篇文章。

该网站的作者

这取决于杰基尔的版本。对于写文章时的版本来说,这就足够了。至少Jekyll 1.x要求在MarkdownConverter中定义匹配项,如下所示:

def matches(ext)
  ext =~ /^\.md$/i
end
Jekyll1.x中出现的另一个问题是,每个自定义标记转换器都是可用的。我通过明确说明输出扩展解决了这个问题

def output_ext(ext)
  ".html"
end
告诉杰基尔,通过设置

markdown_ext: foo

在_config.yml.

中,这里是该站点的作者

这取决于杰基尔的版本。对于写文章时的版本来说,这就足够了。至少Jekyll 1.x要求在MarkdownConverter中定义匹配项,如下所示:

def matches(ext)
  ext =~ /^\.md$/i
end
Jekyll1.x中出现的另一个问题是,每个自定义标记转换器都是可用的。我通过明确说明输出扩展解决了这个问题

def output_ext(ext)
  ".html"
end
告诉杰基尔,通过设置

markdown_ext: foo
在_config.yml.

中,我更新了创建人,使其与Jekyll 2.x兼容,并进行了一些其他改进

可以在这里找到:

我已经更新了创建人,使其与Jekyll 2.x兼容,并进行了一些其他改进


可以在这里找到:

谢谢!这最终解决了问题。我真的希望kramdown+pygments能得到Jekyll的开箱即用支持。再次感谢您的帮助,这是我最终能够制作的。将它放到GitHub上真是个好主意!谢谢你,谢谢!这最终解决了问题。我真的希望kramdown+pygments能得到Jekyll的开箱即用支持。再次感谢您的帮助,这是我最终能够制作的。将它放到GitHub上真是个好主意!谢谢你。