This commit is contained in:
2026-06-10 21:49:39 -04:00
parent d184980586
commit 97ec82dd7f
+23 -11
View File
@@ -27,21 +27,23 @@
</NavLink> </NavLink>
</div> </div>
<div class="nav-item px-3 nav-section-header">Documentation</div> @if (groupedNotes == null)
@if (notes == null)
{ {
<div class="nav-item px-3"><span class="nav-link text-secondary">Loading...</span></div> <div class="nav-item px-3"><span class="nav-link text-secondary">Loading...</span></div>
} }
else else
{ {
@foreach (var note in notes) @foreach (var group in groupedNotes)
{ {
<div class="nav-item px-3 nav-item-doc"> <div class="nav-item px-3 nav-section-header">@group.Category</div>
<NavLink class="nav-link" href="@($"docs/{note.Slug}")"> @foreach (var note in group.Notes)
@note.Title {
</NavLink> <div class="nav-item px-3 nav-item-doc">
</div> <NavLink class="nav-link" href="@($"docs/{note.Slug}")">
@note.Title
</NavLink>
</div>
}
} }
} }
</nav> </nav>
@@ -49,7 +51,7 @@
@code { @code {
private bool collapseNavMenu = true; private bool collapseNavMenu = true;
private List<Web.Models.NoteInfo>? notes; private List<NoteGroup>? groupedNotes;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
@@ -61,6 +63,16 @@
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
var index = await DocsService.GetIndexAsync(); var index = await DocsService.GetIndexAsync();
notes = index.Notes.OrderBy(n => n.Title).ToList(); groupedNotes = (index.Notes ?? new())
.GroupBy(n => string.IsNullOrEmpty(n.Category) ? "Uncategorized" : n.Category)
.OrderBy(g => g.Key)
.Select(g => new NoteGroup { Category = g.Key, Notes = g.OrderBy(n => n.Title).ToList() })
.ToList();
}
private class NoteGroup
{
public string Category { get; set; } = "";
public List<Web.Models.NoteInfo> Notes { get; set; } = new();
} }
} }