diff --git a/app/assets/javascripts/pretty-text/engines/discourse-markdown/helpers.js.es6 b/app/assets/javascripts/pretty-text/engines/discourse-markdown/helpers.js.es6 index 9778f5b5f2e..cd246286896 100644 --- a/app/assets/javascripts/pretty-text/engines/discourse-markdown/helpers.js.es6 +++ b/app/assets/javascripts/pretty-text/engines/discourse-markdown/helpers.js.es6 @@ -38,8 +38,12 @@ export function textReplace(state, callback, skipAllLinks) { if (token.type === "link_open" || token.type === "link_close") { linkLevel -= token.nesting; } else if (token.type === "html_inline") { - if (token.content.substr(0, 2).toLowerCase() === "<a") { - linkLevel++; + const openLink = token.content.substr(0, 2).toLowerCase(); + + if (openLink === "<a") { + if (token.content.match(/^<a(\s.*)?>/i)) { + linkLevel++; + } } else if (token.content.substr(0, 4).toLowerCase() === "</a>") { linkLevel--; } diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb index e1a51ec510c..10fddf0e503 100644 --- a/spec/components/pretty_text_spec.rb +++ b/spec/components/pretty_text_spec.rb @@ -204,6 +204,10 @@ describe PrettyText do describe "Mentions" do + it "can handle mentions after abbr" do + expect(PrettyText.cook("test <abbr>test</abbr>\n\n@bob")).to eq("<p>test <abbr>test</abbr></p>\n<p><span class=\"mention\">@bob</span></p>") + end + it "should handle 3 mentions in a row" do expect(PrettyText.cook('@hello @hello @hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span></p>" end