From 584da4a4e0fec8873b3168ec5b0002a1bbc1c392 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Tue, 11 Aug 2026 14:28:56 -0500 Subject: Render the table of contents, and group /blog/ by year MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two of the differences the page-by-page diff against the live site turned up. The TOC was the larger one: live has one on 171 pages and the org-ssg build had none. `[html] toc = true` only *exposes* `page.toc` — rendering it is the layout's job, and base.html never did. It now emits the same `div#table-of-contents` Emacs does, from a recursive macro over the tree. The anchors already matched, so every link lands where the live one does. Pages that say `#+OPTIONS: toc:nil` get an empty tree and render nothing, which is why /uses/, /now/ and /salary/ have no TOC here either — the same three as live. /blog/ now breaks its list under year headings, as the live index does, using `page.year` and minijinja's groupby. `group_by_year` at the top of blog.html turns it off for one flat list. After both, /blog/ matches the live page's content exactly, and 171 of 171 TOCs are accounted for. --- content/templates/blog.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'content/templates/blog.html') diff --git a/content/templates/blog.html b/content/templates/blog.html index ad6720a..17f8870 100644 --- a/content/templates/blog.html +++ b/content/templates/blog.html @@ -1,16 +1,34 @@ {# The blog index at /blog/, mirroring theme/templates/blog.html. Separate from list.html because the live page carries its own prose. #} {% extends "base.html" %} + +{#- Group the list under year headings, as the live site does. Set to false for one flat + list; styles.css has .post-list-year either way. `page.year` comes from #+DATE:, and + a post without one lands in its own group at the end rather than being dropped. #} +{%- set group_by_year = true %} + {% block main %}

{{ page.title }}

Use ⌘ F / Ctrl F to search · RSS Feed

Want to browse by topic instead? Head over to the tags page.

{% endblock %} -- cgit v1.2.3