テキスト/コンテンツを含む最後のタグの上と後の空白を削除する必要があります。ビジュアルを「壊す」のではなく、クライアントに表示されるコンテンツを制御したい。
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
<p> Text <p>
<p> <br> </p> ~> should preserve only this of the empty tags
<p> Text </p>
<p> Text </p>
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
<p> <br> </p> ~> remove
サニタイズを使用していますが、トランスフォーマーを通過する能力があります。ドキュメントには、すべての空の要素を削除するスニペットの例が示されています。
通常の要素の前に空の要素を削除するには、空のタグの削除を停止するタイミングを制御する変数を割り当てることができると考えました。
should_remove_empty = true
lambda {|env|
node = env[:node]
return unless node.elem?
unless node.children.any?{|c| c.text? && c.content.strip.length > 0 || !c.text? }
node.unlink if should_remove_empty
else
should_remove_empty = false
end
}
しかし今、末尾の空の要素を削除するには、逆さまに反復する必要があります。しかし、サニタイズは私にこの能力を与えません。
誰かがこれを行う方法を知っていますか、または誰かがすでに実装していますか?