hugo server/build was failing with "binary postcss is not a Node.js
script" — pnpm's default node_modules/.bin shims are shell wrappers, not
plain Node scripts, which Hugo's exec-security check rejects. Switches
head.html from css.PostCSS to css.TailwindCSS, drops the now-unused
PostCSS toolchain, and adds pnpm-workspace.yaml's
preferSymlinkedExecutables so pnpm emits real symlinks Hugo can exec
(same fix already in use on roux).
Also updates the Dockerfile's build stage to hugomods/hugo:debian-node,
which bundles the matching Hugo Extended + Node versions, keeping ffmpeg
for the video-compression step.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012E2mmywuZyXmPBgSDtNdTL
- nav: fix label-content-name-mismatch — aria-label now uses logoText
("PIVOINE") to match the visible link text (WCAG 2.5.3)
- index: improve link-text — "Learn more" → "About the magazine"
so the /about/ CTA has a descriptive accessible name
- head: load Google Fonts async via media=print/onload pattern to
eliminate render-blocking resource penalty (~480ms est. savings)
Remaining items needing server-side action:
- is-crawlable: x-robots-tag: none,... header must be removed in the
web server / CDN config (not controllable from this repo)
- image-delivery: large banner PNGs on live site need manual WebP
conversion or migration to Hugo page bundles for auto-processing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>