在Jekyll,是否有一种简洁的方式来渲染Markdown部分?

时间:2011-08-29 04:31:44

标签: markdown jekyll

我有一个Markdown格式的侧边栏,我想在我的Jekyll博客中显示。我之前试图像{% include sidebar.markdown %}那样包含它,但它实际上不会渲染Markdown。我可以成功地包括它:

{% capture sidebar %}{% include sidebar.markdown %}{% endcapture %}
{{ sidebar | markdownify }}

尽管这是一个易于管理的解决方案,但我更喜欢采用更优雅的方式来实现这一目标。有任何想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:21)

我也在寻找这个,这是一个PITA发现如何做到这一点,谷歌内容并不多,最确切的发现是一个在这里不起作用的要点......死的简单解决方案:

./_plugins/markdown_tag.rb

module Jekyll
  class MarkdownTag < Liquid::Tag
    def initialize(tag_name, text, tokens)
      super
      @text = text.strip
    end
    require "kramdown"
    def render(context)
      tmpl = File.read File.join Dir.pwd, "_includes", @text
      Jekyll::Converters::Markdown::KramdownParser.new(Jekyll.configuration()).convert(tmpl)
    end
  end
end
Liquid::Template.register_tag('markdown', Jekyll::MarkdownTag)

更新:博客使用示例:https://web.archive.org/web/20161207125751/http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/

答案 1 :(得分:5)

Jekyll现在支持编写简单的插件来添加标签,转换器或生成器。有关详细信息,请查看http://jekyllrb.com/docs/plugins/