private static string GetApiVersionLinks()

in src/TemplateRefGenerator/Generators/MarkdownGenerator.cs [92:128]


    private static string GetApiVersionLinks(GroupedTypes groupedTypes, ResourceMetadata resource, bool isLatestVersionPage)
    {
        var pathDepth = resource.UnqualifiedResourceType.Split('/').Length;
        if (isLatestVersionPage)
        {
            // The latest pages are one level higher than the other pages
            pathDepth--;
        }

        var pathPrefix = string.Concat(Enumerable.Repeat("../", pathDepth));

        var otherApiVersions = groupedTypes.ResourceTypeByApiVersion
            .Where(x => x.Value.Contains(resource.ResourceType, StringComparer.OrdinalIgnoreCase))
            .Where(x => !StringComparer.OrdinalIgnoreCase.Equals(resource.ApiVersion))
            .Select(x => x.Key)
            .OrderByDescending(x => x, ApiVersionComparer.Instance);
        
        var resourceTypePageName = resource.UnqualifiedResourceType.ToLowerInvariant();

        var sb = new StringBuilder();
        sb.Append($"""
> [!div class="op_single_selector" title1="API Versions:"]
> - [Latest]({pathPrefix}{resourceTypePageName}.md)

""");

        foreach (var otherApiVersion in otherApiVersions)
        {
            var apiVersionLower = otherApiVersion.ToLowerInvariant();
        sb.Append($"""
> - [{apiVersionLower}]({pathPrefix}{apiVersionLower}/{resourceTypePageName}.md)

""");
        }

        return sb.ToString();
    }