1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00

Support primitive recursive whitespace nuking

This commit is contained in:
Takashi Kokubun 2015-10-25 23:01:17 +09:00
parent 21cbf9f623
commit d9da2a0c3c
2 changed files with 12 additions and 2 deletions

View file

@ -11,7 +11,7 @@ module Hamlit
temple << :whitespace if prepend_whitespace?(node)
node.children.each do |n|
rstrip_whitespace!(temple) if nuke_outer_whitespace?(n)
rstrip_whitespace!(temple) if nuke_prev_whitespace?(n)
insert_newlines!(temple, n)
temple << yield(n)
temple << :whitespace if insert_whitespace?(n)
@ -60,6 +60,17 @@ module Hamlit
node.value[:nuke_inner_whitespace]
end
def nuke_prev_whitespace?(node)
case node.type
when :tag
node.value[:nuke_outer_whitespace]
when :silent_script
!node.children.empty? && nuke_prev_whitespace?(node.children.first)
else
false
end
end
def nuke_outer_whitespace?(node)
return false if node.type != :tag
node.value[:nuke_outer_whitespace]

View file

@ -220,7 +220,6 @@ describe Hamlit::Engine do
end
it 'removes outer whitespace by > from inside of block' do
skip
assert_render(<<-HAML, <<-HTML)
%span a
- if true