From 01e0226086c5b7ccc36b2fa3e0d565f0afc656da Mon Sep 17 00:00:00 2001 From: Jeff Atwood Date: Fri, 26 Apr 2013 15:11:26 -0700 Subject: [PATCH] ignore username matches inside
 or 

also remember, lazy ? faster than greedy, less backtracking
---
 app/assets/javascripts/discourse/components/markdown.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/assets/javascripts/discourse/components/markdown.js b/app/assets/javascripts/discourse/components/markdown.js
index afa9f27a6a9..6a485f96afa 100644
--- a/app/assets/javascripts/discourse/components/markdown.js
+++ b/app/assets/javascripts/discourse/components/markdown.js
@@ -142,9 +142,9 @@ Discourse.Markdown = {
     converter.hooks.chain("postConversion", function(text) {
       if (!text) return "";
 
-      // don't do @username mentions inside 
 blocks
-      text = text.replace(/
([\s\S]*@[\s\S]*)<\/pre>/gi, function(wholeMatch, inner) {
-        return "
" + (inner.replace(/@/g, '@')) + "
"; + // don't do @username mentions inside
 or  blocks
+      text = text.replace(/<(pre|code>([\s\S]*?@[\s\S]*?)<\/(pre|code)>)/gi, function(wholeMatch, m1, m2, m3) {
+        return "<" + m1 + ">" + (m2.replace(/@/g, '@')) + "";
       });
 
       // add @username mentions, if valid; must be bounded on left and right by non-word characters