feat(nav): complete Tier 1 hierarchical navigation

Add config option [nav] nested (defaults false), update base.html
template with nested nav rendering, and add .nav-children CSS styling
for indented section children.

- Add NavConfig struct with nested: bool
- Template renders item.children in .nav-children div
- CSS: left border + indent for nested items
This commit is contained in:
Timothy DeHerrera
2026-02-01 09:04:15 -07:00
parent b3a540651a
commit 7f765b32e1
5 changed files with 41 additions and 2 deletions

View File

@@ -7,3 +7,6 @@ content = "content"
output = "public"
static = "static"
templates = "templates"
[nav]
nested = true

13
docs/static/style.css vendored
View File

@@ -94,6 +94,19 @@ body {
color: var(--bg);
}
.sidebar .nav-children {
margin-left: 1rem;
padding-left: 0.5rem;
border-left: 1px solid var(--border);
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.sidebar .nav-children a {
font-size: 0.9rem;
}
.sidebar-footer {
margin-top: auto;
padding-top: 1rem;

View File

@@ -34,8 +34,17 @@
</label>
</header>
<nav>
{% for item in nav %}<a href="{{ prefix }}{{ item.path }}" {% if page_path==item.path %} class="active" {% endif
%}>{{ item.label }}</a>{% endfor %}
{% for item in nav %}
<a href="{{ prefix }}{{ item.path }}" {% if page_path==item.path %}class="active" {% endif %}>{{ item.label }}</a>
{% if config.nested_nav and item.children %}
<div class="nav-children">
{% for child in item.children %}
<a href="{{ prefix }}{{ child.path }}" {% if page_path==child.path %}class="active" {% endif %}>{{ child.label
}}</a>
{% endfor %}
</div>
{% endif %}
{% endfor %}
</nav>
<footer class="sidebar-footer">
<a href="https://github.com/nrdxp/sukr">GitHub</a>