24 lines
651 B
Ruby
24 lines
651 B
Ruby
=begin
|
|
Jekyll tag to include Markdown text from _includes directory preprocessing with Liquid.
|
|
Usage:
|
|
{% markdown <filename> %}
|
|
Dependency:
|
|
- kramdown
|
|
=end
|
|
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
|
|
site = context.registers[:site]
|
|
tmpl = (Liquid::Template.parse tmpl).render site.site_payload
|
|
html = Kramdown::Document.new(tmpl).to_html
|
|
end
|
|
end
|
|
end
|
|
Liquid::Template.register_tag('markdown', Jekyll::MarkdownTag)
|