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{
}
it "converts
" do