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();
}