diff --git a/src/Docfx.Dotnet/DotnetApiCatalog.Toc.cs b/src/Docfx.Dotnet/DotnetApiCatalog.Toc.cs index 43ed21d4edc..6b32d6be6a7 100644 --- a/src/Docfx.Dotnet/DotnetApiCatalog.Toc.cs +++ b/src/Docfx.Dotnet/DotnetApiCatalog.Toc.cs @@ -102,6 +102,8 @@ IEnumerable CreateNamespaceToc(INamespaceSymbol ns) }); } + var existingNodeHasNoLeafNode = idExists && !node.containsLeafNodes; + node.items ??= new(); node.symbols.Add((symbol, compilation)); @@ -120,9 +122,12 @@ IEnumerable CreateNamespaceToc(INamespaceSymbol ns) } node.containsLeafNodes = node.items.Any(i => i.containsLeafNodes); - if (!idExists && node.containsLeafNodes) + if (node.containsLeafNodes) { - yield return node; + if (!idExists || existingNodeHasNoLeafNode) + { + yield return node; + } } }