Releases: TheDataAreClean/photos
Releases · TheDataAreClean/photos
Release list
v2.2.0
- feat: Atom feed entries restructured for scanability —
<hr>separators between description, capture date, camera/lens, and tags sections; 📆/📷/🏷️ icons on each section; tags now also rendered as visible#tagtext (previously only<category>XML elements) - chore: one-time script (
scripts/strip-title-periods.js) to strip trailing periods from older auto-generated sidecar titles, matching the v2.0.0 title-generation change (text before first period, not first word)
v2.1.0 — Glass categories as tags
- feat: Glass
categoriesare now pulled intophoto.tagsautomatically, surfacing as<category>entries in the Atom feed - feat: sidecar
tags:field — auto-backfilled from Glass categories for existing photos and pre-filled for new ones; once present, the sidecar value is authoritative (same override pattern asdescription/overrideExif) and future Glass category changes won't overwrite it
v2.0.0 — Series & folders
- feat: series support —
series/*.mdfiles define a series (title, description, cover photo); photo sidecars tagged withseries:+seriesOrder:fields - feat: series folder card in the masonry grid — manila folder aesthetic with peeking photo prints; collapses all photos from a series into one card
- feat: series overlay — full-screen viewer (like lightbox) with thumbnail strip, prev/next, counter; opens from folder card; photo click opens existing lightbox
- fix: Glass ID generation — use text before first period as slug snippet so numbered series like "Gate #12." get unique IDs instead of colliding on "Gate"
- Gate series: 15 photos (#1, #5–#18) tagged as first series
- a11y: series page/overlay — fixed breadcrumb and title contrast, added missing
:focus-visiblestyles across series cards, badges, and overlay controls (incl. keyboard-accessible thumbnail strip) - fix: all
:hoverrules now wrapped in@media (hover: hover)(lightbox, stack, desk, photo-page, view-toggle, series) - refactor: copy-link logic deduplicated into
GalleryCore.copyLink(), withexecCommandclipboard fallback for non-secure contexts - perf:
will-changehints on lightbox FLIP/zoom and stack-view transitions - perf: faster local photo processing — single sharp pipeline reused for metadata + thumb + display via
.clone() - perf: watermark resize result cached per target size instead of recomputed for every photo
- chore: OG image generator now reads title/subtitle/attribution/cache dir from
config.jsinstead of hardcoded duplicates - chore: stale Glass image/hidden-post cache entries pruned automatically each build
- a11y: photo page primary image gets
decoding="async" fetchpriority="high"
v1.4.0 — Atom feed
- feat: Atom feed at
/feed.xml— 15 most recent photos, watermarked images, full description, EXIF line, "Captured [date]" - feat: feed
<updated>tracks sidecar file mtime — editing a description re-surfaces the entry in readers - infra:
sidecarUpdatedAtfield on photo objects viafs.stat()inglass.jsandlocal.js - infra: explicit Glass sync step in CI before build; new sidecars auto-committed back to
main - docs: commit tagging policy — content/sync commits never get a version tag
v1.3.0 — Monthly OG images & favicon
- feat: monthly OG image generation (
build/og-image.js) — 6 layout templates, deterministic monthly seed,@napi-rs/canvas - feat: stacked-prints favicon — variant 4 fixed design, pre-rendered to
src/images/, copied at build time - fix: OG image text missing in CI — install
fonts-open-sans fonts-liberationvia apt; Schoolbell + IBM Plex downloaded with GitHub release URL (primary) + Google Fonts fallback
v1.2.0 — View toggle & swipe
- design: FAB view toggle refined — bare icon buttons, no labels, no background
- fix: swipe gesture reliability
- fix: attribution placement (header + masonry footer)
- design: casino icon for shuffle button
v1.1.0 — Stack view & shuffle
- feat: stack view — one photo at a time, WAAPI exit/enter transitions (~350ms), swipe, keyboard ← →
- feat: stack chunk proximity trigger — fetches next chunk when within 5 photos of loaded count
- feat: shuffle mode — Fisher-Yates, localStorage persistence,
location.reload()on toggle - feat: three-button FAB view toggle (grid / stack / shuffle),
aria-pressed, localStorage state - design: design system cleanup — CSS token consolidation
v1.0.0 — Initial release
First public release of the Memories photography gallery. Eleventy static site with masonry grid, lightbox, per-photo pages, Glass API integration, and GitHub Pages deploy workflow.