@if (toc?.Count > 0) {

} @code { [Parameter, EditorRequired] public required string CurrentUri { get; set; } [Parameter, EditorRequired] public required string Content { get; set; } private IReadOnlyCollection? toc; protected override void OnParametersSet() { toc = MarkdownConverter.GenerateToc(Content); } private string GetAnchorUrl(string anchor) { if (CurrentUri.Contains('#')) { var parts = CurrentUri.Split('#'); return $"{parts[0]}#{anchor}"; } return $"{CurrentUri}#{anchor}"; } private RenderFragment TocLink(TocItem item) => builder => { var topDistance = item.Level <= 2 ? item.Level : 0; builder.OpenElement(0, "a"); builder.AddAttribute(1, "href", GetAnchorUrl(item.Id)); builder.AddAttribute(2, "class", $"anchor nav-link ps-{item.Level} pt-{topDistance}"); builder.AddContent(3, item.Text); builder.CloseElement(); }; }