diff --git a/README.md b/README.md index 642fcd31a..410daaccb 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ The `docusaurus-plugin-openapi-docs` plugin can be configured with the following | `versions` | `object` | `null` | _Optional:_ Options for versioning configuration. See below for a list of supported options. | | `markdownGenerators` | `object` | `null` | _Optional:_ Customize MDX content via generator functions. See below for a list of supported options. | | `showSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates standalone schema pages and adds them to the sidebar. | +| `generateSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates schema pages for all schemas referenced in the OpenAPI spec (not added in sidebar). | ### sidebarOptions diff --git a/demo/docs/intro.mdx b/demo/docs/intro.mdx index d4779c3f7..6361420be 100644 --- a/demo/docs/intro.mdx +++ b/demo/docs/intro.mdx @@ -221,6 +221,7 @@ The `docusaurus-plugin-openapi-docs` plugin can be configured with the following | `versions` | `object` | `null` | _Optional:_ Options for versioning configuration. See below for a list of supported options. | | `markdownGenerators` | `object` | `null` | _Optional:_ Customize MDX content via generator functions. See below for a list of supported options. | | `showSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates standalone schema pages and adds them to the sidebar. | +| `generateSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates schema pages for all schemas referenced in the OpenAPI spec (not added in sidebar). | ### sidebarOptions diff --git a/packages/docusaurus-plugin-openapi-docs/README.md b/packages/docusaurus-plugin-openapi-docs/README.md index 73121243d..1d8fd7c23 100644 --- a/packages/docusaurus-plugin-openapi-docs/README.md +++ b/packages/docusaurus-plugin-openapi-docs/README.md @@ -174,6 +174,7 @@ The `docusaurus-plugin-openapi-docs` plugin can be configured with the following | `versions` | `object` | `null` | _Optional:_ Options for versioning configuration. See below for a list of supported options. | | `markdownGenerators` | `object` | `null` | _Optional:_ Customize MDX content via generator functions. See below for a list of supported options. | | `showSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates standalone schema pages and adds them to the sidebar. | +| `generateSchemas` | `boolean` | `null` | _Optional:_ If set to `true`, generates schema pages for all schemas referenced in the OpenAPI spec (not added in sidebar). | ### sidebarOptions diff --git a/packages/docusaurus-plugin-openapi-docs/src/openapi/openapi.ts b/packages/docusaurus-plugin-openapi-docs/src/openapi/openapi.ts index 697fd2d1a..544bf7728 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/openapi/openapi.ts +++ b/packages/docusaurus-plugin-openapi-docs/src/openapi/openapi.ts @@ -423,6 +423,7 @@ function createItems( if ( options?.showSchemas === true || + options?.generateSchemas === true || Object.entries(openapiData?.components?.schemas ?? {}) .flatMap(([_, s]) => s["x-tags"]) .filter((item) => !!item).length > 0 @@ -431,7 +432,11 @@ function createItems( for (let [schema, schemaObject] of Object.entries( openapiData?.components?.schemas ?? {} )) { - if (options?.showSchemas === true || schemaObject["x-tags"]) { + if ( + options?.showSchemas === true || + options?.generateSchemas === true || + schemaObject["x-tags"] + ) { const baseIdSpaces = schemaObject?.title?.replace(" ", "-").toLowerCase() ?? ""; const baseId = kebabCase(baseIdSpaces); diff --git a/packages/docusaurus-plugin-openapi-docs/src/options.ts b/packages/docusaurus-plugin-openapi-docs/src/options.ts index 3c46e27f5..ac5fc6e92 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/options.ts +++ b/packages/docusaurus-plugin-openapi-docs/src/options.ts @@ -48,6 +48,7 @@ export const OptionsSchema = Joi.object({ sidebarOptions: sidebarOptions, markdownGenerators: markdownGenerators, showSchemas: Joi.boolean(), + generateSchemas: Joi.boolean(), disableCompression: Joi.boolean(), version: Joi.string().when("versions", { is: Joi.exist(), diff --git a/packages/docusaurus-plugin-openapi-docs/src/types.ts b/packages/docusaurus-plugin-openapi-docs/src/types.ts index eec717e5c..627a439f6 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/types.ts +++ b/packages/docusaurus-plugin-openapi-docs/src/types.ts @@ -51,6 +51,7 @@ export interface APIOptions { proxy?: string; markdownGenerators?: MarkdownGenerator; showSchemas?: boolean; + generateSchemas?: boolean; disableCompression?: boolean; }