diff --git a/apps/api-documenter/src/documenters/YamlDocumenter.ts b/apps/api-documenter/src/documenters/YamlDocumenter.ts
index 137150ce4ad..6b5844f38bb 100644
--- a/apps/api-documenter/src/documenters/YamlDocumenter.ts
+++ b/apps/api-documenter/src/documenters/YamlDocumenter.ts
@@ -28,7 +28,6 @@ import {
ApiEnumMember,
ApiClass,
ApiInterface,
- ApiParameterListMixin,
ApiMethod,
ApiMethodSignature,
ApiConstructor,
@@ -551,36 +550,10 @@ export class YamlDocumenter {
/**
* Calculate the DocFX "uid" for the ApiItem
- * Example: node-core-library.JsonFile.load
+ * Example: `node-core-library!JsonFile#load`
*/
protected _getUid(apiItem: ApiItem): string {
- let result: string = '';
- for (const hierarchyItem of apiItem.getHierarchy()) {
-
- // For overloaded methods, add a suffix such as "MyClass.myMethod_2".
- let qualifiedName: string = hierarchyItem.displayName;
- if (ApiParameterListMixin.isBaseClassOf(hierarchyItem)) {
- if (hierarchyItem.overloadIndex > 1) {
- // Subtract one for compatibility with earlier releases of API Documenter.
- // (This will get revamped when we fix GitHub issue #1308)
- qualifiedName += `_${hierarchyItem.overloadIndex - 1}`;
- }
- }
-
- switch (hierarchyItem.kind) {
- case ApiItemKind.Model:
- case ApiItemKind.EntryPoint:
- break;
- case ApiItemKind.Package:
- result += PackageName.getUnscopedName(hierarchyItem.displayName);
- break;
- default:
- result += '.';
- result += qualifiedName;
- break;
- }
- }
- return result;
+ return apiItem.canonicalReference.toString();
}
/**
@@ -677,11 +650,46 @@ export class YamlDocumenter {
private _getYamlItemName(apiItem: ApiItem): string {
if (apiItem.parent && apiItem.parent.kind === ApiItemKind.Namespace) {
- // For members a namespace, show the full name excluding the package part:
- // Example: excel.Excel.Binding --> Excel.Binding
- return this._getUid(apiItem).replace(/^[^.]+\./, '');
+ // If the immediate parent is a namespace, then add the namespaces to the name. For example:
+ //
+ // // Name: "N1"
+ // export namespace N1 {
+ // // Name: "N1.N2"
+ // export namespace N2 {
+ // // Name: "N1.N2.f(x,y)"
+ // export function f(x: string, y: string): string {
+ // return x + y;
+ // }
+ //
+ //
+ // // Name: "N1.N2.C"
+ // export class C {
+ // // Name: "member(x,y)" <===========
+ // public member(x: string, y: string): string {
+ // return x + y;
+ // }
+ // }
+ // }
+ // }
+ //
+ // In the above example, "member(x, y)" does not appear as "N1.N2.C.member(x,y)" because YamlDocumenter
+ // embeds this entry in the web page for "N1.N2.C", so the container is obvious. Whereas "N1.N2.f(x,y)"
+ // needs to be qualified because the DocFX template doesn't make pages for namespaces. Instead, they get
+ // flattened into the package's page.
+ const nameParts: string[] = [ Utilities.getConciseSignature(apiItem) ];
+
+ for (let current: ApiItem | undefined = apiItem.parent; current; current = current.parent) {
+ if (current.kind !== ApiItemKind.Namespace) {
+ break;
+ }
+
+ nameParts.unshift(current.displayName);
+ }
+
+ return nameParts.join('.');
+ } else {
+ return Utilities.getConciseSignature(apiItem);
}
- return Utilities.getConciseSignature(apiItem);
}
private _getYamlFilePath(apiItem: ApiItem): string {
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml
index 288a11a8714..740dd7df021 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml
@@ -1,6 +1,6 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test
+ - uid: api-documenter-test!
summary: |-
api-extractor-test-05
@@ -11,20 +11,20 @@ items:
- typeScript
type: package
children:
- - api-documenter-test.DocBaseClass
- - api-documenter-test.DocClass1
- - api-documenter-test.DocEnum
- - api-documenter-test.Generic
- - api-documenter-test.globalFunction
- - api-documenter-test.IDocInterface1
- - api-documenter-test.IDocInterface2
- - api-documenter-test.IDocInterface3
- - api-documenter-test.IDocInterface4
- - api-documenter-test.IDocInterface5
- - api-documenter-test.IDocInterface6
- - api-documenter-test.OuterNamespace.InnerNamespace.nestedFunction
- - api-documenter-test.SystemEvent
- - uid: api-documenter-test.globalFunction
+ - 'api-documenter-test!DocBaseClass:class'
+ - 'api-documenter-test!DocClass1:class'
+ - 'api-documenter-test!DocEnum:enum'
+ - 'api-documenter-test!Generic:class'
+ - 'api-documenter-test!globalFunction:function(1)'
+ - 'api-documenter-test!IDocInterface1:interface'
+ - 'api-documenter-test!IDocInterface2:interface'
+ - 'api-documenter-test!IDocInterface3:interface'
+ - 'api-documenter-test!IDocInterface4:interface'
+ - 'api-documenter-test!IDocInterface5:interface'
+ - 'api-documenter-test!IDocInterface6:interface'
+ - 'api-documenter-test!OuterNamespace.InnerNamespace.nestedFunction:function(1)'
+ - 'api-documenter-test!SystemEvent:class'
+ - uid: 'api-documenter-test!globalFunction:function(1)'
summary: An exported function
name: globalFunction(x)
fullName: globalFunction(x)
@@ -42,10 +42,10 @@ items:
description: ''
type:
- number
- - uid: api-documenter-test.OuterNamespace.InnerNamespace.nestedFunction
+ - uid: 'api-documenter-test!OuterNamespace.InnerNamespace.nestedFunction:function(1)'
summary: A function inside a namespace
- name: OuterNamespace.InnerNamespace.nestedFunction
- fullName: OuterNamespace.InnerNamespace.nestedFunction
+ name: OuterNamespace.InnerNamespace.nestedFunction(x)
+ fullName: OuterNamespace.InnerNamespace.nestedFunction(x)
langs:
- typeScript
type: function
@@ -61,25 +61,25 @@ items:
type:
- number
references:
- - uid: api-documenter-test.DocBaseClass
+ - uid: 'api-documenter-test!DocBaseClass:class'
name: DocBaseClass
- - uid: api-documenter-test.DocClass1
+ - uid: 'api-documenter-test!DocClass1:class'
name: DocClass1
- - uid: api-documenter-test.DocEnum
+ - uid: 'api-documenter-test!DocEnum:enum'
name: DocEnum
- - uid: api-documenter-test.Generic
+ - uid: 'api-documenter-test!Generic:class'
name: Generic
- - uid: api-documenter-test.IDocInterface1
+ - uid: 'api-documenter-test!IDocInterface1:interface'
name: IDocInterface1
- - uid: api-documenter-test.IDocInterface2
+ - uid: 'api-documenter-test!IDocInterface2:interface'
name: IDocInterface2
- - uid: api-documenter-test.IDocInterface3
+ - uid: 'api-documenter-test!IDocInterface3:interface'
name: IDocInterface3
- - uid: api-documenter-test.IDocInterface4
+ - uid: 'api-documenter-test!IDocInterface4:interface'
name: IDocInterface4
- - uid: api-documenter-test.IDocInterface5
+ - uid: 'api-documenter-test!IDocInterface5:interface'
name: IDocInterface5
- - uid: api-documenter-test.IDocInterface6
+ - uid: 'api-documenter-test!IDocInterface6:interface'
name: IDocInterface6
- - uid: api-documenter-test.SystemEvent
+ - uid: 'api-documenter-test!SystemEvent:class'
name: SystemEvent
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docbaseclass.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docbaseclass.yml
index b2c0a2148db..719ce11403b 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docbaseclass.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docbaseclass.yml
@@ -1,17 +1,17 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.DocBaseClass
+ - uid: 'api-documenter-test!DocBaseClass:class'
summary: Example base class
name: DocBaseClass
fullName: DocBaseClass
langs:
- typeScript
type: class
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.DocBaseClass.(constructor)
- - api-documenter-test.DocBaseClass.(constructor)_1
- - uid: api-documenter-test.DocBaseClass.(constructor)
+ - 'api-documenter-test!DocBaseClass:constructor(1)'
+ - 'api-documenter-test!DocBaseClass:constructor(2)'
+ - uid: 'api-documenter-test!DocBaseClass:constructor(1)'
summary: The simple constructor for `DocBaseClass`
name: (constructor)()
fullName: (constructor)()
@@ -20,7 +20,7 @@ items:
type: constructor
syntax:
content: constructor();
- - uid: api-documenter-test.DocBaseClass.(constructor)_1
+ - uid: 'api-documenter-test!DocBaseClass:constructor(2)'
summary: The overloaded constructor for `DocBaseClass`
name: (constructor)(x)
fullName: (constructor)(x)
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
index 8883547a1f0..3c79ffd20bb 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docclass1.yml
@@ -1,6 +1,6 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.DocClass1
+ - uid: 'api-documenter-test!DocClass1:class'
summary: This is an example class.
remarks: >-
These are some remarks.
@@ -14,22 +14,22 @@ items:
- typeScript
type: class
extends:
- - api-documenter-test.DocBaseClass
+ - 'api-documenter-test!DocBaseClass:class'
implements:
- - api-documenter-test.IDocInterface1
- - api-documenter-test.IDocInterface2
- package: api-documenter-test
+ - 'api-documenter-test!IDocInterface1:interface'
+ - 'api-documenter-test!IDocInterface2:interface'
+ package: api-documenter-test!
children:
- - api-documenter-test.DocClass1.deprecatedExample
- - api-documenter-test.DocClass1.exampleFunction
- - api-documenter-test.DocClass1.exampleFunction_1
- - api-documenter-test.DocClass1.interestingEdgeCases
- - api-documenter-test.DocClass1.malformedEvent
- - api-documenter-test.DocClass1.modifiedEvent
- - api-documenter-test.DocClass1.regularProperty
- - api-documenter-test.DocClass1.sumWithExample
- - api-documenter-test.DocClass1.tableExample
- - uid: api-documenter-test.DocClass1.deprecatedExample
+ - 'api-documenter-test!DocClass1#deprecatedExample:member(1)'
+ - 'api-documenter-test!DocClass1#exampleFunction:member(1)'
+ - 'api-documenter-test!DocClass1#exampleFunction:member(2)'
+ - 'api-documenter-test!DocClass1#interestingEdgeCases:member(1)'
+ - 'api-documenter-test!DocClass1#malformedEvent:member'
+ - 'api-documenter-test!DocClass1#modifiedEvent:member'
+ - 'api-documenter-test!DocClass1#regularProperty:member'
+ - 'api-documenter-test!DocClass1.sumWithExample:member(1)'
+ - 'api-documenter-test!DocClass1#tableExample:member(1)'
+ - uid: 'api-documenter-test!DocClass1#deprecatedExample:member(1)'
deprecated:
content: Use `otherThing()` instead.
name: deprecatedExample()
@@ -43,7 +43,7 @@ items:
type:
- void
description: ''
- - uid: api-documenter-test.DocClass1.exampleFunction
+ - uid: 'api-documenter-test!DocClass1#exampleFunction:member(1)'
summary: This is an overloaded function.
name: 'exampleFunction(a, b)'
fullName: 'exampleFunction(a, b)'
@@ -65,7 +65,7 @@ items:
description: the second string
type:
- string
- - uid: api-documenter-test.DocClass1.exampleFunction_1
+ - uid: 'api-documenter-test!DocClass1#exampleFunction:member(2)'
summary: This is also an overloaded function.
name: exampleFunction(x)
fullName: exampleFunction(x)
@@ -83,7 +83,7 @@ items:
description: the number
type:
- number
- - uid: api-documenter-test.DocClass1.interestingEdgeCases
+ - uid: 'api-documenter-test!DocClass1#interestingEdgeCases:member(1)'
summary: |-
Example: "{ \\"maxItemsToShow\\": 123 }"
@@ -99,7 +99,7 @@ items:
type:
- void
description: ''
- - uid: api-documenter-test.DocClass1.malformedEvent
+ - uid: 'api-documenter-test!DocClass1#malformedEvent:member'
summary: This event should have been marked as readonly.
name: malformedEvent
fullName: malformedEvent
@@ -110,8 +110,8 @@ items:
content: 'malformedEvent: SystemEvent;'
return:
type:
- - api-documenter-test.SystemEvent
- - uid: api-documenter-test.DocClass1.modifiedEvent
+ - 'api-documenter-test!SystemEvent:class'
+ - uid: 'api-documenter-test!DocClass1#modifiedEvent:member'
summary: This event is fired whenever the object is modified.
name: modifiedEvent
fullName: modifiedEvent
@@ -122,8 +122,8 @@ items:
content: 'readonly modifiedEvent: SystemEvent;'
return:
type:
- - api-documenter-test.SystemEvent
- - uid: api-documenter-test.DocClass1.regularProperty
+ - 'api-documenter-test!SystemEvent:class'
+ - uid: 'api-documenter-test!DocClass1#regularProperty:member'
summary: This is a regular property that happens to use the SystemEvent type.
name: regularProperty
fullName: regularProperty
@@ -134,8 +134,8 @@ items:
content: 'regularProperty: SystemEvent;'
return:
type:
- - api-documenter-test.SystemEvent
- - uid: api-documenter-test.DocClass1.sumWithExample
+ - 'api-documenter-test!SystemEvent:class'
+ - uid: 'api-documenter-test!DocClass1.sumWithExample:member(1)'
summary: Returns the sum of two numbers.
remarks: This illustrates usage of the `@example` block tag.
name: 'sumWithExample(x, y)'
@@ -158,7 +158,7 @@ items:
description: the second number to add
type:
- number
- - uid: api-documenter-test.DocClass1.tableExample
+ - uid: 'api-documenter-test!DocClass1#tableExample:member(1)'
summary: 'An example with tables:'
remarks:
name: tableExample()
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docenum.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docenum.yml
index ee1c4c94c92..43b2aa123b1 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docenum.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/docenum.yml
@@ -1,18 +1,18 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.DocEnum
+ - uid: 'api-documenter-test!DocEnum:enum'
summary: Docs for DocEnum
name: DocEnum
fullName: DocEnum
langs:
- typeScript
type: enum
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.DocEnum.One
- - api-documenter-test.DocEnum.Two
- - api-documenter-test.DocEnum.Zero
- - uid: api-documenter-test.DocEnum.One
+ - 'api-documenter-test!DocEnum.One:member'
+ - 'api-documenter-test!DocEnum.Two:member'
+ - 'api-documenter-test!DocEnum.Zero:member'
+ - uid: 'api-documenter-test!DocEnum.One:member'
summary: These are some docs for One
name: One
fullName: One
@@ -20,7 +20,7 @@ items:
- typeScript
type: field
numericValue: '1'
- - uid: api-documenter-test.DocEnum.Two
+ - uid: 'api-documenter-test!DocEnum.Two:member'
summary: These are some docs for Two
name: Two
fullName: Two
@@ -28,7 +28,7 @@ items:
- typeScript
type: field
numericValue: '2'
- - uid: api-documenter-test.DocEnum.Zero
+ - uid: 'api-documenter-test!DocEnum.Zero:member'
summary: These are some docs for Zero
name: Zero
fullName: Zero
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/generic.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/generic.yml
index 7dfeda9e53c..ed71c77877b 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/generic.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/generic.yml
@@ -1,10 +1,10 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.Generic
+ - uid: 'api-documenter-test!Generic:class'
summary: Generic class.
name: Generic
fullName: Generic
langs:
- typeScript
type: class
- package: api-documenter-test
+ package: api-documenter-test!
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface1.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface1.yml
index 82894193b45..0c94b25019b 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface1.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface1.yml
@@ -1,15 +1,15 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface1
+ - uid: 'api-documenter-test!IDocInterface1:interface'
name: IDocInterface1
fullName: IDocInterface1
langs:
- typeScript
type: interface
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.IDocInterface1.regularProperty
- - uid: api-documenter-test.IDocInterface1.regularProperty
+ - 'api-documenter-test!IDocInterface1#regularProperty:member'
+ - uid: 'api-documenter-test!IDocInterface1#regularProperty:member'
summary: Does something
name: regularProperty
fullName: regularProperty
@@ -20,4 +20,4 @@ items:
content: 'regularProperty: SystemEvent;'
return:
type:
- - api-documenter-test.SystemEvent
+ - 'api-documenter-test!SystemEvent:class'
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface2.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface2.yml
index 59cd704aac7..71a94e3a4f3 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface2.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface2.yml
@@ -1,17 +1,17 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface2
+ - uid: 'api-documenter-test!IDocInterface2:interface'
name: IDocInterface2
fullName: IDocInterface2
langs:
- typeScript
type: interface
extends:
- - api-documenter-test.IDocInterface1
- package: api-documenter-test
+ - 'api-documenter-test!IDocInterface1:interface'
+ package: api-documenter-test!
children:
- - api-documenter-test.IDocInterface2.deprecatedExample
- - uid: api-documenter-test.IDocInterface2.deprecatedExample
+ - 'api-documenter-test!IDocInterface2#deprecatedExample:member(1)'
+ - uid: 'api-documenter-test!IDocInterface2#deprecatedExample:member(1)'
deprecated:
content: Use `otherThing()` instead.
name: deprecatedExample()
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface3.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface3.yml
index bb06bdee763..c9e9d0f7c82 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface3.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface3.yml
@@ -1,18 +1,18 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface3
+ - uid: 'api-documenter-test!IDocInterface3:interface'
summary: Some less common TypeScript declaration kinds.
name: IDocInterface3
fullName: IDocInterface3
langs:
- typeScript
type: interface
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - 'api-documenter-test.IDocInterface3."[not.a.symbol]"'
- - 'api-documenter-test.IDocInterface3.[EcmaSmbols.example]'
- - api-documenter-test.IDocInterface3.redundantQuotes
- - uid: 'api-documenter-test.IDocInterface3."[not.a.symbol]"'
+ - 'api-documenter-test!IDocInterface3#"[not.a.symbol]":member'
+ - 'api-documenter-test!IDocInterface3#[EcmaSmbols.example]:member'
+ - 'api-documenter-test!IDocInterface3#redundantQuotes:member'
+ - uid: 'api-documenter-test!IDocInterface3#"[not.a.symbol]":member'
summary: An identifier that does needs quotes. It misleadingly looks like an ECMAScript symbol.
name: '"[not.a.symbol]"'
fullName: '"[not.a.symbol]"'
@@ -24,7 +24,7 @@ items:
return:
type:
- string
- - uid: 'api-documenter-test.IDocInterface3.[EcmaSmbols.example]'
+ - uid: 'api-documenter-test!IDocInterface3#[EcmaSmbols.example]:member'
summary: ECMAScript symbol
name: '[EcmaSmbols.example]'
fullName: '[EcmaSmbols.example]'
@@ -36,7 +36,7 @@ items:
return:
type:
- string
- - uid: api-documenter-test.IDocInterface3.redundantQuotes
+ - uid: 'api-documenter-test!IDocInterface3#redundantQuotes:member'
summary: A quoted identifier with redundant quotes.
name: redundantQuotes
fullName: redundantQuotes
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface4.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface4.yml
index 51376ad10e2..8653fc1fb18 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface4.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface4.yml
@@ -1,19 +1,19 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface4
+ - uid: 'api-documenter-test!IDocInterface4:interface'
summary: Type union in an interface.
name: IDocInterface4
fullName: IDocInterface4
langs:
- typeScript
type: interface
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.IDocInterface4.Context
- - api-documenter-test.IDocInterface4.generic
- - api-documenter-test.IDocInterface4.numberOrFunction
- - api-documenter-test.IDocInterface4.stringOrNumber
- - uid: api-documenter-test.IDocInterface4.Context
+ - 'api-documenter-test!IDocInterface4#Context:member'
+ - 'api-documenter-test!IDocInterface4#generic:member'
+ - 'api-documenter-test!IDocInterface4#numberOrFunction:member'
+ - 'api-documenter-test!IDocInterface4#stringOrNumber:member'
+ - uid: 'api-documenter-test!IDocInterface4#Context:member'
summary: Test newline rendering when code blocks are used in tables
name: Context
fullName: Context
@@ -31,7 +31,7 @@ items:
({ children }: {
children: string;
}) => boolean
- - uid: api-documenter-test.IDocInterface4.generic
+ - uid: 'api-documenter-test!IDocInterface4#generic:member'
summary: make sure html entities are escaped in tables.
name: generic
fullName: generic
@@ -43,7 +43,7 @@ items:
return:
type:
- Generic
- - uid: api-documenter-test.IDocInterface4.numberOrFunction
+ - uid: 'api-documenter-test!IDocInterface4#numberOrFunction:member'
summary: a union type with a function
name: numberOrFunction
fullName: numberOrFunction
@@ -55,7 +55,7 @@ items:
return:
type:
- number | (() => number)
- - uid: api-documenter-test.IDocInterface4.stringOrNumber
+ - uid: 'api-documenter-test!IDocInterface4#stringOrNumber:member'
summary: a union type
name: stringOrNumber
fullName: stringOrNumber
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface5.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface5.yml
index d4f9e40f0ad..13babd39b21 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface5.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface5.yml
@@ -1,16 +1,16 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface5
+ - uid: 'api-documenter-test!IDocInterface5:interface'
summary: Interface without inline tag to test custom TOC
name: IDocInterface5
fullName: IDocInterface5
langs:
- typeScript
type: interface
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.IDocInterface5.regularProperty
- - uid: api-documenter-test.IDocInterface5.regularProperty
+ - 'api-documenter-test!IDocInterface5#regularProperty:member'
+ - uid: 'api-documenter-test!IDocInterface5#regularProperty:member'
summary: Property of type string that does something
name: regularProperty
fullName: regularProperty
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface6.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface6.yml
index 8f4ac95e1c0..46d02be19e5 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface6.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/idocinterface6.yml
@@ -1,16 +1,16 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.IDocInterface6
+ - uid: 'api-documenter-test!IDocInterface6:interface'
summary: Interface without inline tag to test custom TOC with injection
name: IDocInterface6
fullName: IDocInterface6
langs:
- typeScript
type: interface
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.IDocInterface6.regularProperty
- - uid: api-documenter-test.IDocInterface6.regularProperty
+ - 'api-documenter-test!IDocInterface6#regularProperty:member'
+ - uid: 'api-documenter-test!IDocInterface6#regularProperty:member'
summary: Property of type number that does something
name: regularProperty
fullName: regularProperty
diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/systemevent.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/systemevent.yml
index 7d20419769d..c44dad0913d 100644
--- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/systemevent.yml
+++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/systemevent.yml
@@ -1,16 +1,16 @@
### YamlMime:UniversalReference
items:
- - uid: api-documenter-test.SystemEvent
+ - uid: 'api-documenter-test!SystemEvent:class'
summary: A class used to exposed events.
name: SystemEvent
fullName: SystemEvent
langs:
- typeScript
type: class
- package: api-documenter-test
+ package: api-documenter-test!
children:
- - api-documenter-test.SystemEvent.addHandler
- - uid: api-documenter-test.SystemEvent.addHandler
+ - 'api-documenter-test!SystemEvent#addHandler:member(1)'
+ - uid: 'api-documenter-test!SystemEvent#addHandler:member(1)'
summary: Adds an handler for the event.
name: addHandler(handler)
fullName: addHandler(handler)
diff --git a/build-tests/api-documenter-test/etc/yaml/toc.yml b/build-tests/api-documenter-test/etc/yaml/toc.yml
index 98af9710fad..bd84a4770d0 100644
--- a/build-tests/api-documenter-test/etc/yaml/toc.yml
+++ b/build-tests/api-documenter-test/etc/yaml/toc.yml
@@ -10,38 +10,38 @@ items:
- name: DocBaseClass
items:
- name: DocBaseClass
- uid: api-documenter-test.DocBaseClass
+ uid: 'api-documenter-test!DocBaseClass:class'
- name: IDocInterface1
- uid: api-documenter-test.IDocInterface1
+ uid: 'api-documenter-test!IDocInterface1:interface'
- name: IDocInterface2
- uid: api-documenter-test.IDocInterface2
+ uid: 'api-documenter-test!IDocInterface2:interface'
- name: DocClass1
items:
- name: DocClass1
- uid: api-documenter-test.DocClass1
+ uid: 'api-documenter-test!DocClass1:class'
- name: IDocInterface3
- uid: api-documenter-test.IDocInterface3
+ uid: 'api-documenter-test!IDocInterface3:interface'
- name: IDocInterface4
- uid: api-documenter-test.IDocInterface4
+ uid: 'api-documenter-test!IDocInterface4:interface'
- name: Interfaces
items:
- name: Interface5
items:
- name: IDocInterface5
- uid: api-documenter-test.IDocInterface5
+ uid: 'api-documenter-test!IDocInterface5:interface'
- name: Interface6
items:
- name: InjectedCustomInterface
uid: customUid
- name: IDocInterface6
- uid: api-documenter-test.IDocInterface6
+ uid: 'api-documenter-test!IDocInterface6:interface'
- name: References
items:
- name: InjectedCustomItem
uid: customUrl
- name: DocEnum
- uid: api-documenter-test.DocEnum
+ uid: 'api-documenter-test!DocEnum:enum'
- name: Generic
- uid: api-documenter-test.Generic
+ uid: 'api-documenter-test!Generic:class'
- name: SystemEvent
- uid: api-documenter-test.SystemEvent
+ uid: 'api-documenter-test!SystemEvent:class'
diff --git a/common/changes/@microsoft/api-documenter/octogonz-ad-new-yaml-uids_2019-08-08-05-42.json b/common/changes/@microsoft/api-documenter/octogonz-ad-new-yaml-uids_2019-08-08-05-42.json
new file mode 100644
index 00000000000..dadc69c7b82
--- /dev/null
+++ b/common/changes/@microsoft/api-documenter/octogonz-ad-new-yaml-uids_2019-08-08-05-42.json
@@ -0,0 +1,11 @@
+{
+ "changes": [
+ {
+ "packageName": "@microsoft/api-documenter",
+ "comment": "Improve algorithm for UID generation to prevent certain naming collisions (e.g. between static/instance members with the same name)",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@microsoft/api-documenter",
+ "email": "4673363+octogonz@users.noreply.github.com"
+}
\ No newline at end of file