module Feeds class CleanHtml MEDIUM_TRACKING_PIXEL = "medium.com/_/stat".freeze MEDIUM_CATCHPHRASE = "where people are continuing the conversation by highlighting".freeze def self.call(html) doc = Nokogiri::HTML(html) # Remove Medium tracking pixel doc.css("img").each do |img| img.remove if img.attr("src")&.include?(MEDIUM_TRACKING_PIXEL) end # Remove Medium catch phrase doc.css("p").each do |paragraph| paragraph.remove if paragraph.text.include?(MEDIUM_CATCHPHRASE) end doc.css("figure").each do |el| el.name = "p" end doc.xpath("//@class").remove doc.to_html end end end