added a raw option to render_partial. Now you can import partials without having them parsed by the Liquid template parser

This commit is contained in:
Brandon Mathis 2011-08-01 16:24:06 -04:00
parent 70d2c83843
commit 40b444c9cd

View File

@ -26,9 +26,14 @@ require 'pathname'
module Jekyll
class RenderPartialTag < Liquid::Tag
def initialize(tag_name, file, tokens)
def initialize(tag_name, markup, tokens)
@file = nil
@raw = false
if markup =~ /^(\S+)\s?(\w+)?/
@file = $1.strip
@raw = $2 == 'raw'
end
super
@file = file.strip
end
def render(context)
@ -45,6 +50,9 @@ module Jekyll
if contents =~ /\A-{3}.+[^\A]-{3}\n(.+)/m
contents = $1.lstrip
end
if @raw
contents
else
partial = Liquid::Template.parse(contents)
context.stack do
partial.render(context)
@ -53,5 +61,6 @@ module Jekyll
end
end
end
end
Liquid::Template.register_tag('render_partial', Jekyll::RenderPartialTag)