@@ -79,13 +79,20 @@ export default function pluginOpenAPIDocs(
79
79
const presets : any = siteConfig . presets ;
80
80
const plugins : any = siteConfig . plugins ;
81
81
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 ;
85
85
86
- async function generateApiDocs ( options : APIOptions ) {
86
+ async function generateApiDocs ( options : APIOptions , pluginId : any ) {
87
87
let { specPath, outputDir, template, sidebarOptions } = options ;
88
88
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
+
89
96
const contentPath = isURL ( specPath )
90
97
? specPath
91
98
: path . resolve ( siteDir , specPath ) ;
@@ -414,10 +421,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
414
421
const pluginId = options . pluginId ;
415
422
const pluginInstances = getPluginInstances ( plugins ) ;
416
423
let targetConfig : any ;
424
+ let targetDocsPluginId : any ;
417
425
if ( pluginId ) {
418
426
try {
419
427
const pluginConfig = getPluginConfig ( plugins , pluginId ) ;
420
428
targetConfig = pluginConfig . config ?? { } ;
429
+ targetDocsPluginId = pluginConfig . docsPluginId ;
421
430
} catch {
422
431
console . error (
423
432
chalk . red ( `OpenAPI docs plugin ID '${ pluginId } ' not found.` )
@@ -445,15 +454,15 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
445
454
) ;
446
455
} else {
447
456
Object . keys ( targetConfig ) . forEach ( async function ( key ) {
448
- await generateApiDocs ( targetConfig [ key ] ) ;
457
+ await generateApiDocs ( targetConfig [ key ] , targetDocsPluginId ) ;
449
458
} ) ;
450
459
}
451
460
} else if ( ! targetConfig [ id ] ) {
452
461
console . error (
453
462
chalk . red ( `ID '${ id } ' does not exist in OpenAPI docs config.` )
454
463
) ;
455
464
} else {
456
- await generateApiDocs ( targetConfig [ id ] ) ;
465
+ await generateApiDocs ( targetConfig [ id ] , targetDocsPluginId ) ;
457
466
}
458
467
} ) ;
459
468
@@ -470,10 +479,12 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
470
479
const pluginId = options . pluginId ;
471
480
const pluginInstances = getPluginInstances ( plugins ) ;
472
481
let targetConfig : any ;
482
+ let targetDocsPluginId : any ;
473
483
if ( pluginId ) {
474
484
try {
475
485
const pluginConfig = getPluginConfig ( plugins , pluginId ) ;
476
486
targetConfig = pluginConfig . config ?? { } ;
487
+ targetDocsPluginId = pluginConfig . docsPluginId ;
477
488
} catch {
478
489
console . error (
479
490
chalk . red ( `OpenAPI docs plugin ID '${ pluginId } ' not found.` )
@@ -526,7 +537,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
526
537
...parentConfig ,
527
538
...versionConfig ,
528
539
} ;
529
- await generateApiDocs ( mergedConfig ) ;
540
+ await generateApiDocs ( mergedConfig , targetDocsPluginId ) ;
530
541
} ) ;
531
542
}
532
543
} else if ( ! versions [ versionId ] ) {
@@ -542,7 +553,7 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
542
553
...versionConfig ,
543
554
} ;
544
555
await generateVersions ( mergedVersions , parentConfig . outputDir ) ;
545
- await generateApiDocs ( mergedConfig ) ;
556
+ await generateApiDocs ( mergedConfig , targetDocsPluginId ) ;
546
557
}
547
558
} ) ;
548
559
0 commit comments