diff --git a/app/assets/javascripts/discourse/components/markdown.js b/app/assets/javascripts/discourse/components/markdown.js index 8f67853f53f..51ade57eb6e 100644 --- a/app/assets/javascripts/discourse/components/markdown.js +++ b/app/assets/javascripts/discourse/components/markdown.js @@ -109,7 +109,8 @@ Discourse.Markdown = { // Extract quotes so their contents are not passed through markdown. converter.hooks.chain("preConversion", function(text) { - var extracted = Discourse.BBCode.extractQuotes(text); + var formated = Discourse.BBCode.format(text, opts); + var extracted = Discourse.BBCode.extractQuotes(formated); quoteTemplate = extracted.template; return extracted.text; }); @@ -184,7 +185,7 @@ Discourse.Markdown = { text = quoteTemplate(text); } - return Discourse.BBCode.format(text, opts); + return text; }); if (opts.sanitize) { diff --git a/test/javascripts/components/markdown_test.js b/test/javascripts/components/markdown_test.js index 83d94cb6c7e..2903f95d2be 100644 --- a/test/javascripts/components/markdown_test.js +++ b/test/javascripts/components/markdown_test.js @@ -68,14 +68,14 @@ test("Links", function() { test("Quotes", function() { cookedOptions("1[quote=\"bob, post:1\"]my quote[/quote]2", { topicId: 2, lookupAvatar: function(name) { return "" + name; } }, - "

1

\n


\n2

", + "

1


\n

2

", "handles quotes properly"); cookedOptions("1[quote=\"bob, post:1\"]my quote[/quote]2", { topicId: 2, lookupAvatar: function(name) { } }, - "

1

\n


\n2

", + "

1


\n

2

", "includes no avatar if none is found"); }); @@ -118,4 +118,10 @@ test("SanitizeHTML", function() { equal(sanitizeHtml("
"), "
"); equal(sanitizeHtml("

hello

"), "

hello

"); -}); \ No newline at end of file +}); + +test("with BBCode", function() { + cooked("[img]http://eviltrout.com/eviltrout.png[/img]", + "

", + "BBCode is parsed first"); +});