feat: normalize config context and template API

Add FeedConfig and SitemapConfig structs to config.rs
with enabled: bool (default true) for opt-out control.

Refactor ConfigContext: flat nested_nav bool replaced
with nested nav: NavContext { nested, toc } to mirror
site.toml [nav] table structure.

Remove standalone base_url template variable; use
config.base_url as single source of truth with
trailing-slash trimming in ConfigContext::from().

Add section template fallback: try section/<type>.html,
fall back to section/default.html for unknown types.

Delete section/features.html (duplicate of default.html)
and homepage.html (dead code, never referenced).

Update base.html for new variable names.
This commit is contained in:
Timothy DeHerrera
2026-02-14 07:09:05 -07:00
parent 46c00c7729
commit 45448cc443
6 changed files with 72 additions and 43 deletions

View File

@@ -7,7 +7,7 @@
{% if page.description %}
<meta name="description" content="{{ page.description }}" />{% endif %}
<title>{{ title }} | {{ config.title }}</title>
<link rel="canonical" href="{{ base_url }}{{ page_path }}" />
<link rel="canonical" href="{{ config.base_url }}{{ page_path }}" />
<link rel="stylesheet" href="{{ prefix }}/style.css" />
<link rel="icon" type="image/png" href="{{ prefix }}/logo.png" />
</head>
@@ -39,7 +39,7 @@
{% endfor %}
</div>
{% endif %}
{% if config.nested_nav and item.children %}
{% if config.nav.nested and item.children %}
<div class="nav-children{% if is_current_section %} expanded{% endif %}">
{% for child in item.children %}
<a href="{{ prefix }}{{ child.path }}" {% if page_path==child.path %}class="active" {% endif %}>{{ child.label