diff --git a/app/assets/javascripts/discourse/app/lib/to-markdown.js b/app/assets/javascripts/discourse/app/lib/to-markdown.js index 5f2b6cf98a..df260ab55e 100644 --- a/app/assets/javascripts/discourse/app/lib/to-markdown.js +++ b/app/assets/javascripts/discourse/app/lib/to-markdown.js @@ -167,7 +167,7 @@ export class Tag { } let text = Element.parse([blockquote], this.element) || ""; - text = text.trim().replace(/^>/g, ""); + text = text.trim().replaceAll(/^> /gm, "").trim(); if (text.length === 0) { return ""; } @@ -181,7 +181,7 @@ export class Tag { ? `[quote="${username}, post:${post}, topic:${topic}"]` : "[quote]"; - return `\n\n${prefix}\n${text}\n[/quote]\n\n`; + return `\n${prefix}\n${text}\n[/quote]\n`; } }; } diff --git a/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js b/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js index aaa2765f3a..c5e7b68b43 100644 --- a/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js +++ b/app/assets/javascripts/discourse/tests/unit/lib/to-markdown-test.js @@ -426,6 +426,33 @@ there is a quote above assert.strictEqual(toMarkdown(html), markdown.trim()); }); + test("converts nested quotes to markdown", function (assert) { + let html = ` + + `; + + let markdown = ` +[quote] +[quote] +test +[/quote] + +test2 +[/quote] +`; + + assert.strictEqual(toMarkdown(html), markdown.trim()); + }); + test("strips base64 image URLs", function (assert) { const html = '';