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 =
'
';