mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 09:05:13 -07:00
Merge pull request #582 from Shopify/require-empty-raw-tag
Ensure raw tag has no arguments
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
errors:
|
errors:
|
||||||
syntax:
|
syntax:
|
||||||
|
tag_unexpected_args: "Syntax Error in '%{tag}' - Valid syntax: %{tag}"
|
||||||
assign: "Syntax Error in 'assign' - Valid syntax: assign [var] = [source]"
|
assign: "Syntax Error in 'assign' - Valid syntax: assign [var] = [source]"
|
||||||
capture: "Syntax Error in 'capture' - Valid syntax: capture [var]"
|
capture: "Syntax Error in 'capture' - Valid syntax: capture [var]"
|
||||||
case: "Syntax Error in 'case' - Valid syntax: case [condition]"
|
case: "Syntax Error in 'case' - Valid syntax: case [condition]"
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
module Liquid
|
module Liquid
|
||||||
class Raw < Block
|
class Raw < Block
|
||||||
|
Syntax = /\A\s*\z/
|
||||||
FullTokenPossiblyInvalid = /\A(.*)#{TagStart}\s*(\w+)\s*(.*)?#{TagEnd}\z/om
|
FullTokenPossiblyInvalid = /\A(.*)#{TagStart}\s*(\w+)\s*(.*)?#{TagEnd}\z/om
|
||||||
|
|
||||||
|
def initialize(tag_name, markup, options)
|
||||||
|
super
|
||||||
|
|
||||||
|
unless markup =~ Syntax
|
||||||
|
raise SyntaxError.new(@options[:locale].t("errors.syntax.tag_unexpected_args".freeze, tag: tag_name))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def parse(tokens)
|
def parse(tokens)
|
||||||
@body = ''
|
@body = ''
|
||||||
while token = tokens.shift
|
while token = tokens.shift
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class RawTagTest < Minitest::Test
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_invalid_raw
|
def test_invalid_raw
|
||||||
assert_match_syntax_error /tag was never closed/, '{% raw } foo {% endraw %}'
|
assert_match_syntax_error /tag was never closed/, '{% raw %} foo'
|
||||||
|
assert_match_syntax_error /Valid syntax/, '{% raw } foo {% endraw %}'
|
||||||
|
assert_match_syntax_error /Valid syntax/, '{% raw } foo %}{% endraw %}'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user