Fix bug in raw tags

This commit is contained in:
Peter Zhu
2020-10-05 10:47:28 -04:00
parent a03f02789b
commit 4c2ab6f878
2 changed files with 3 additions and 2 deletions

View File

@@ -14,9 +14,9 @@ module Liquid
def parse(tokens)
@body = +''
while (token = tokens.shift)
if token =~ FullTokenPossiblyInvalid
if token =~ FullTokenPossiblyInvalid && block_delimiter == Regexp.last_match(2)
@body << Regexp.last_match(1) if Regexp.last_match(1) != ""
return if block_delimiter == Regexp.last_match(2)
return
end
@body << token unless token.empty?
end

View File

@@ -23,6 +23,7 @@ class RawTagTest < Minitest::Test
assert_template_result(' Foobar {% {% {% ', '{% raw %} Foobar {% {% {% {% endraw %}')
assert_template_result(' test {% raw %} {% endraw %}', '{% raw %} test {% raw %} {% {% endraw %}endraw %}')
assert_template_result(' Foobar {{ invalid 1', '{% raw %} Foobar {{ invalid {% endraw %}{{ 1 }}')
assert_template_result(' Foobar {% foo {% bar %}', '{% raw %} Foobar {% foo {% bar %}{% endraw %}')
end
def test_invalid_raw