mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-19 02:40:41 -07:00
Merge pull request #1835 from Shopify/fix-multibyte-variable-parsing
fix parsing Variable blockbody with multibyte character
This commit is contained in:
@@ -252,7 +252,7 @@ module Liquid
|
|||||||
parse_end = token.length - 3
|
parse_end = token.length - 3
|
||||||
parse_end -= 1 if token[parse_end] == "-"
|
parse_end -= 1 if token[parse_end] == "-"
|
||||||
markup_end = parse_end - i + 1
|
markup_end = parse_end - i + 1
|
||||||
markup = markup_end <= 0 ? "" : token.byteslice(i, markup_end)
|
markup = markup_end <= 0 ? "" : token.slice(i, markup_end)
|
||||||
|
|
||||||
return Variable.new(markup, parse_context)
|
return Variable.new(markup, parse_context)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -32,6 +32,12 @@ class BlockUnitTest < Minitest::Test
|
|||||||
assert_equal(String, template.root.nodelist[2].class)
|
assert_equal(String, template.root.nodelist[2].class)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_variable_with_multibyte_character
|
||||||
|
template = Liquid::Template.parse("{{ '❤️' }}")
|
||||||
|
assert_equal(1, template.root.nodelist.size)
|
||||||
|
assert_equal(Variable, template.root.nodelist[0].class)
|
||||||
|
end
|
||||||
|
|
||||||
def test_variable_many_embedded_fragments
|
def test_variable_many_embedded_fragments
|
||||||
template = Liquid::Template.parse(" {{funk}} {{so}} {{brother}} ")
|
template = Liquid::Template.parse(" {{funk}} {{so}} {{brother}} ")
|
||||||
assert_equal(7, template.root.nodelist.size)
|
assert_equal(7, template.root.nodelist.size)
|
||||||
|
|||||||
Reference in New Issue
Block a user