From e2c361f353b475fa99ce68c0b3ac037b3d5c926c Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 21 Jan 2014 16:18:20 -0500 Subject: [PATCH] FIX: Indented code blocks followed by `
` weren't working. --- .../discourse/dialects/autoquote_dialect.js | 2 +- app/assets/javascripts/discourse/dialects/html.js | 10 +++++++--- test/javascripts/lib/markdown_test.js | 3 +++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/dialects/autoquote_dialect.js b/app/assets/javascripts/discourse/dialects/autoquote_dialect.js index e34bd3c2330..e58e6b4ced0 100644 --- a/app/assets/javascripts/discourse/dialects/autoquote_dialect.js +++ b/app/assets/javascripts/discourse/dialects/autoquote_dialect.js @@ -20,4 +20,4 @@ Discourse.Dialect.registerInline('"', function(str, match, prev) { return [str.length, ['blockquote', inner]]; } } -}); \ No newline at end of file +}); diff --git a/app/assets/javascripts/discourse/dialects/html.js b/app/assets/javascripts/discourse/dialects/html.js index ed4d4641a25..466a0ad4f54 100644 --- a/app/assets/javascripts/discourse/dialects/html.js +++ b/app/assets/javascripts/discourse/dialects/html.js @@ -25,12 +25,16 @@ var blockTags = ['address', 'article', 'aside', 'audio', 'blockquote', 'canvas', }; Discourse.Dialect.registerBlock('html', function(block, next) { + var split; // Fix manual blockquote paragraphing even though it's not strictly correct - var split = splitAtLast('blockquote', block, next, true); - if (split) { return split; } + if (block.search(/[^\s]+
]+)\>/m.exec(block); + var m = /^<([^>]+)\>/.exec(block); if (m && m[1]) { var tag = m[1].split(/\s/); if (tag && tag[0] && blockTags.indexOf(tag[0]) !== -1) { diff --git a/test/javascripts/lib/markdown_test.js b/test/javascripts/lib/markdown_test.js index 4fb041e0e65..62821659b7c 100644 --- a/test/javascripts/lib/markdown_test.js +++ b/test/javascripts/lib/markdown_test.js @@ -321,6 +321,9 @@ test("Code Blocks", function() { "

[quote="sam, post:1, topic:9441, full:true"]This is `<not>` a bug.[/quote]

", "it allows code with backticks in it"); + cooked(" hello\n
test
", + "
hello
\n\n
test
", + "it allows an indented code block to by followed by a `
`"); }); test("sanitize", function() {