fix(v2): ignore export declarations in excerpt (#3703)

This commit is contained in:
Alexey Pyltsyn 2020-11-06 19:49:59 +03:00 committed by GitHub
parent 86be6cec1e
commit f2d1330207
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 13 deletions

View file

@ -374,12 +374,16 @@ describe('load utils', () => {
output: output:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.',
}, },
// Content with imports declarations and Markdown markup, as well as Emoji // Content with imports/exports declarations and Markdown markup, as well as Emoji
{ {
input: ` input: `
import Component from '@site/src/components/Component'; import Component from '@site/src/components/Component';
import Component from '@site/src/components/Component' import Component from '@site/src/components/Component'
export function ItemCol(props) { return <Item {...props} className={'col col--6 margin-bottom--lg'}/> }
export function ItemCol(props) { return <Item {...props} className={'col col--6 margin-bottom--lg'}/> };
Lorem **ipsum** dolor sit \`amet\`[^1], consectetur _adipiscing_ elit. [**Vestibulum**](https://wiktionary.org/wiki/vestibulum) ex urna[^bignote], ~molestie~ et sagittis ut, varius ac justo :wink:. Lorem **ipsum** dolor sit \`amet\`[^1], consectetur _adipiscing_ elit. [**Vestibulum**](https://wiktionary.org/wiki/vestibulum) ex urna[^bignote], ~molestie~ et sagittis ut, varius ac justo :wink:.
Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis. Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis.

View file

@ -188,21 +188,21 @@ export function getSubFolder(file: string, refDir: string): string | null {
return match && match[1]; return match && match[1];
} }
// Regex for an import statement.
const importRegexString = '^(.*import){1}(.+){0,1}\\s[\'"](.+)[\'"];?';
export function createExcerpt(fileString: string): string | undefined { export function createExcerpt(fileString: string): string | undefined {
let fileContent = fileString.trimLeft(); const fileLines = fileString.trimLeft().split('\n');
if (RegExp(importRegexString).test(fileContent)) {
fileContent = fileContent
.replace(RegExp(importRegexString, 'gm'), '')
.trimLeft();
}
const fileLines = fileContent.split('\n');
/* eslint-disable no-continue */
for (const fileLine of fileLines) { for (const fileLine of fileLines) {
// Skip empty line.
if (!fileLine.trim()) {
continue;
}
// Skip import/export declaration.
if (/^.*import\s.*from.*;?|export\s.*{.*};?/.test(fileLine)) {
continue;
}
const cleanedLine = fileLine const cleanedLine = fileLine
// Remove HTML tags. // Remove HTML tags.
.replace(/<[^>]*>/g, '') .replace(/<[^>]*>/g, '')