mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Font tag resulted in wrong email trimming
This commit is contained in:
@@ -16,8 +16,10 @@ class HtmlToMarkdown
|
|||||||
end
|
end
|
||||||
|
|
||||||
# If a `<div>` is within a `<span>` that's invalid, so let's hoist the `<div>` up
|
# If a `<div>` is within a `<span>` that's invalid, so let's hoist the `<div>` up
|
||||||
|
INLINE_ELEMENTS ||= %w{span font}
|
||||||
|
BLOCK_ELEMENTS ||= %w{div p}
|
||||||
def fix_span_elements(node)
|
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)
|
node.swap(node.children)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -236,9 +236,14 @@ describe HtmlToMarkdown do
|
|||||||
expect(html_to_markdown("<style>* { margin: 0 }</style>")).to eq("")
|
expect(html_to_markdown("<style>* { margin: 0 }</style>")).to eq("")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "handles divs within spans" do
|
it "handles <p> and <div> within <span>" do
|
||||||
html = "<div>1st paragraph<span><div>2nd paragraph</div></span></div>"
|
html = "<div>1st paragraph<span><div>2nd paragraph</div><p>3rd paragraph</p></span></div>"
|
||||||
expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph")
|
expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph\n\n3rd paragraph")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "handles <p> and <div> within <font>" do
|
||||||
|
html = "<font>1st paragraph<br><span>2nd paragraph</span><div>3rd paragraph</div><p>4th paragraph</p></font>"
|
||||||
|
expect(html_to_markdown(html)).to eq("1st paragraph\n2nd paragraph\n3rd paragraph\n\n4th paragraph")
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with an oddly placed <br>" do
|
context "with an oddly placed <br>" do
|
||||||
|
|||||||
Reference in New Issue
Block a user