chore: backport retro compatible commits for the Docusaurus v2.2 release (#8264)

Co-authored-by: Jan Peer Stoecklmair <jan.peer.stoecklmair@dynatrace.com>
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
Co-authored-by: sebastienlorber <lorber.sebastien@gmail.com>
Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: LittleboyHarry <littleboyharry@qq.com>
Co-authored-by: Mikey O'Toole <mikey@homotechsual.dev>
Co-authored-by: Jan Peer Stöcklmair <jan.oster94@gmail.com>
Co-authored-by: Nguyễn Thành Nam <namnguyenthanh.work@gmail.com>
Co-authored-by: Sanjaiyan Parthipan <parthipankalayini@gmail.com>
Co-authored-by: Ramazan SANCAR <ramazansancar4545@gmail.com>
Co-authored-by: mturoci <64769322+mturoci@users.noreply.github.com>
Co-authored-by: Adnan Hashmi <56730784+adnanhashmi09@users.noreply.github.com>
Co-authored-by: Pranav Joglekar <pranav2000joglekar@gmail.com>
Co-authored-by: forgeRW <20483211+forgeRW@users.noreply.github.com>
Co-authored-by: Masahiko Hara <pasora@sfc.wide.ad.jp>
Co-authored-by: Johan Fagerberg <johanringmann@gmail.com>
Co-authored-by: John Reilly <johnny_reilly@hotmail.com>
Co-authored-by: Sam Wall <oss@samuelwall.co.uk>
Co-authored-by: Jeferson S. Brito <30840709+jeferson-sb@users.noreply.github.com>
Co-authored-by: evan <evanmccarthy@outlook.com>
Co-authored-by: Xabier Lahuerta Vazquez <xlahuerta@protonmail.com>
Co-authored-by: Forresst <forresst17@gmail.com>
Co-authored-by: Shanmughapriyan S <priyanshan03@gmail.com>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
This commit is contained in:
Sébastien Lorber 2022-10-29 15:13:42 +02:00 committed by GitHub
parent 7743aa6307
commit de972142a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
155 changed files with 2822 additions and 563 deletions

View file

@ -1,10 +1,11 @@
{
"name": "@docusaurus/plugin-content-docs",
"version": "2.1.0",
"version": "2.2.0",
"description": "Docs plugin for Docusaurus.",
"main": "lib/index.js",
"sideEffects": false,
"exports": {
"./lib/*": "./lib/*",
"./src/*": "./src/*",
"./client": {
"type": "./lib/client/index.d.ts",
@ -34,13 +35,13 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/core": "2.1.0",
"@docusaurus/logger": "2.1.0",
"@docusaurus/mdx-loader": "2.1.0",
"@docusaurus/module-type-aliases": "2.1.0",
"@docusaurus/types": "2.1.0",
"@docusaurus/utils": "2.1.0",
"@docusaurus/utils-validation": "2.1.0",
"@docusaurus/core": "2.2.0",
"@docusaurus/logger": "2.2.0",
"@docusaurus/mdx-loader": "2.2.0",
"@docusaurus/module-type-aliases": "2.2.0",
"@docusaurus/types": "2.2.0",
"@docusaurus/utils": "2.2.0",
"@docusaurus/utils-validation": "2.2.0",
"@types/react-router-config": "^5.0.6",
"combine-promises": "^1.1.0",
"fs-extra": "^10.1.0",

View file

@ -93,6 +93,18 @@ function createTestUtils({
});
}
// Makes it easier to assert failure cases
async function getProcessDocFileError(
docFileArg: DocFile | string,
): Promise<Error> {
try {
await processDocFile(docFileArg);
return new Error("unexpected: getProcessDocFileError didn't crash");
} catch (e) {
return e as Error;
}
}
async function testMeta(
docFileSource: string,
expectedMetadata: Optional<
@ -172,7 +184,13 @@ function createTestUtils({
};
}
return {processDocFile, testMeta, testSlug, generateNavigation};
return {
processDocFile,
getProcessDocFileError,
testMeta,
testSlug,
generateNavigation,
};
}
describe('simple site', () => {
@ -683,16 +701,21 @@ describe('simple site', () => {
it('docs with invalid id', async () => {
const {defaultTestUtils} = await loadSite();
await expect(async () =>
defaultTestUtils.processDocFile(
createFakeDocFile({
source: 'some/fake/path',
frontMatter: {
id: 'Hello/world',
},
}),
),
).rejects.toThrowErrorMatchingInlineSnapshot(
const error = await defaultTestUtils.getProcessDocFileError(
createFakeDocFile({
source: 'some/fake/path',
frontMatter: {
id: 'Hello/world',
},
}),
);
expect(error.message).toMatchInlineSnapshot(
`"Can't process doc metadata for doc at path path=some/fake/path in version name=current"`,
);
expect(error.cause).toBeDefined();
expect(error.cause!.message).toMatchInlineSnapshot(
`"Document id "Hello/world" cannot include slash."`,
);
});

View file

@ -316,7 +316,7 @@ async function doProcessDocMetadata({
};
}
export function processDocMetadata(args: {
export async function processDocMetadata(args: {
docFile: DocFile;
versionMetadata: VersionMetadata;
context: LoadContext;
@ -324,10 +324,12 @@ export function processDocMetadata(args: {
env: DocEnv;
}): Promise<DocMetadataBase> {
try {
return doProcessDocMetadata(args);
return await doProcessDocMetadata(args);
} catch (err) {
logger.error`Can't process doc metadata for doc at path path=${args.docFile.filePath} in version name=${args.versionMetadata.versionName}`;
throw err;
throw new Error(
`Can't process doc metadata for doc at path path=${args.docFile.filePath} in version name=${args.versionMetadata.versionName}`,
{cause: err as Error},
);
}
}

View file

@ -375,6 +375,7 @@ export default async function pluginContentDocs(
}) => ({
image: frontMatter.image,
}),
markdownConfig: siteConfig.markdown,
},
},
{