This commit is contained in:
2026-06-10 21:46:16 -04:00
parent 6bf1b87207
commit 654ce3e9b0
4 changed files with 47 additions and 39 deletions
+1
View File
@@ -2,6 +2,7 @@
<div class="page"> <div class="page">
<div class="sidebar"> <div class="sidebar">
<NavMenu/> <NavMenu/>
</div> </div>
<main> <main>
+25 -4
View File
@@ -1,4 +1,6 @@
<div class="top-row ps-3 navbar navbar-dark"> @inject Web.Services.DocsService DocsService
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="">Web</a> <a class="navbar-brand" href="">Web</a>
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu"> <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
@@ -24,16 +26,30 @@
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
</NavLink> </NavLink>
</div> </div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="docs"> <div class="nav-item px-3 nav-section-header">Documentation</div>
<span class="bi bi-file-text-nav-menu" aria-hidden="true"></span> Docs
@if (notes == null)
{
<div class="nav-item px-3"><span class="nav-link text-secondary">Loading...</span></div>
}
else
{
@foreach (var note in notes)
{
<div class="nav-item px-3 nav-item-doc">
<NavLink class="nav-link" href="@($"docs/{note.Slug}")">
@note.Title
</NavLink> </NavLink>
</div> </div>
}
}
</nav> </nav>
</div> </div>
@code { @code {
private bool collapseNavMenu = true; private bool collapseNavMenu = true;
private List<Web.Models.NoteInfo>? notes;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
@@ -42,4 +58,9 @@
collapseNavMenu = !collapseNavMenu; collapseNavMenu = !collapseNavMenu;
} }
protected override async Task OnInitializedAsync()
{
var index = await DocsService.GetIndexAsync();
notes = index.Notes.OrderBy(n => n.Title).ToList();
}
} }
+17
View File
@@ -65,6 +65,23 @@
color: white; color: white;
} }
.nav-item-doc ::deep a {
padding-left: 1.5rem !important;
font-size: 0.8rem;
height: 2rem !important;
line-height: 2rem !important;
}
.nav-section-header {
font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: rgba(255,255,255,0.5);
padding-top: 1rem;
padding-bottom: 0.25rem;
}
@media (min-width: 641px) { @media (min-width: 641px) {
.navbar-toggler { .navbar-toggler {
display: none; display: none;
+1 -32
View File
@@ -1,38 +1,7 @@
@page "/docs" @page "/docs"
@inject Web.Services.DocsService DocsService
<PageTitle>Docs</PageTitle> <PageTitle>Docs</PageTitle>
<h1>Documentation</h1> <h1>Documentation</h1>
@if (notes == null) <p>Select a note from the sidebar to view its contents.</p>
{
<p>Loading...</p>
}
else
{
<div class="docs-grid">
@foreach (var note in notes.OrderBy(n => n.Title))
{
<a href="/docs/@note.Slug" class="docs-card">
<h3>
@note.Title
@if (!string.IsNullOrEmpty(note.Category))
{
<span class="category-badge">@note.Category</span>
}
</h3>
</a>
}
</div>
}
@code {
private List<Web.Models.NoteInfo>? notes;
protected override async Task OnInitializedAsync()
{
var index = await DocsService.GetIndexAsync();
notes = index.Notes;
}
}