diff --git a/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts b/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts index 221aaf018a..0edb4c0cb0 100644 --- a/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts +++ b/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts @@ -121,6 +121,14 @@ describe('createExcerpt', () => { 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', ); }); + + test('should create excerpt for heading specified with anchor-id syntax', () => { + expect( + createExcerpt(dedent` + ## Markdown title {#my-anchor-id} + `), + ).toEqual('Markdown title'); + }); }); describe('parseMarkdownContentTitle', () => { diff --git a/packages/docusaurus-utils/src/markdownParser.ts b/packages/docusaurus-utils/src/markdownParser.ts index 0e86a714b7..9bdfc02772 100644 --- a/packages/docusaurus-utils/src/markdownParser.ts +++ b/packages/docusaurus-utils/src/markdownParser.ts @@ -55,6 +55,8 @@ export function createExcerpt(fileString: string): string | undefined { .replace(/(:{3}.*)/, '') // Remove Emoji names within colons include preceding whitespace. .replace(/\s?(:(::|[^:\n])+:)/g, '') + // Remove custom Markdown heading id. + .replace(/{#*[\w-]+}/, '') .trim(); if (cleanedLine) {