mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-18 19:46:57 +02:00
* fix(v2): optimize markdown parser regex * Change test description Co-authored-by: Nam Hoang Le <nam.hoang.le@mgm-tp.com>
This commit is contained in:
parent
e641caba10
commit
8c39826496
2 changed files with 53 additions and 2 deletions
|
@ -358,6 +358,57 @@ describe('parseMarkdownContentTitle', () => {
|
|||
contentTitle: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
test('Should parse markdown h1 title placed after multiple import declarations', () => {
|
||||
const markdown = dedent`
|
||||
import Component1 from '@site/src/components/Component1';
|
||||
import Component2 from '@site/src/components/Component2';
|
||||
import Component3 from '@site/src/components/Component3';
|
||||
import Component4 from '@site/src/components/Component4';
|
||||
import Component5 from '@site/src/components/Component5';
|
||||
import Component6 from '@site/src/components/Component6';
|
||||
import Component7 from '@site/src/components/Component7';
|
||||
import Component8 from '@site/src/components/Component8';
|
||||
import Component9 from '@site/src/components/Component9';
|
||||
import Component10 from '@site/src/components/Component10';
|
||||
import Component11 from '@site/src/components/Component11';
|
||||
import Component12 from '@site/src/components/Component12';
|
||||
import Component13 from '@site/src/components/Component13';
|
||||
import Component14 from '@site/src/components/Component14';
|
||||
import Component15 from '@site/src/components/Component15';
|
||||
|
||||
# Markdown Title
|
||||
|
||||
Lorem Ipsum
|
||||
|
||||
`;
|
||||
|
||||
expect(parseMarkdownContentTitle(markdown)).toEqual({
|
||||
content: dedent`
|
||||
import Component1 from '@site/src/components/Component1';
|
||||
import Component2 from '@site/src/components/Component2';
|
||||
import Component3 from '@site/src/components/Component3';
|
||||
import Component4 from '@site/src/components/Component4';
|
||||
import Component5 from '@site/src/components/Component5';
|
||||
import Component6 from '@site/src/components/Component6';
|
||||
import Component7 from '@site/src/components/Component7';
|
||||
import Component8 from '@site/src/components/Component8';
|
||||
import Component9 from '@site/src/components/Component9';
|
||||
import Component10 from '@site/src/components/Component10';
|
||||
import Component11 from '@site/src/components/Component11';
|
||||
import Component12 from '@site/src/components/Component12';
|
||||
import Component13 from '@site/src/components/Component13';
|
||||
import Component14 from '@site/src/components/Component14';
|
||||
import Component15 from '@site/src/components/Component15';
|
||||
|
||||
|
||||
|
||||
Lorem Ipsum
|
||||
|
||||
`,
|
||||
contentTitle: 'Markdown Title',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseMarkdownString', () => {
|
||||
|
|
|
@ -86,10 +86,10 @@ export function parseMarkdownContentTitle(
|
|||
|
||||
const content = contentUntrimmed.trim();
|
||||
|
||||
const regularTitleMatch = /^(?:import\s.*(from.*)?;?|\n)*?(?<pattern>#\s*(?<title>[^#\n{]*)+[ \t]*(?<suffix>({#*[\w-]+})|#)?\n*?)/g.exec(
|
||||
const regularTitleMatch = /^(?:import\s+\S+(\s+from\s+\S+)?;?|\n)*?(?<pattern>#\s*(?<title>[^#\n{]*)+[ \t]*(?<suffix>({#*[\w-]+})|#)?\n*?)/g.exec(
|
||||
content,
|
||||
);
|
||||
const alternateTitleMatch = /^(?:import\s.*(from.*)?;?|\n)*?(?<pattern>\s*(?<title>[^\n]*)\s*\n[=]+)/g.exec(
|
||||
const alternateTitleMatch = /^(?:import\s+\S+(\s+from\s+\S+)?;?|\n)*?(?<pattern>\s*(?<title>[^\n]*)\s*\n[=]+)/g.exec(
|
||||
content,
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue