diff --git a/lib/html_to_markdown.rb b/lib/html_to_markdown.rb
index 40997fa5c94..30c394648d6 100644
--- a/lib/html_to_markdown.rb
+++ b/lib/html_to_markdown.rb
@@ -37,7 +37,7 @@ class HtmlToMarkdown
end
def visit(node)
- return if node["style"] && node["style"][/display[[:space:]]*:[[:space:]]*none/]
+ return if node["style"] && node["style"][/display\s*:\s*none/]
if node.description&.block? && node.parent&.description&.block? && @stack[-1].markdown.size > 0
block = @stack[-1].dup
@@ -136,7 +136,7 @@ class HtmlToMarkdown
end
def visit_img(node)
- if is_valid_url?(node["src"])
+ if is_valid_url?(node["src"]) && is_visible_img?(node)
if @opts[:keep_img_tags]
@stack[-1].markdown << node.to_html
else
@@ -210,4 +210,11 @@ class HtmlToMarkdown
url.present? && (url.start_with?("http") || url.start_with?("www."))
end
+ def is_visible_img?(img)
+ return false if img["width"].present? && img["width"].to_i == 0
+ return false if img["height"].present? && img["height"].to_i == 0
+ return false if img["style"].present? && img["style"][/(width|height)\s*:\s*0/]
+ true
+ end
+
end
diff --git a/spec/components/html_to_markdown_spec.rb b/spec/components/html_to_markdown_spec.rb
index 52c0eb670a1..091bc79ee80 100644
--- a/spec/components/html_to_markdown_spec.rb
+++ b/spec/components/html_to_markdown_spec.rb
@@ -71,6 +71,13 @@ describe HtmlToMarkdown do
expect(html_to_markdown(%Q{})).to eq("")
end
+ it "skips hidden " do
+ expect(html_to_markdown(%Q{})).to eq("")
+ expect(html_to_markdown(%Q{})).to eq("")
+ expect(html_to_markdown(%Q{})).to eq("")
+ expect(html_to_markdown(%Q{})).to eq("")
+ end
+
(1..6).each do |n|
it "converts " do
expect(html_to_markdown("Header #{n}")).to eq("#" * n + " Header #{n}")