diff --git a/ui/src/components/markdown-parser.ts b/ui/src/components/markdown-parser.ts
index 75af77b68a3b..84a7c3b23b4e 100644
--- a/ui/src/components/markdown-parser.ts
+++ b/ui/src/components/markdown-parser.ts
@@ -73,8 +73,8 @@ function renderRawMarkdownHtml(
if (progressBars) {
return PROGRESS_HTML_RE.test(content.trim()) ? content : "";
}
- if (!block && /^
$/iu.test(content)) {
- return "
";
+ if (/^
$/iu.test(content.trim())) {
+ return block ? "
\n" : "
";
}
return escapeMarkdownHtml(content) + (block ? "\n" : "");
}
diff --git a/ui/src/components/markdown.test.ts b/ui/src/components/markdown.test.ts
index 4d47fd72085b..e9142fcd6b79 100644
--- a/ui/src/components/markdown.test.ts
+++ b/ui/src/components/markdown.test.ts
@@ -145,6 +145,12 @@ describe("toSanitizedMarkdownHtml", () => {
expect(cell?.textContent).toBe("一二");
});
+ it("renders an attribute-free line break between Markdown blocks", () => {
+ const html = toSanitizedMarkdownHtml("before\n\n
\n\nafter");
+
+ expect(html).toBe("
before
\nafter
\n"); + }); + it.each([ '