@@ -79,13 +79,20 @@ export default function pluginOpenAPIDocs(
7979 const presets : any = siteConfig . presets ;
8080 const plugins : any = siteConfig . plugins ;
8181 const presetsPlugins = presets . concat ( plugins ) ;
82- const docData : any = getDocsPluginConfig ( presetsPlugins , docsPluginId ) ;
83- const docRouteBasePath = docData ? docData . routeBasePath : undefined ;
84- const docPath = docData ? ( docData . path ? docData . path : "docs" ) : undefined ;
82+ let docData : any = getDocsPluginConfig ( presetsPlugins , docsPluginId ) ;
83+ let docRouteBasePath = docData ? docData . routeBasePath : undefined ;
84+ let docPath = docData ? ( docData . path ? docData . path : "docs" ) : undefined ;
8585
86- async function generateApiDocs ( options : APIOptions ) {
86+ async function generateApiDocs ( options : APIOptions , pluginId : any ) {
8787 let { specPath, outputDir, template, sidebarOptions } = options ;
8888
89+ // Override docPath if pluginId provided
90+ if ( pluginId ) {
91+ docData = getDocsPluginConfig ( presetsPlugins , pluginId ) ;
92+ docRouteBasePath = docData ? docData . routeBasePath : undefined ;
93+ docPath = docData ? ( docData . path ? docData . path : "docs" ) : undefined ;
94+ }
95+
8996 const contentPath = isURL ( specPath )
9097 ? specPath
9198 : path . resolve ( siteDir , specPath ) ;
@@ -414,10 +421,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
414421 const pluginId = options . pluginId ;
415422 const pluginInstances = getPluginInstances ( plugins ) ;
416423 let targetConfig : any ;
424+ let targetDocsPluginId : any ;
417425 if ( pluginId ) {
418426 try {
419427 const pluginConfig = getPluginConfig ( plugins , pluginId ) ;
420428 targetConfig = pluginConfig . config ?? { } ;
429+ targetDocsPluginId = pluginConfig . docsPluginId ;
421430 } catch {
422431 console . error (
423432 chalk . red ( `OpenAPI docs plugin ID '${ pluginId } ' not found.` )
@@ -445,15 +454,15 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
445454 ) ;
446455 } else {
447456 Object . keys ( targetConfig ) . forEach ( async function ( key ) {
448- await generateApiDocs ( targetConfig [ key ] ) ;
457+ await generateApiDocs ( targetConfig [ key ] , targetDocsPluginId ) ;
449458 } ) ;
450459 }
451460 } else if ( ! targetConfig [ id ] ) {
452461 console . error (
453462 chalk . red ( `ID '${ id } ' does not exist in OpenAPI docs config.` )
454463 ) ;
455464 } else {
456- await generateApiDocs ( targetConfig [ id ] ) ;
465+ await generateApiDocs ( targetConfig [ id ] , targetDocsPluginId ) ;
457466 }
458467 } ) ;
459468
@@ -470,10 +479,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
470479 const pluginId = options . pluginId ;
471480 const pluginInstances = getPluginInstances ( plugins ) ;
472481 let targetConfig : any ;
482+ let targetDocsPluginId : any ;
473483 if ( pluginId ) {
474484 try {
475485 const pluginConfig = getPluginConfig ( plugins , pluginId ) ;
476486 targetConfig = pluginConfig . config ?? { } ;
487+ targetDocsPluginId = pluginConfig . docsPluginId ;
477488 } catch {
478489 console . error (
479490 chalk . red ( `OpenAPI docs plugin ID '${ pluginId } ' not found.` )
@@ -526,7 +537,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
526537 ...parentConfig ,
527538 ...versionConfig ,
528539 } ;
529- await generateApiDocs ( mergedConfig ) ;
540+ await generateApiDocs ( mergedConfig , targetDocsPluginId ) ;
530541 } ) ;
531542 }
532543 } else if ( ! versions [ versionId ] ) {
@@ -542,7 +553,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
542553 ...versionConfig ,
543554 } ;
544555 await generateVersions ( mergedVersions , parentConfig . outputDir ) ;
545- await generateApiDocs ( mergedConfig ) ;
556+ await generateApiDocs ( mergedConfig , targetDocsPluginId ) ;
546557 }
547558 } ) ;
548559
0 commit comments