fix(v2): Fix MDX docs being considered as partials when siteDir match the _ prefix convention (#5199)

* Add _ to dogfood docs folder to cover against edge case

* Fix edge case with MDX partials when site / content dir contains a _ prefix

* add globUtils tests

* proper dogfooding folder re-organization, all content plugins being used

* refactor dogfooding folder + expose /tests page index

* fix page plugin ignoring options.routeBasePath
This commit is contained in:
Sébastien Lorber 2021-07-21 14:13:51 +02:00 committed by GitHub
parent a2729128db
commit 4d06f26c1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 271 additions and 54 deletions

View file

@ -7,6 +7,7 @@
const {readFile} = require('fs-extra');
const mdx = require('@mdx-js/mdx');
const chalk = require('chalk');
const emoji = require('remark-emoji');
const {
parseFrontMatter,
@ -69,8 +70,8 @@ module.exports = async function docusaurusMdxLoader(fileString) {
],
filepath: filePath,
};
let result;
let result;
try {
result = await mdx(content, options);
} catch (err) {
@ -90,9 +91,19 @@ module.exports = async function docusaurusMdxLoader(fileString) {
: false;
if (isMDXPartial && hasFrontMatter) {
return callback(
new Error(`MDX partial should not contain FrontMatter: ${filePath}`),
);
const errorMessage = `Docusaurus MDX partial files should not contain FrontMatter.
Those partial files use the _ prefix as a convention by default, but this is configurable.
File at ${filePath} contains FrontMatter that will be ignored: \n${JSON.stringify(
frontMatter,
null,
2,
)}`;
const shouldError = process.env.NODE_ENV === 'test' || process.env.CI;
if (shouldError) {
return callback(new Error(errorMessage));
} else {
console.warn(chalk.yellow(errorMessage));
}
}
if (!isMDXPartial) {