From 35592a26f89624d0ac4f0505f61a6386cc339e30 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Thu, 15 Oct 2026 20:26:35 +0200 Subject: [PATCH] fix(markdown): keep summary block boundaries outside bold text --- packages/app/src/components/markdown/html.ts | 14 ++++++++++++-- .../app/src/components/markdown/renderer.test.ts | 8 ++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/app/src/components/markdown/html.ts b/packages/app/src/components/markdown/html.ts index 467430fb72..9a1a9b9ce0 100644 --- a/packages/app/src/components/markdown/html.ts +++ b/packages/app/src/components/markdown/html.ts @@ -6,7 +6,7 @@ import type { Nodes } from "mdast"; const ATTRIBUTE = String.raw`\s+[A-Za-z_:][\w.:-]*(?:\s*=\s*(?:[^\s"'=<>\x60]+|'[^']*'|"[^"]*"))?`; const TAG = String.raw`<(?:[A-Za-z][A-Za-z0-9-]*(?:${ATTRIBUTE})*\s*\/?|\/[A-Za-z][A-Za-z0-9-]*\s*)>`; const HTML = new RegExp( - String.raw`(?|]*>[\s\S]*?<\/code\s*>|${TAG})`, + String.raw`(?|]*>[\s\S]*?<\/code\s*>|]*>[\s\S]*?<\/summary\s*>|${TAG})`, "gi", ); const BLOCK_TAGS = new Set([ @@ -57,6 +57,16 @@ export function normalizeMarkdownHtml(source: string): string { const convert = (raw: string, offset: number): string => { if (codeRanges.some(({ start, end }) => offset >= start && offset < end)) return raw; if (raw.startsWith("After", "BeforeAfter"], + [ + "

Important Files Changed

Body
", + "**Important Files Changed**\n\nBody", + ], + [ + "

First

Second

Body
", + "**First Second**\n\nBody", + ], ["file.ts", "file.ts"], ['GitHub', "[Git]()Hub"], ["GitHub", "GitHub"],