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
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
baseURL = "https://roux.pivoine.art/"
|
||||
languageCode = "en"
|
||||
locale = "en"
|
||||
title = "Roux"
|
||||
enableRobotsTXT = true
|
||||
enableGitInfo = false
|
||||
[pagination]
|
||||
pagerSize = 10
|
||||
pagerSize = 8
|
||||
|
||||
[taxonomies]
|
||||
category = "categories"
|
||||
@@ -21,11 +21,11 @@ term = ["HTML"]
|
||||
[params]
|
||||
description = "Roux is a slow-publishing fashion journal — one hundred photographs at a time. Editorial, couture, beauty and backstage plates."
|
||||
author = "Roux Editorial"
|
||||
issueIds = ["01"]
|
||||
issueNumber = "01"
|
||||
issueName = "Devotion"
|
||||
issueSeason = "Spring MMXXVI"
|
||||
issueBlurb = "One hundred plates devoted to a single presence — photographed across worlds, light, and time."
|
||||
issueIds = ["02", "01"]
|
||||
issueNumber = "02"
|
||||
issueName = "Obsession"
|
||||
issueSeason = "Autumn MMXXVI"
|
||||
issueBlurb = "One hundred plates in thrall to a single body — a bared shoulder, a parted mouth, silk slipping loose."
|
||||
siteURL = "https://roux.pivoine.art"
|
||||
umamiSrc = "https://umami.pivoine.art/script.js"
|
||||
umamiId = "df675ca7-f82a-463b-89aa-f67c1f56ed68"
|
||||
@@ -34,7 +34,26 @@ umamiId = "df675ca7-f82a-463b-89aa-f67c1f56ed68"
|
||||
unsafe = true
|
||||
|
||||
[build]
|
||||
writeStats = true
|
||||
[build.buildStats]
|
||||
enable = true
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/notwatching/hugo_stats\.json'
|
||||
target = 'css'
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/css/main\.css'
|
||||
target = 'css'
|
||||
|
||||
[module]
|
||||
[[module.mounts]]
|
||||
source = 'assets'
|
||||
target = 'assets'
|
||||
[[module.mounts]]
|
||||
source = 'hugo_stats.json'
|
||||
target = 'assets/notwatching/hugo_stats.json'
|
||||
disableWatch = true
|
||||
|
||||
[security.exec]
|
||||
allow = ['^(dart-)?sass$', '^go$', '^git$', '^node$', '^npx$', '^postcss$', '^tailwindcss$']
|
||||
|
||||
[imaging]
|
||||
quality = 85
|
||||
|
||||
Reference in New Issue
Block a user