diff --git a/lib/html_to_markdown.rb b/lib/html_to_markdown.rb index df8084ae4c..9e18269c66 100644 --- a/lib/html_to_markdown.rb +++ b/lib/html_to_markdown.rb @@ -143,9 +143,14 @@ class HtmlToMarkdown end def visit_a(node) - @stack[-1].markdown << "[" - traverse(node) - @stack[-1].markdown << "](#{node["href"]})" + href = node["href"] + if href.present? && (href.start_with?("http") || href.start_with?("www.")) + @stack[-1].markdown << "[" + traverse(node) + @stack[-1].markdown << "](#{href})" + else + traverse(node) + end end def visit_tt(node) diff --git a/spec/components/html_to_markdown_spec.rb b/spec/components/html_to_markdown_spec.rb index f2344e5839..43651536e3 100644 --- a/spec/components/html_to_markdown_spec.rb +++ b/spec/components/html_to_markdown_spec.rb @@ -31,6 +31,12 @@ describe HtmlToMarkdown do expect(html_to_markdown(%Q{Discourse})).to eq("[Discourse](https://www.discourse.org)") end + it "removes empty & invalid " do + expect(html_to_markdown(%Q{Discourse})).to eq("Discourse") + expect(html_to_markdown(%Q{Discourse})).to eq("Discourse") + expect(html_to_markdown(%Q{Discourse})).to eq("Discourse") + end + HTML_WITH_IMG ||= %Q{Discourse Logo} it "converts " do