mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-15 09:12:24 +02:00
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:
parent
a2729128db
commit
4d06f26c1f
28 changed files with 271 additions and 54 deletions
|
@ -8,8 +8,8 @@
|
|||
// Globby/Micromatch are the 2 libs we use in Docusaurus consistently
|
||||
|
||||
export {default as Globby} from 'globby';
|
||||
|
||||
import Micromatch from 'micromatch'; // Note: Micromatch is used by Globby
|
||||
import path from 'path';
|
||||
|
||||
// The default patterns we ignore when globbing
|
||||
// using _ prefix for exclusion by convention
|
||||
|
@ -33,3 +33,31 @@ export function createMatcher(patterns: string[]): Matcher {
|
|||
);
|
||||
return (str) => regexp.test(str);
|
||||
}
|
||||
|
||||
// We use match patterns like '**/_*/**',
|
||||
// This function permits to help to:
|
||||
// Match /user/sebastien/website/docs/_partials/xyz.md
|
||||
// Ignore /user/_sebastien/website/docs/partials/xyz.md
|
||||
export function createAbsoluteFilePathMatcher(
|
||||
patterns: string[],
|
||||
rootFolders: string[],
|
||||
): Matcher {
|
||||
const matcher = createMatcher(patterns);
|
||||
|
||||
function getRelativeFilePath(absoluteFilePath: string) {
|
||||
const rootFolder = rootFolders.find((folderPath) =>
|
||||
absoluteFilePath.startsWith(folderPath),
|
||||
);
|
||||
if (!rootFolder) {
|
||||
throw new Error(
|
||||
`createAbsoluteFilePathMatcher unexpected error, absoluteFilePath=${absoluteFilePath} was not contained in any of the root folders ${JSON.stringify(
|
||||
rootFolders,
|
||||
)}`,
|
||||
);
|
||||
}
|
||||
return path.relative(rootFolder, absoluteFilePath);
|
||||
}
|
||||
|
||||
return (absoluteFilePath: string) =>
|
||||
matcher(getRelativeFilePath(absoluteFilePath));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue