diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index b409d0675..e02b65895 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -98,11 +98,12 @@ def strict_parse(markup) @name = "#{@variable_name}-#{collection_name}" @reversed = p.id?('reversed') - while p.look(:id) && p.look(:colon, 1) + while p.look(:comma) || p.look(:id) + p.consume?(:comma) unless (attribute = p.id?('limit') || p.id?('offset')) raise SyntaxError, options[:locale].t("errors.syntax.for_invalid_attribute") end - p.consume + p.consume(:colon) set_attribute(attribute, p.expression) end p.consume(:end_of_string) diff --git a/test/integration/tags/for_tag_test.rb b/test/integration/tags/for_tag_test.rb index 3855d97b9..b36a5ba2f 100644 --- a/test/integration/tags/for_tag_test.rb +++ b/test/integration/tags/for_tag_test.rb @@ -103,6 +103,7 @@ def test_limiting assert_template_result('1234', '{%for i in array limit:4 %}{{ i }}{%endfor%}', assigns) assert_template_result('3456', '{%for i in array limit:4 offset:2 %}{{ i }}{%endfor%}', assigns) assert_template_result('3456', '{%for i in array limit: 4 offset: 2 %}{{ i }}{%endfor%}', assigns) + assert_template_result('3456', '{%for i in array, limit: 4, offset: 2 %}{{ i }}{%endfor%}', assigns) end def test_limiting_with_invalid_limit