FIX: hoisting issue with regexp replacement patterns

This commit is contained in:
Régis Hanol 2015-03-23 16:33:41 +01:00
parent dce258017f
commit 3954f69514
2 changed files with 7 additions and 1 deletions

View file

@ -278,7 +278,9 @@ Discourse.Dialect = {
var keys = Object.keys(hoisted); var keys = Object.keys(hoisted);
if (keys.length) { if (keys.length) {
keys.forEach(function(key) { keys.forEach(function(key) {
result = result.replace(new RegExp(key, "g"), hoisted[key]); result = result.replace(new RegExp(key, "g"), function() {
return hoisted[key];
});
}); });
} }

View file

@ -531,4 +531,8 @@ test("code blocks/spans hoisting", function() {
cooked("```\n\n some code\n```", cooked("```\n\n some code\n```",
"<p><pre><code class=\"lang-auto\"> some code</code></pre></p>", "<p><pre><code class=\"lang-auto\"> some code</code></pre></p>",
"it works when nesting standard markdown code blocks within a fenced code block"); "it works when nesting standard markdown code blocks within a fenced code block");
cooked("`$&`",
"<p><code>$&amp;</code></p>",
"it works even when hoisting special replacement patterns");
}); });