mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-18 11:36:53 +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,
|
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', () => {
|
describe('parseMarkdownString', () => {
|
||||||
|
|
|
@ -86,10 +86,10 @@ export function parseMarkdownContentTitle(
|
||||||
|
|
||||||
const content = contentUntrimmed.trim();
|
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,
|
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,
|
content,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue