Skip to content

[Bug] Namespace links created for non-existing parent namespaces #10588

@robtimus

Description

@robtimus

Describe the bug
For types, the generated pages contain a Namespace value. This consists of several links. However, this does not respect the project's RootNamespace anymore since version 2.65.2. Instead it creates a link for each namespace part, including non-existing parent namespaces. For instance, if my root namespace is Foo.Bar.Baz, the namespace contains the following links:

  • Foo -> Foo.html
  • Bar -> Foo.Bar.html
  • Baz -> Foo.Bar.Baz.html

The problem is that Foo.html and Foo.Bar.html don't exist, leading to 404 errors.

Maybe I'm missing some configuration, but I tried several options including globalNamespaceId but the issue is not fixed. Downgrading to version 2.65.1 isn't possible because of #9047 and #9153.

To Reproduce
Minimal docfx.json:

{
  "metadata": [
    {
      "src": [
        {
          "files": [
            "**.csproj"
          ],
          "src": "../Foo.Bar.Baz"
        }
      ],
      "dest": "api"
    }
  ],
  "build": {
    "content": [
      {
        "files": [
          "api/**.yml"
        ]
      },
      {
        "files": [
          "toc.yml"
        ]
      }
    ],
    "dest": "_site"
  }
}

The Foo.Bar.Baz project descriptor contains this:

<RootNamespace>Foo.Bar.Baz</RootNamespace>

Run docfx docfx.json from the directory where docfx.json is located.
This successfully generates the API pages but with the invalid links.

Expected behavior

  • Foo is not a link
  • Bar is not a link
  • Baz is a link to Foo.Bar.Baz.html

Screenshots
Generated using version 2.65.1:
Image

Generated using the latest version:
Image

Context (please complete the following information):

  • Docfx version: 2.78.3
  • Template: default

Metadata

Metadata

Assignees

No one assigned

    Labels

    templateThe stock site template

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions