Skip to content

Instantly share code, notes, and snippets.

@tmtk75
Created November 30, 2011 08:10
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save tmtk75/1408402 to your computer and use it in GitHub Desktop.
Save tmtk75/1408402 to your computer and use it in GitHub Desktop.
Jekyll Markdown Tag
=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)
@kristiannordestgaard
Copy link

Hi,

This is my current code:

{% if member.brief %}
{% include /briefs/{{ member.brief }} %}
{% endif %}

I need to change this so it uses the markdown command instead of include, but

{% if member.brief %}
{% markdown /briefs/{{ member.brief }} %}
{% endif %}

Gives me a "file not found" error. How can I make it work?

Best,
Kristian

@kamlekar
Copy link

Even after inserting this code in _plugins directory, I am getting page build error:

The tag markdown in _posts/2015-08-26-compiling-html-templates-to-html-pages.md is not a recognized Liquid tag.

I am using kramdown markdown.

Please help.

@c100k
Copy link

c100k commented Nov 15, 2015

@kamlekar I've just had the same problem. I forgot to restart my site with jekyll serve.

@apburton84
Copy link

How would variables be passed into the included markdown ?

{% markdown query_parameters.md param="value" %}

Liquid Exception: No such file or directory - _includes/query_parameters.md param="value" in _posts/2016-01-22-user.markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment