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

S M*_*S M 46 markdown jekyll

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

{% capture sidebar %}{% include sidebar.markdown %}{% endcapture %}
{{ sidebar | markdownify }}
Run Code Online (Sandbox Code Playgroud)

虽然这是一个易于管理的解决方案,但我更倾向于采用更优雅的方式来实现这一目标.有任何想法吗?提前致谢!

Bre*_*ado 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)
Run Code Online (Sandbox Code Playgroud)

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


Jef*_*ten 5

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

  • 虽然OP没有提到**GitHub Pages**,但重要的是要注意它们不支持Jekyll插件,因此如果使用GHP进行发布,该解决方案将不再有效. (9认同)