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:
parent
21cbf9f623
commit
d9da2a0c3c
2 changed files with 12 additions and 2 deletions
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue