Skip to content

Commit

Permalink
don't add comment node to the nodelist
Browse files Browse the repository at this point in the history
  • Loading branch information
ggmichaelgo committed Dec 13, 2024
1 parent fdd8c71 commit 6e3e26b
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 4 deletions.
6 changes: 6 additions & 0 deletions lib/liquid/block_body.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ def freeze
return yield tag_name, markup
end
new_tag = tag.parse(tag_name, markup, tokenizer, parse_context)

next if new_tag.is_a?(Comment)

@blank &&= new_tag.blank?
@nodelist << new_tag
end
Expand Down Expand Up @@ -153,6 +156,9 @@ def self.rescue_render_node(context, output, line_number, exc, blank_tag)
return yield tag_name, markup
end
new_tag = tag.parse(tag_name, markup, tokenizer, parse_context)

next if new_tag.is_a?(Comment)

@blank &&= new_tag.blank?
@nodelist << new_tag
when token.start_with?(VARSTART)
Expand Down
4 changes: 2 additions & 2 deletions test/unit/block_unit_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ def test_variable_many_embedded_fragments

def test_with_block
template = Liquid::Template.parse(" {% comment %} {% endcomment %} ")
assert_equal([String, Comment, String], block_types(template.root.nodelist))
assert_equal(3, template.root.nodelist.size)
assert_equal([String, String], block_types(template.root.nodelist))
assert_equal(2, template.root.nodelist.size)
end

private
Expand Down
22 changes: 22 additions & 0 deletions test/unit/tags/comment_tag_unit_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,26 @@ def test_dont_override_liquid_tag_whitespace_control
World!
LIQUID
end

def test_comment_tag_node_is_not_in_nodelist
template = Liquid::Template.parse(<<~LIQUID.chomp)
{% comment %}
{% if true %}
{% endif %}
{% endcomment %}
LIQUID

assert_equal(0, template.root.nodelist.size)

template = Liquid::Template.parse(<<~LIQUID.chomp)
{% liquid
comment
if true
endif
endcomment
%}
LIQUID

assert_equal(0, template.root.nodelist.size)
end
end
4 changes: 2 additions & 2 deletions test/unit/template_unit_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ class TemplateUnitTest < Minitest::Test

def test_sets_default_localization_in_document
t = Template.new
t.parse('{%comment%}{%endcomment%}')
t.parse('{%raw%}{%endraw%}')
assert_instance_of(I18n, t.root.nodelist[0].options[:locale])
end

def test_sets_default_localization_in_context_with_quick_initialization
t = Template.new
t.parse('{%comment%}{%endcomment%}', locale: I18n.new(fixture("en_locale.yml")))
t.parse('{%raw%}{%endraw%}', locale: I18n.new(fixture("en_locale.yml")))

locale = t.root.nodelist[0].options[:locale]
assert_instance_of(I18n, locale)
Expand Down

0 comments on commit 6e3e26b

Please sign in to comment.