diff --git a/lib/jekyll/tags/include.rb b/lib/jekyll/tags/include.rb index 724b33c0..5edd33de 100644 --- a/lib/jekyll/tags/include.rb +++ b/lib/jekyll/tags/include.rb @@ -13,8 +13,6 @@ module Jekyll class IncludeTag < Liquid::Tag - SYNTAX_EXAMPLE = "{% include file.ext param='value' param2='value' %}" - VALID_SYNTAX = /([\w-]+)\s*=\s*(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.-]+))/ VARIABLE_SYNTAX = /(?[^{]*\{\{\s*(?[\w\-\.]+)\s*(\|.*)?\}\}[^\s}]*)(?.*)/ @@ -30,6 +28,10 @@ module Jekyll validate_params if @params end + def syntax_example + "{% include file.ext param='value' param2='value' %}" + end + def parse_params(context) params = {} markup = @params @@ -59,7 +61,7 @@ Invalid syntax for include tag. File contains invalid characters or sequences: Valid syntax: - #{SYNTAX_EXAMPLE} + #{syntax_example} eos end @@ -75,7 +77,7 @@ Invalid syntax for include tag: Valid syntax: - #{SYNTAX_EXAMPLE} + #{syntax_example} eos end @@ -154,6 +156,10 @@ eos page_path = context.registers[:page].nil? ? includes_dir : File.dirname(context.registers[:page]["path"]) Jekyll.sanitized_path(context.registers[:site].source, page_path) end + + def syntax_example + "{% include_relative file.ext param='value' param2='value' %}" + end end end end diff --git a/test/test_tags.rb b/test/test_tags.rb index 756bdcb5..a47ca897 100644 --- a/test/test_tags.rb +++ b/test/test_tags.rb @@ -568,6 +568,25 @@ CONTENT assert_equal 'Included file \'./missing.html\' not found', exception.message end end + + context "include existing file above you" do + setup do + @content = < 'pretty', 'source' => source_dir, 'destination' => dest_dir, 'read_posts' => true}) + end + assert_equal "Invalid syntax for include tag. File contains invalid characters or sequences:\n\n ../README.markdown\n\nValid syntax:\n\n {% include_relative file.ext param='value' param2='value' %}\n\n", exception.message + end + end end context "with symlink'd include" do