levineuwirth.org/templates
Levi Neuwirth 9f61ce5949 Tooling, manifest, and content polish
- import-photo.sh deletes the copied JPEG when EXIF stripping fails, so
  the auto-commit can never publish GPS/serial metadata (AUDIT §4.11)
- pre-commit-marks hook: tab-aware path parsing, probes the staged blob
  rather than the working tree (§4.11)
- preset-signing-passphrase uses printf; stamp-build-time writes via
  temp + os.replace; archive.py passes -- to pdftotext and verifies the
  vendored monolith binary against its recorded sha256 (mismatch is
  fatal, consistent with the tool's integrity contract); extract-exif
  ./-prefixes relative paths (§4.11)
- blog-post.html: id="similar-links"/"backlinks" each appear once;
  rendered output unchanged (§6.4)
- site.webmanifest: start_url/scope/description added, maskable icon
  purpose restored alongside any (§9.3)
- Frontmatter cleanup: scaffold comments out of scaling_outage,
  dangling null confidence-history keys removed (populated ones kept),
  dead modified: key dropped from colophon (§6.4)
- canto31.jpg: 4.0 MB -> 1.9 MB (2400px, q80, grayscale — the source
  is a monochrome Doré engraving, so single-channel is colorimetrically
  lossless); webp sidecar regenerated (§6.4, prior-audit §6.1)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 11:13:34 -04:00
..
partials Branding diet: logo sprite via <use>, lean favicon.ico, simple mask icon 2026-06-10 10:43:06 -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 Tooling, manifest, and content polish 2026-06-10 11:13:34 -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 Add now.js: recompute "Last updated" relative phrase client-side 2026-05-23 12:06:49 -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 Fix audit frontend MEDs 2026-06-10 09:21:47 -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