feat!: replace YAML frontmatter with TOML

Replace hand-rolled YAML parser (70 lines) with serde-backed
toml::from_str<Frontmatter> (6 lines). Frontmatter delimiter
changes from --- to +++ (Hugo TOML convention).

New Frontmatter fields:
- draft: bool (#[serde(default)]) for draft filtering
- aliases: Vec<String> (#[serde(default)]) for URL redirects

Date field upgraded from Option<String> to Option<NaiveDate>
with custom deserializer for TOML native dates. Parse, don't
validate: invalid dates now fail at deserialization time.

Add chrono dependency with serde feature. Update cascade in
sitemap.rs (NaiveDate→String at boundary), template_engine.rs
(FrontmatterContext gains draft/aliases), and all 14 tests.

BREAKING CHANGE: Content files must use +++ TOML frontmatter
instead of --- YAML frontmatter.
This commit is contained in:
Timothy DeHerrera
2026-02-14 06:50:35 -07:00
parent 021ffb6a78
commit 16fed12273
6 changed files with 91 additions and 107 deletions

2
Cargo.lock generated
View File

@@ -200,6 +200,7 @@ checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
dependencies = [
"iana-time-zone",
"num-traits",
"serde",
"windows-link",
]
@@ -1558,6 +1559,7 @@ dependencies = [
name = "sukr"
version = "0.1.0"
dependencies = [
"chrono",
"katex-rs",
"lightningcss",
"mermaid-rs-renderer",