From 495a511862b859a98516fae90179b15598fff110 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 2 Jan 2017 13:33:03 +0530 Subject: [PATCH] simplify quote markup in emails --- lib/email/styles.rb | 17 ++++++++++++++--- spec/components/email/styles_spec.rb | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/email/styles.rb b/lib/email/styles.rb index a6fb8e27327..7699204569b 100644 --- a/lib/email/styles.rb +++ b/lib/email/styles.rb @@ -109,9 +109,7 @@ module Email def onebox_styles # Links to other topics - style('aside.quote', 'border-left: 5px solid #e9e9e9; background-color: #f8f8f8; padding: 12px 25px 2px 12px; margin-bottom: 10px;') - style('aside.quote blockquote', 'border: 0px; padding: 0; margin: 7px 0; background-color: clear;') - style('aside.quote blockquote > p', 'padding: 0;') + style('aside.quote', 'padding: 12px 25px 2px 12px; margin-bottom: 10px;') style('aside.quote div.info-line', 'color: #666; margin: 10px 0') style('aside.quote .avatar', 'margin-right: 5px; width:20px; height:20px') @@ -126,6 +124,19 @@ module Email style('aside.onebox .onebox-body h3, aside.onebox .onebox-body h4', "font-size: 1.17em; margin: 10px 0;") style('.onebox-metadata', "color: #919191") + @fragment.css('aside.quote blockquote > p').each do |p| + p['style'] = 'padding: 0;' + end + + # Convert all `aside.quote` tags to `blockquote`s + @fragment.css('aside.quote').each do |n| + original_node = n.dup + original_node.search('div.quote-controls').remove + blockquote = original_node.css('blockquote').inner_html.strip.start_with?("#{original_node.css('blockquote').inner_html}

" + n.inner_html = original_node.css('div.title').inner_html + blockquote + n.name = "blockquote" + end + # Finally, convert all `aside` tags to `div`s @fragment.css('aside, article, header').each do |n| n.name = "div" diff --git a/spec/components/email/styles_spec.rb b/spec/components/email/styles_spec.rb index 97e09c726c5..07061dbc3ae 100644 --- a/spec/components/email/styles_spec.rb +++ b/spec/components/email/styles_spec.rb @@ -169,5 +169,11 @@ describe Email::Styles do end end + context "onebox_styles" do + it "renders quote as
" do + fragment = html_fragment('') + expect(fragment.to_s.squish).to match(/^$/) + end + end end