mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
FEATURE: automatically elides gmail quotes
This commit is contained in:
@ -261,9 +261,16 @@ module Email
|
||||
end
|
||||
|
||||
markdown, elided_markdown = if html.present?
|
||||
markdown = HtmlToMarkdown.new(html, keep_img_tags: true, keep_cid_imgs: true).to_markdown
|
||||
markdown = trim_discourse_markers(markdown)
|
||||
trim_reply_and_extract_elided(markdown)
|
||||
if html[%{<div class="gmail_quote">}]
|
||||
html, elided_html = extract_gmail_quote(html)
|
||||
markdown = HtmlToMarkdown.new(html, keep_img_tags: true, keep_cid_imgs: true).to_markdown
|
||||
elided_markdown = HtmlToMarkdown.new(elided_html).to_markdown
|
||||
[markdown, elided_markdown]
|
||||
else
|
||||
markdown = HtmlToMarkdown.new(html, keep_img_tags: true, keep_cid_imgs: true).to_markdown
|
||||
markdown = trim_discourse_markers(markdown)
|
||||
trim_reply_and_extract_elided(markdown)
|
||||
end
|
||||
end
|
||||
|
||||
if text.blank? || (SiteSetting.incoming_email_prefer_html && markdown.present?)
|
||||
@ -273,6 +280,12 @@ module Email
|
||||
end
|
||||
end
|
||||
|
||||
def extract_gmail_quote(html)
|
||||
doc = Nokogiri::HTML.fragment(html)
|
||||
elided = doc.css("div.gmail_quote")[0].remove
|
||||
[doc.to_html, elided.to_html]
|
||||
end
|
||||
|
||||
def trim_reply_and_extract_elided(text)
|
||||
return [text, ""] if @opts[:skip_trimming]
|
||||
EmailReplyTrimmer.trim(text, true)
|
||||
|
Reference in New Issue
Block a user