@@ -75,7 +75,6 @@ export class YamlDocumenter {
7575
7676 private _apiItemsByCanonicalReference : Map < string , ApiItem > ;
7777 private _yamlReferences : IYamlReferences | undefined ;
78-
7978 private _outputFolder : string ;
8079
8180 public constructor ( apiModel : ApiModel ) {
@@ -232,25 +231,18 @@ export class YamlDocumenter {
232231 if ( apiItem . kind === ApiItemKind . Namespace ) {
233232 // Namespaces don't have nodes yet
234233 tocItem = {
235- name : apiItem . displayName
234+ name : this . _getTocItemName ( apiItem )
236235 } ;
237236 } else {
238237 if ( this . _shouldEmbed ( apiItem . kind ) ) {
239238 // Don't generate table of contents items for embedded definitions
240239 continue ;
241240 }
242241
243- if ( apiItem . kind === ApiItemKind . Package ) {
244- tocItem = {
245- name : PackageName . getUnscopedName ( apiItem . displayName ) ,
246- uid : this . _getUid ( apiItem )
247- } ;
248- } else {
249- tocItem = {
250- name : apiItem . displayName ,
251- uid : this . _getUid ( apiItem )
252- } ;
253- }
242+ tocItem = {
243+ name : this . _getTocItemName ( apiItem ) ,
244+ uid : this . _getUid ( apiItem )
245+ } ;
254246 }
255247
256248 tocItems . push ( tocItem ) ;
@@ -271,6 +263,20 @@ export class YamlDocumenter {
271263 return tocItems ;
272264 }
273265
266+ /** @virtual */
267+ protected _getTocItemName ( apiItem : ApiItem ) : string {
268+ let name : string = apiItem . displayName ;
269+ if ( apiItem . kind === ApiItemKind . Package ) {
270+ name = PackageName . getUnscopedName ( name ) ;
271+ }
272+
273+ if ( apiItem . getMergedSiblings ( ) . length > 1 ) {
274+ name += ` (${ apiItem . kind } )` ;
275+ }
276+
277+ return name ;
278+ }
279+
274280 protected _shouldEmbed ( apiItemKind : ApiItemKind ) : boolean {
275281 switch ( apiItemKind ) {
276282 case ApiItemKind . Class :
@@ -591,7 +597,6 @@ export class YamlDocumenter {
591597 */
592598 private _initApiItems ( ) : void {
593599 this . _initApiItemsRecursive ( this . _apiModel ) ;
594-
595600 }
596601
597602 /**
@@ -803,11 +808,17 @@ export class YamlDocumenter {
803808 break ;
804809 }
805810 }
806- return path . join ( this . _outputFolder , result + '.yml' ) ;
811+
812+ let disambiguator : string = '' ;
813+ if ( apiItem . getMergedSiblings ( ) . length > 1 ) {
814+ disambiguator = `-${ apiItem . kind . toLowerCase ( ) } ` ;
815+ }
816+
817+ return path . join ( this . _outputFolder , result + disambiguator + '.yml' ) ;
807818 }
808819
809820 private _deleteOldOutputFiles ( ) : void {
810821 console . log ( 'Deleting old output from ' + this . _outputFolder ) ;
811822 FileSystem . ensureEmptyFolder ( this . _outputFolder ) ;
812823 }
813- }
824+ }
0 commit comments