@@ -382,11 +382,15 @@ export class DefaultTheme extends Theme {
382
382
* @returns The altered urls array.
383
383
*/
384
384
static buildUrls ( reflection : DeclarationReflection , urls : UrlMapping [ ] ) : UrlMapping [ ] {
385
- const mapping = DefaultTheme . getMapping ( reflection ) ;
385
+ let urlReflection = reflection ;
386
+ while ( urlReflection . importedFrom ) {
387
+ urlReflection = urlReflection . importedFrom ;
388
+ }
389
+ const mapping = DefaultTheme . getMapping ( urlReflection ) ;
386
390
if ( mapping ) {
387
391
if ( ! reflection . url || ! DefaultTheme . URL_PREFIX . test ( reflection . url ) ) {
388
- const url = [ mapping . directory , DefaultTheme . getUrl ( reflection ) + '.html' ] . join ( '/' ) ;
389
- urls . push ( new UrlMapping ( url , reflection , mapping . template ) ) ;
392
+ const url = [ mapping . directory , DefaultTheme . getUrl ( urlReflection ) + '.html' ] . join ( '/' ) ;
393
+ urls . push ( new UrlMapping ( url , urlReflection , mapping . template ) ) ;
390
394
391
395
reflection . url = url ;
392
396
reflection . hasOwnDocument = true ;
@@ -395,13 +399,13 @@ export class DefaultTheme extends Theme {
395
399
for ( let key in reflection . children ) {
396
400
const child = reflection . children [ key ] ;
397
401
if ( mapping . isLeaf ) {
398
- DefaultTheme . applyAnchorUrl ( child , reflection ) ;
402
+ DefaultTheme . applyAnchorUrl ( child , urlReflection ) ;
399
403
} else {
400
404
DefaultTheme . buildUrls ( child , urls ) ;
401
405
}
402
406
}
403
407
} else {
404
- DefaultTheme . applyAnchorUrl ( reflection , reflection . parent ) ;
408
+ DefaultTheme . applyAnchorUrl ( reflection , urlReflection . parent ) ;
405
409
}
406
410
407
411
return urls ;
@@ -415,14 +419,18 @@ export class DefaultTheme extends Theme {
415
419
*/
416
420
static applyAnchorUrl ( reflection : Reflection , container : Reflection ) {
417
421
if ( ! reflection . url || ! DefaultTheme . URL_PREFIX . test ( reflection . url ) ) {
418
- let anchor = DefaultTheme . getUrl ( reflection , container , '.' ) ;
419
- if ( reflection [ 'isStatic' ] ) {
422
+ let urlReflection = reflection ;
423
+ while ( urlReflection instanceof DeclarationReflection && urlReflection . importedFrom ) {
424
+ urlReflection = urlReflection . importedFrom ;
425
+ }
426
+ let anchor = DefaultTheme . getUrl ( urlReflection , container , '.' ) ;
427
+ if ( urlReflection [ 'isStatic' ] ) {
420
428
anchor = 'static-' + anchor ;
421
429
}
422
430
423
431
reflection . url = container . url + '#' + anchor ;
424
432
reflection . anchor = anchor ;
425
- reflection . hasOwnDocument = false ;
433
+ reflection . hasOwnDocument = reflection !== urlReflection ;
426
434
}
427
435
428
436
reflection . traverse ( ( child ) => {
0 commit comments