feat: filter draft content from all output

Add draft filtering at discovery source functions:
collect_items(), discover_nav(), discover_pages().
Posts, feed, and sitemap inherit filtering
automatically via collect_items().

Items with frontmatter draft = true are excluded
from section listings, navigation, feed, and
sitemap. Default is false — no behavior change
for existing content.

Add 3 tests. Test suite: 73 → 76, all passing.
This commit is contained in:
Timothy DeHerrera
2026-02-14 07:20:47 -07:00
parent 0c9ecbfad6
commit 7e692aacb4
2 changed files with 83 additions and 19 deletions

View File

@@ -116,13 +116,13 @@ Items validated by codebase investigation:
- [x] Verify all 69 existing tests pass (updated for TOML)
2. **Phase 2: Draft & Alias Features** — implement filtering and redirect generation
- [ ] Filter items where `draft == true` from `collect_items()` results
- [ ] Filter drafts from `SiteManifest.posts` during discovery
- [ ] Filter drafts from nav discovery (`discover_nav()`)
- [ ] Filter drafts from sitemap entries
- [ ] Filter drafts from feed entries
- [x] Filter items where `draft == true` from `collect_items()` results
- [x] Filter drafts from `SiteManifest.posts` during discovery
- [x] Filter drafts from nav discovery (`discover_nav()`)
- [x] Filter drafts from sitemap entries
- [x] Filter drafts from feed entries
- [ ] Generate HTML redirect stubs for each alias path (`<meta http-equiv="refresh">`)
- [ ] Add tests: draft filtering (excluded from listing, nav, feed, sitemap)
- [x] Add tests: draft filtering (excluded from listing, nav, feed, sitemap)
- [ ] Add tests: alias redirect generation (valid HTML, correct target URL)
3. **Phase 3: 404 & Tag Pages** — new content generation features