From d23e8be14fe67f8ea9097bd67e37e175182800f2 Mon Sep 17 00:00:00 2001 From: okxint Date: Sat, 1 Aug 2026 15:38:19 +0530 Subject: [PATCH] fix(utils): strip MDX export blocks before heading detection in parseMarkdownContentTitle --- packages/docusaurus-utils/src/markdownUtils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docusaurus-utils/src/markdownUtils.ts b/packages/docusaurus-utils/src/markdownUtils.ts index 216d0122e7ad..59018f9128a1 100644 --- a/packages/docusaurus-utils/src/markdownUtils.ts +++ b/packages/docusaurus-utils/src/markdownUtils.ts @@ -255,11 +255,11 @@ export function parseMarkdownContentTitle( const removeContentTitleOption = options?.removeContentTitle ?? false; const content = contentUntrimmed.trim(); - // We only need to detect import statements that will be parsed by MDX as - // `import` nodes, as broken syntax can't render anyways. That means any block - // that has `import` at the very beginning and surrounded by empty lines. + // We only need to detect import/export statements that will be parsed by MDX + // as `import`/`export` nodes. That means any block that starts with `import` + // or `export` at the very beginning and is separated by empty lines. const contentWithoutImport = content - .replace(/^(?:import\s(?:.|\r?\n(?!\r?\n))*(?:\r?\n){2,})*/, '') + .replace(/^(?:(?:import|export)\s(?:.|\r?\n(?!\r?\n))*(?:\r?\n){2,})*/, '') .trim(); const regularTitleMatch = /^#[ \t]+(?[^ \t].*)(?:\r?\n|$)/.exec(