Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions