` up
+ INLINE_ELEMENTS ||= %w{span font}
+ BLOCK_ELEMENTS ||= %w{div p}
def fix_span_elements(node)
- if node.name == 'span' && node.at('div')
+ if (INLINE_ELEMENTS.include?(node.name) && BLOCK_ELEMENTS.any? { |e| node.at(e) })
node.swap(node.children)
end
diff --git a/spec/components/html_to_markdown_spec.rb b/spec/components/html_to_markdown_spec.rb
index 1aef7411208..1070cf07b51 100644
--- a/spec/components/html_to_markdown_spec.rb
+++ b/spec/components/html_to_markdown_spec.rb
@@ -236,9 +236,14 @@ describe HtmlToMarkdown do
expect(html_to_markdown("")).to eq("")
end
- it "handles divs within spans" do
- html = "
1st paragraph
2nd paragraph
"
- expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph")
+ it "handles
and
within
" do
+ html = "1st paragraph
2nd paragraph
3rd paragraph
"
+ expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph\n\n3rd paragraph")
+ end
+
+ it "handles and
within
" do
+ html = "1st paragraph
2nd paragraph3rd paragraph
4th paragraph
"
+ expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph\n3rd paragraph\n\n4th paragraph")
end
context "with an oddly placed
" do