Two Tier-3 features in one release:
1. Image-variant pipeline. New scripts/generate-image-variants.js
reads site/assets/img/_source/** and emits {name}-{width}.{format}
variants into site/assets/img/. Default matrix: 6 widths x 3
formats (avif, webp, jpg). Configurable via site.imageVariants in
site.json. mtime-based skipping so re-runs only regenerate
changed sources. Powered by sharp.
This finally feeds useResponsiveImage (which has been wired into
bundled components like Hero/Intro/About for ages but had no
build-side variant production). Sites must move existing flat
img/*.{jpg,png} into _source/ and add the script to amplify.yml
preBuild — see CHANGELOG migration notes.
2. Auto-generated BreadcrumbList JSON-LD. usePageMeta now derives
breadcrumbs from the URL path and emits the schema after any
author-supplied jsonld blocks. Drives Google's breadcrumb display
in search results. Skips home/draft/404/missing-site-url; per-page
opt-out via meta.breadcrumbs:false. Label resolution: matching
page's meta.title first, slug-formatted segment fallback.
New helpers:
- scripts/generate-image-variants.js + bin/cms-generate-image-variants.js
- src/utils/breadcrumbs.js (buildBreadcrumbList)
Tests: 557 passing (18 new for image-variants, 17 for breadcrumbs, 8
added to usePageMeta).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>