levineuwirth.org/templates
Levi Neuwirth fad8719045 Stamp the site-wide build time post-render
Hakyll caches per-page outputs, so pages whose dependencies have not
changed are not recompiled and the rendered $build-time$ in their
footer goes stale relative to a fresh build. The right granularity for
"last built at" is site-wide rather than per-page; wrapping the footer
timestamp in <span data-build-time> and rewriting it after Hakyll lets
every page reflect the current build without paying recompilation cost.

* tools/stamp-build-time.py walks _site/**/*.html after Hakyll runs and
  rewrites each element wrapped in [data-build-time] to the same format
  Contexts.hs:buildTimeField emits, so a fresh render and the post-pass
  agree.
* templates/partials/footer.html wraps $build-time$ in
  <span class="footer-build-time" data-build-time>...</span> so the
  sweep has a stable selector.
* Makefile invokes the sweep between embed.py and compress-assets so
  the .gz/.br sidecars include the fresh stamp.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 12:05:28 -04:00
..
partials Stamp the site-wide build time post-render 2026-05-23 12:05:28 -04:00
archive-index.html Add link archive system: snapshots, backlinks, link-rot 2026-05-23 10:06:33 -04:00
archive.html Add link archive system: snapshots, backlinks, link-rot 2026-05-23 10:06:33 -04:00
author-index.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
bibliography-index.html Navigation refactor 2026-04-19 14:35:41 -04:00
bibliography-keyword.html Navigation refactor 2026-04-19 14:35:41 -04:00
blog-index.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
blog-post.html Marks II: broader monogram coverage + audit-marks tool 2026-05-23 12:05:08 -04:00
commonplace.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
composition.html visual enhancements 2026-04-15 22:25:38 -04:00
current.html Current rework 2026-04-26 19:42:47 -04:00
default.html more prominent related pages 2026-05-03 14:01:14 -04:00
essay-index.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
essay.html Marks II: broader monogram coverage + audit-marks tool 2026-05-23 12:05:08 -04:00
home.html Navigation refactor 2026-04-19 14:35:41 -04:00
library.html Spec dilemma 2026-05-01 21:22:01 -04:00
music-catalog.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
new.html Navigation refactor 2026-04-19 14:35:41 -04:00
page.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
photography-by-year-index.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography-by-year.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography-contact-sheet.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography-index.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography-map.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography-series.html Spec dilemma 2026-05-01 21:22:01 -04:00
photography.html Spec dilemma 2026-05-01 21:22:01 -04:00
reading.html Marks II: broader monogram coverage + audit-marks tool 2026-05-23 12:05:08 -04:00
score-reader-default.html initial deploy! whoop 2026-03-17 21:56:14 -04:00
score-reader.html yum cappuccino yay! 2026-05-03 21:16:58 -04:00
sitemap.xml Add robots.txt and sitemap.xml; tidy essay-route prefix-strip 2026-05-07 15:08:33 -04:00
tag-index.html Navigation refactor 2026-04-19 14:35:41 -04:00