docfx icon indicating copy to clipboard operation
docfx copied to clipboard

[Feature Request] dotnet API link to a specific version?

Open bohyunjung opened this issue 1 year ago • 2 comments

Is your feature request related to a problem? Please describe.

I build markdown files (#10039) out of the Unity Package projects (#9719) and need the dotnet APIs to be linked to a specific version. (In my case that's netframework-4.8.1.)

That is

  • I currently get the links like this:
    • [object](https://learn.microsoft.com/dotnet/api/system.object)
  • But I need the links with the specified version:
    • [object](https://learn.microsoft.com/dotnet/api/system.object&view=netframework-4.8.1)

However I could not find the way to achieve this; so I wrote a post-processing logic which finds a pattern match, then replaces strings.

Describe the solution you'd like

I would love to have an option that specifies the version of the dotnet API version, which is simply gonna be a query parameter added to the generated URL (view=netframework-4.8.1)

  • original link: https://learn.microsoft.com/dotnet/api/system.object
  • from the config: dotnetAPIVersion: 'netframework-4.8.1'
  • computed link: https://learn.microsoft.com/dotnet/api/system.object?view=netframework-4.8.1

OR making it possible to format the dotnet API URL string, in the manner of xref template rendering should be nice as well.

  • original link: https://learn.microsoft.com/dotnet/api/system.object
  • from the config: dotnetAPILinkTemplate: '{}?view=netframework-4.8.1'
  • computed link: https://learn.microsoft.com/dotnet/api/system.object?view=netframework-4.8.1

Additional context

Here's the docfx.json I use.

docfx.json
{
    "metadata": [
        {
            "src": [
                {
                    "src": "..",
                    "files": [
                        "**/*.cs"
                    ]
                }
            ],
            "dest": "api",
            "globalNamespaceId": "Global",
            "allowCompilationErrors": true,
            "namespaceLayout": "flattened",
            "outputFormat": "markdown",
            "filter": "filterConfig.yml"
        }
    ]
}

bohyunjung avatar Jun 26 '24 05:06 bohyunjung

We might be able to auto detect target version based on info in csproj or DLL.

yufeih avatar Jul 01 '24 02:07 yufeih

@yufeih That's a great idea. Specifying the version while leaving it auto-detected by default may still be handy.

bohyunjung avatar Jul 01 '24 05:07 bohyunjung