Merge pull request #1951 from jens-na/include-tag-error-path
This commit is contained in:
commit
05df50f929
|
@ -102,7 +102,7 @@ eos
|
||||||
validate_file_name(file)
|
validate_file_name(file)
|
||||||
|
|
||||||
path = File.join(dir, file)
|
path = File.join(dir, file)
|
||||||
validate_file(path, context.registers[:site].safe)
|
validate_file(context.registers[:site].source, path, context.registers[:site].safe)
|
||||||
|
|
||||||
begin
|
begin
|
||||||
partial = Liquid::Template.parse(source(path, context))
|
partial = Liquid::Template.parse(source(path, context))
|
||||||
|
@ -122,11 +122,12 @@ eos
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_file(file, safe)
|
def validate_file(sourcedir, file, safe)
|
||||||
|
relative_file = Pathname.new(file).relative_path_from(Pathname.new(sourcedir))
|
||||||
if !File.exists?(file)
|
if !File.exists?(file)
|
||||||
raise IOError.new "Included file '#{file}' not found"
|
raise IOError.new "Included file '#{relative_file}' not found"
|
||||||
elsif File.symlink?(file) && safe
|
elsif File.symlink?(file) && safe
|
||||||
raise IOError.new "The included file '#{file}' should not be a symlink"
|
raise IOError.new "The included file '#{relative_file}' should not be a symlink"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -487,6 +487,25 @@ CONTENT
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "include missing file" do
|
||||||
|
setup do
|
||||||
|
@content = <<CONTENT
|
||||||
|
---
|
||||||
|
title: missing file
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include missing.html %}
|
||||||
|
CONTENT
|
||||||
|
end
|
||||||
|
|
||||||
|
should "raise error relative to source directory" do
|
||||||
|
exception = assert_raise IOError do
|
||||||
|
create_post(@content, {'permalink' => 'pretty', 'source' => source_dir, 'destination' => dest_dir, 'read_posts' => true})
|
||||||
|
end
|
||||||
|
assert_equal 'Included file \'_includes/missing.html\' not found', exception.message
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "include tag with variable and liquid filters" do
|
context "include tag with variable and liquid filters" do
|
||||||
setup do
|
setup do
|
||||||
stub(Jekyll).configuration do
|
stub(Jekyll).configuration do
|
||||||
|
|
Loading…
Reference in New Issue