From 30dbb570e5dce1d6e0982db64e8677fe3188045f Mon Sep 17 00:00:00 2001
From: Jens Maier <jens@elberet.de>
Date: Wed, 10 Sep 2014 12:59:21 +0200
Subject: [PATCH] FIX: fix dialect block ordering

---
 app/assets/javascripts/discourse/dialects/dialect.js | 5 +++++
 test/javascripts/lib/markdown-test.js.es6            | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/app/assets/javascripts/discourse/dialects/dialect.js b/app/assets/javascripts/discourse/dialects/dialect.js
index 07ebc7947..5f6c754b1 100644
--- a/app/assets/javascripts/discourse/dialects/dialect.js
+++ b/app/assets/javascripts/discourse/dialects/dialect.js
@@ -21,6 +21,11 @@ var parser = window.BetterMarkdown,
 **/
 function initializeDialects() {
   MD.buildBlockOrder(dialect.block);
+  var index = dialect.block.__order__.indexOf("code");
+  if (index > -1) {
+    dialect.block.__order__.splice(index, 1);
+    dialect.block.__order__.unshift("code");
+  }
   MD.buildInlinePatterns(dialect.inline);
   initialized = true;
 }
diff --git a/test/javascripts/lib/markdown-test.js.es6 b/test/javascripts/lib/markdown-test.js.es6
index 56639193e..a07d3b077 100644
--- a/test/javascripts/lib/markdown-test.js.es6
+++ b/test/javascripts/lib/markdown-test.js.es6
@@ -379,6 +379,14 @@ test("Code Blocks", function() {
   cooked("```\nline1\n```\n```\nline2\n\nline3\n```",
          "<p><pre><code class=\"lang-auto\">line1</code></pre></p>\n\n<p><pre><code class=\"lang-auto\">line2\n\nline3</code></pre></p>",
          "it does not consume next block's trailing newlines");
+
+  cooked("    <pre>test</pre>",
+         "<pre><code>&lt;pre&gt;test&lt;/pre&gt;</code></pre>",
+         "it does not parse other block types in markdown code blocks");
+
+  cooked("    [quote]test[/quote]",
+         "<pre><code>[quote]test[/quote]</code></pre>",
+         "it does not parse other block types in markdown code blocks");
 });
 
 test("sanitize", function() {