In Jekyll, is there a concise way to render a Markdown partial?
I was looking for this too, it was a PITA discovering how to do it, not much Google content, the most exact finding was a gist that wouldn't work here... dead simple solution:
./_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)
UPDATE: blog with usage example: https://web.archive.org/web/20161207125751/http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/
Jekyll now supports writing simple plugins to add tags, converters, or generators. Take a look at http://jekyllrb.com/docs/plugins/ for details.