7 Commits
Author SHA1 Message Date
valknarandClaude Sonnet 5 2dc7a0063f Add issue No. 02 "Obsession" + reusable image pipeline
Content
- 100 new plates under content/posts/02/ — one recurring red-haired model
  across 10 editorial registers (Haute Couture, Film Noir, Boudoir,
  Avant-Garde, Minimalism, Baroque, Street Style, Surrealism, Monochrome,
  Nocturne), generated with flux-1.1-pro, face-swapped to a consistent
  identity (FaceFusion), and upscaled (Upscayl + Remacri, 3328x4992).
- content/issues/02/_index.md; issue 01 -> status archived; hugo.toml params
  (issueIds newest-first, issueNumber/Name/Season/Blurb).

Structure
- Plate bundles grouped by issue: content/posts/<issue>/<slug>/, with
  build.render:never stubs so /posts/<issue>/ isn't emitted. nginx 301s the
  legacy flat /posts/<slug>/ URLs to /posts/01/<slug>/. The /posts/ archive
  uses .RegularPagesRecursive.

Image pipeline (scripts/, data/ gitignored)
- generate-images.py  — Replicate flux-1.1-pro, 960x1440, idempotent.
- faceswap-images.py  — FaceFusion batch-run, one consistent face.
- upscale-images.py   — Upscayl + remacri-4x, long edge clamped to 4992.
- build-issue.py      — prompts JSON -> content/posts/<issue>/*/index.md.

Build
- CSS now compiled by Hugo's css.TailwindCSS (partials/css.html +
  templates.Defer); dropped the standalone Tailwind CLI step, concurrently,
  and the gitignored static/css/main.css. Requires Hugo >= 0.161; Dockerfile
  collapsed to a single hugomods/hugo:debian-node build stage.
  pnpm-workspace.yaml: preferSymlinkedExecutables + allowBuilds.

Front end
- Pagination 8 per page.
- Lightbox: brand mark and category link out; robust SPA back/forward
  (fetch before startViewTransition, single-flight guard, swallow the
  transition abort rejection, popstate re-renders / reopens the viewer).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DZPmxGywFnAhmYJB1eh9fm
2026-08-29 21:11:24 +02:00
valknarandClaude Sonnet 4.6 c766bba028 Homepage: show 5 featured plates, brand CTA button
Mark five posts (Gothic, Cyberpunk, Dark Fantasy, Urban, Sci-Fi) as
featured: true. Homepage grid now filters by that flag instead of
showing first 8. CTA button changed from plain black to brand russet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 18:44:49 +02:00
valknarandClaude Sonnet 4.6 32a46a5a48 Redesign homepage as current-issue landing page
Replace full plate grid with issue identity hero (title, season,
description, logo), 8-plate preview, and CTA strip linking to the
full issue. All data is derived from the issues/01 taxonomy term page
so the page stays in sync when the issue changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 18:24:54 +02:00
valknarandClaude Sonnet 4.6 54a87dc4ed Refactor: replace all BEM CSS with Tailwind utility classes
Remove all BEM component classes (hero__*, card__*, issue-card__*, foot__*,
masthead__*, searchpop__*, lb__*) from CSS and templates. Replace with
Tailwind v4 utility classes inline in HTML. Create card.html partial to
avoid repeating verbose utility strings across grid templates. Rename
lightbox CSS to flat lb-* and search popup to sp-*.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 18:06:55 +02:00
valknarandClaude Sonnet 4.6 b77fec34de Add issue number to card overlay (bottom-left)
Each card frame now shows № 01 at the bottom-left alongside the
existing plate number (top-left) and category (top-right).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 17:35:38 +02:00
valknarandClaude Sonnet 4.6 76f87d5009 One category per post, display in grid without tag
Import script now takes only the first CSV category per post.
All card grid templates simplified to show just that single
category in card__sub — no tag alongside it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 17:22:20 +02:00
valknarandClaude Sonnet 4.6 f537f32295 Initial Roux Hugo site — fashion journal for roux.pivoine.art
100-post fashion journal generated from ~/projects/ginger content:
- Hugo Extended static site with TailwindCSS v4
- WebP image pipeline (thumb/card/og/full sizes via Hugo image processing)
- Full SEO: sitemap (501 URLs), OpenGraph with per-post images, Twitter cards
- Async page transitions via View Transitions API
- Deep-linked URLs: /posts/[slug]/, /categories/[cat]/, /tags/[tag]/, /issues/
- Lightbox with keyboard/swipe nav, thumbnail strip, inverted search index
- Issues archive with quarterly release structure
- Multi-stage Dockerfile (Tailwind → Hugo → nginx:alpine)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 16:27:47 +02:00