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

@@ -102,15 +102,15 @@ Items validated by codebase investigation:
- [x] Change `tags` from `taxonomies.tags` nesting to flat `tags = ["..."]` (direct TOML array)
- [x] Migrate all 17 content files from YAML (`---`) to TOML (`+++`) frontmatter
- [x] Update embedded frontmatter examples in documentation pages (7 files)
- [ ] Add `FeedConfig` and `SitemapConfig` structs to `config.rs` with `enabled: bool` (default `true`)
- [ ] Wire feed/sitemap config into `SiteConfig` deserialization
- [x] Add `FeedConfig` and `SitemapConfig` structs to `config.rs` with `enabled: bool` (default `true`)
- [x] Wire feed/sitemap config into `SiteConfig` deserialization
- [ ] Gate feed generation in `main.rs` on `config.feed.enabled`
- [ ] Gate sitemap generation in `main.rs` on `config.sitemap.enabled`
- [ ] Refactor `ConfigContext`: flat `nested_nav: bool` → nested `nav: NavContext { nested, toc }`
- [ ] Remove duplicate `base_url` top-level template variable injection
- [ ] Update `docs/templates/base.html`: `config.nested_nav``config.nav.nested`, `base_url``config.base_url`
- [ ] Delete `docs/templates/section/features.html` and `docs/templates/homepage.html`
- [ ] Add template section fallback in `render_section`: try `section/<type>.html`, fall back to `section/default.html`
- [x] Refactor `ConfigContext`: flat `nested_nav: bool` → nested `nav: NavContext { nested, toc }`
- [x] Remove duplicate `base_url` top-level template variable injection
- [x] Update `docs/templates/base.html`: `config.nested_nav``config.nav.nested`, `base_url``config.base_url`
- [x] Delete `docs/templates/section/features.html` and `docs/templates/homepage.html`
- [x] Add template section fallback in `render_section`: try `section/<type>.html`, fall back to `section/default.html`
- [x] Update/fix all existing tests to use TOML frontmatter
- [ ] Add new tests: TOML parsing, date validation (valid + invalid), feed/sitemap config gating
- [ ] Verify all 69 existing tests pass (updated for TOML)