feat(images): responsive <Image>, gated private images + prose
Build-time image optimization plus auth-gated private content. - <Image> (src/lib/components/Image.svelte): wraps @sveltejs/enhanced-img for public images under src/lib/assets/images/ (AVIF/WebP, multiple widths, lazy by default), plus a `private` mode for auth-gated images. - Private images: scripts/build-private-images.ts encodes sources from src/lib/assets/private-images/ into private-assets/ (outside the bundle) and a manifest; served only via the auth-checked /private-images/ endpoint (X-Accel-Redirect in prod, disk read in dev). - HikeImage gains a `src` prose mode: build-hikes encodes non-waypoint images referenced in .svx and exposes them by filename (imagesByName); a `private` attr routes them through the gated /hikes/<slug>/private/ path. - <Private> (src/lib/components/Private.svelte): renders prose only to logged-in viewers (cosmetic gating — text still ships in the bundle). - deploy.sh rsyncs private-assets/; prod needs an nginx internal /protected-images/ location.
This commit is contained in:
@@ -159,7 +159,9 @@
|
||||
setHikeContext(() => ({
|
||||
images: hike.imagePoints,
|
||||
visibleImages: visibleImagePoints,
|
||||
track
|
||||
track,
|
||||
imagesByName: hike.imagesByName ?? {},
|
||||
showPrivate
|
||||
}));
|
||||
|
||||
// Continuous trail-position tracking. As the reader scrolls through the
|
||||
|
||||
Reference in New Issue
Block a user