diff --git a/app/services/content_scrubber.rb b/app/services/content_scrubber.rb index f517dbda89..7305aecf7e 100644 --- a/app/services/content_scrubber.rb +++ b/app/services/content_scrubber.rb @@ -10,6 +10,14 @@ class ContentScrubber < Rails::Html::PermitScrubber self.attributes = ALLOWED_ATTRIBUTES end + def scrub(node) + if node.name == 'p' && (node.children.empty? || node.text.blank?) + node.remove + else + super + end + end + def skip_node?(node) node.text? end diff --git a/spec/services/content_sanitizer_spec.rb b/spec/services/content_sanitizer_spec.rb index 8e2117c1e8..6961d8e574 100644 --- a/spec/services/content_sanitizer_spec.rb +++ b/spec/services/content_sanitizer_spec.rb @@ -53,5 +53,9 @@ describe ContentSanitizer do it "echos nil if given nil" do expect(service.sanitize_content(nil)).to be(nil) end + + it "removes empty

tags and keeps non-empty ones" do + expect(service.sanitize_content("

hello

world!

")).to eq("

hello

world!

") + end end end