File: Model\Assistant\Markdown\ResourceInlineRenderer.cs
Web Access
Project: src\src\Aspire.Dashboard\Aspire.Dashboard.csproj (Aspire.Dashboard)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System.Text.Encodings.Web;
using Aspire.Dashboard.Otlp.Model;
using Aspire.Dashboard.Utils;
using Markdig.Renderers;
using Markdig.Renderers.Html;
 
namespace Aspire.Dashboard.Model.Assistant.Markdown;
 
public class ResourceInlineRenderer : HtmlObjectRenderer<ResourceInline>
{
    protected override void Write(HtmlRenderer renderer, ResourceInline inline)
    {
        var color = ColorGenerator.Instance.GetColorVariableByKey(inline.ResourceName);
        var encodedResourceName = HtmlEncoder.Default.Encode(inline.ResourceName);
        renderer.Write($@"<a href=""{DashboardUrls.ResourcesUrl(inline.Resource.Name)}"" class=""resource-name"" style=""border-left-color: {color};"">{encodedResourceName}</a>");
    }
}