feat: separate settings and gallery config, add impressum page

This commit is contained in:
ralksta
2026-03-07 08:34:05 +01:00
parent 1e079760d8
commit 0fed8e6c78
6 changed files with 307 additions and 124 deletions

View File

@@ -1,72 +1,24 @@
# ── Gallery Configuration ──────────────────────────────────────
# Define which Immich albums to publish and how to organize them.
#
# Find album UUIDs in Immich: Albums → click album → UUID in the URL bar.
# Find asset UUIDs: click a photo → UUID in the URL bar.
# ── Gallery Structure ──────────────────────────────────────────────
# This file defines WHICH albums and subpages are shown.
# Global settings (theme, map, legal, title) now live in content/settings.yaml.
# Hero image(s) shown on the homepage (Immich asset UUIDs).
# Use a single UUID for a static image, or a list for a crossfade carousel.
hero: 00000000-0000-0000-0000-000000000000
# hero:
# - 00000000-0000-0000-0000-000000000000
# - 11111111-1111-1111-1111-111111111111
# - 22222222-2222-2222-2222-222222222222
# Hero images for the homepage carousel (Immich asset UUIDs)
hero:
- "your-asset-uuid-1"
- "your-asset-uuid-2"
# Standalone albums — shown directly on the homepage as cards
# Use a string for the UUID, or a map for an inline name override.
# Standalone albums (shown on the home page)
albums:
- 11111111-1111-1111-1111-111111111111: "Meine Favoriten" # inline override
- 22222222-2222-2222-2222-222222222222
- "your-album-uuid-1"
- "your-album-uuid-2"
# Show camera/lens EXIF on photo hover (default: true)
# exifOnHover: false
# Enable the /map page — plots photos on a world map by city/country (default: false)
# map: true
# Photo grid layout — customize columns, gap, aspect ratio, and mode.
# grid:
# columns: 3 # default: 3
# gap: 12 # pixels, default: 12
# aspectRatio: "1" # "1", "3/2", "auto", etc. default: "1"
# layout: masonry # "masonry" or "uniform", default: "masonry"
# Subpages — group albums into collections at /subpage-slug/album-slug.
# You can use a simple map for concise definitions, or a full object for passwords/grids.
# Subpages: group albums under custom URL paths
subpages:
Japan: # Simple map format
- 33333333-3333-3333-3333-333333333333: "Tokyo Nights"
- 44444444-4444-4444-4444-444444444444
Wedding: # Advanced object format (needed for passwords/grid overrides)
password: clientpass123
"Travel":
- "album-uuid-3"
- "album-uuid-4"
"Projects":
password: "your-password" # Optional protection
albums:
- 55555555-5555-5555-5555-555555555555: "The Big Day"
# Footer — optional minimal footer with social links
# footer:
# name: John Doe
# instagram: johndoe
# email: hello@example.com
# website: https://example.com
# ── Theme ─────────────────────────────────────────────────────
# Control the visual identity of your gallery. Use a preset name:
# theme: studio # Leica-inspired, red dot, passepartout frames, film grain
# theme: minimal # Swiss brutalist, fullbleed hero, true B&W, zero-gap grid
# theme: editorial # Cinematic magazine, warm charcoal, Bodoni serif, shadow frames
# theme: classic # Gilded gallery, gold accents, Cinzel headings, passepartout
#
# Or customize individual properties (defaults from the preset):
# theme:
# preset: studio # base preset to extend
# accent: "#2563eb" # brand/accent color
# fonts:
# heading: "Inter" # Google Fonts name for headings
# body: "Inter" # body text
# caption: "JetBrains Mono" # EXIF captions
# radius: 8 # border-radius in pixels (0 = sharp)
# photoFrame: none # "none" | "passepartout" | "shadow"
# grain: false # film grain overlay on photos
# headerDot: false # accent dot in the nav bar
# heroStyle: split # "split" | "fullbleed" | "minimal"
- "album-uuid-5"
- "album-uuid-6"

View File

@@ -0,0 +1,52 @@
# ── Global Site Settings ──────────────────────────────────────────
# This file controls the visual identity, global behavior, and legal info.
# Structure is separated from gallery.yaml (album IDs) for clarity.
# Public site title and subtitle (overrides .env if set)
title: "My Portfolio"
subtitle: "A visual journal"
# Show EXIF metadata (camera, lens, ISO) on photo grid hover
exifOnHover: true
# Enable the interactive world map view (/map)
map: true
# Enable smooth page transitions between routes
transitions: true
# ── Theme configuration ──────────────────────────────────────────
# Presets: studio, minimal, editorial, classic, noir, monograph, botanica
theme:
preset: "studio"
# accent: "#e60012"
# photoFrame: "passepartout" # none, passepartout, shadow
# grain: true
# ── Grid configuration ───────────────────────────────────────────
grid:
columns: 3
gap: 12
aspectRatio: "1" # "1" (square), "3/2", "2/3", "16/9", "auto"
layout: "masonry" # masonry, uniform, showcase, filmstrip, editorial-flow
# ── Footer & Social ──────────────────────────────────────────────
footer:
name: "My Photography"
instagram: "https://instagram.com/your-handle"
email: "hello@example.com"
website: "https://example.com"
# ── Legal / Impressum (German Law compliance) ────────────────────
# If enabled: true, a link to /impressum will appear in the footer.
legal:
enabled: false
name: "Your Full Name"
address: "Street and House Number"
zipCity: "ZIP Code and City"
country: "Germany"
email: "legal@example.com"
phone: "+49 123 456789"
# taxId: "DE123456789"
# vatId: "12/345/67890"
extraInfo: "Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV: Max Mustermann"