From b79bd8ef050635c70e8e66824c8dd8a9581c9476 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Fri, 31 Mar 2023 11:37:30 +0200 Subject: [PATCH] Removes empty `

` tags from product description --- app/services/content_scrubber.rb | 8 ++++++++ spec/services/content_sanitizer_spec.rb | 4 ++++ 2 files changed, 12 insertions(+) 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