feat: add 404 page and tag listing generation

Detect content/_404.md as special page (underscore
prefix convention), store in SiteManifest.page_404,
render to 404.html in output root.

Add collect_tags() grouping all tagged content into
BTreeMap for deterministic output. render_tag_page()
renders through tags/default.html template.

Add 5 tests. Test suite: 78 → 83, all passing.
This commit is contained in:
Timothy DeHerrera
2026-02-14 16:03:30 -07:00
parent 53463b3d8b
commit e7809e1ce2
6 changed files with 307 additions and 13 deletions

15
docs/templates/tags/default.html vendored Normal file
View File

@@ -0,0 +1,15 @@
{% extends "base.html" %} {% block content %}
<article class="section-index">
<h1>Tagged: {{ tag }}</h1>
<nav class="section-nav">
{% for item in items %}
<a href="{{ prefix }}{{ item.path }}" class="section-link">
<strong>{{ item.frontmatter.title }}</strong>
{% if item.frontmatter.description %}
<span>{{ item.frontmatter.description }}</span>
{% endif %}
</a>
{% endfor %}
</nav>
</article>
{% endblock content %}