implement variable retrieval in include tag

Fixes #1464.
This commit is contained in:
maul.esel 2013-09-02 15:04:00 +02:00
parent 50e945f251
commit a93795bcc0
1 changed files with 8 additions and 0 deletions

View File

@ -75,10 +75,18 @@ eos
context.registers[:site].file_read_opts context.registers[:site].file_read_opts
end end
def retrieve_variable(context)
if /\{\{([\w\-]+)\}\}/ =~ @file
raise ArgumentError.new("No variable #{$1} was found in include tag") if context[$1].nil?
@file = context[$1]
end
end
def render(context) def render(context)
dir = File.join(context.registers[:site].source, INCLUDES_DIR) dir = File.join(context.registers[:site].source, INCLUDES_DIR)
validate_dir(dir, context.registers[:site].safe) validate_dir(dir, context.registers[:site].safe)
retrieve_variable(context)
file = File.join(dir, @file) file = File.join(dir, @file)
validate_file(file, context.registers[:site].safe) validate_file(file, context.registers[:site].safe)