Photography Gallery Setup
Structure
The gallery automatically displays all GIFs from /static/photography/fullsize/ (symlinked from your nimslo directory).
- All photos are displayed in the gallery by default
- Only photos with content pages are clickable - they link to their detail pages
- Photos without content pages are still visible but not linked
Each photography entry is a markdown file in this directory that corresponds to a GIF.
Front Matter Fields
---
title: "photo title"
description: "short description (shown in gallery hover)"
date: 2025-01-15
draft: false
thumbnail: "/photography/thumbnails/photo-thumb.jpg" # local thumbnail path
image: "/photography/fullsize/20.gif" # local symlink path OR external url
caption: "optional caption" # shown below full-size image
location: "optional location" # shown in sidebar
camera: "optional camera info" # shown in sidebar
---
Workflow
Full-size GIFs: All wigglegram GIFs are symlinked from
/Users/ian/WINTERMUTE/8_media/85_photography/wigglegrams/into/static/photography/fullsize/. Reference them like:/photography/fullsize/20.gif/photography/fullsize/21.gif/photography/fullsize/22.gif
Create thumbnails: Generate smaller thumbnails (recommended: 400-600px width) and place them in
/static/photography/thumbnails/Create entry: Create a new
.mdfile in this directory with the front matter aboveProduction note: For production, you might want to host the full-size GIFs externally (CDN, S3, etc.) to avoid serving 40-80MB files directly. For local dev, the symlinks work great.
Example
---
title: "sunset over city"
description: "16mm film, kodak vision3"
date: 2025-01-15
thumbnail: "/photography/thumbnails/sunset-thumb.jpg"
image: "https://cdn.spillyourguts.online/photography/sunset-full.gif"
caption: "shot on 16mm, kodak vision3 500t"
location: "brooklyn, ny"
camera: "bolex h16"
---
Updating the Gallery
When you add new GIFs to your nimslo directory, regenerate the data file:
./scripts/update-photography-gifs.sh
Or manually:
find static/photography/fullsize -name "*.gif" -type l | \
sed 's|static/photography/fullsize|/photography/fullsize|' | \
sort | \
jq -R -s 'split("\n") | map(select(length > 0))' > data/photography_gifs.json
Notes
- All GIFs are displayed in the gallery automatically
- Only GIFs with corresponding markdown files are clickable/linked
- Thumbnails are lazy-loaded for performance
- Full-size GIFs only load when viewing individual photos
- Gallery uses a masonry brick-layered three-column layout
- Navigation between photos is available on single photo pages