This commit is contained in:
lucashahmann committed 2026-10-19 21:01:31 +02:00
1 parent e5869dc6cb
commit a4a261f871
47 files changed
+1131 -161

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
{{ define "main" }}
<section class="wrap wrap--narrow notfound">
<h1 class="display display--xl">Abgesoffen</h1>
<p>Diese Seite gibt es nicht (mehr). Vielleicht hat sich der Link vertippt.</p>
<a class="button button--bolt" href="/">Zur Startseite</a>
</section>
{{ end }}
+26
View File
@@ -0,0 +1,26 @@
{{ define "main" }}
<header class="page-head wrap">
<h1 class="display display--xl">{{ .Title }}</h1>
{{ with .Content }}<div class="page-head__lead">{{ . }}</div>{{ end }}
</header>
<section class="wrap" aria-label="Bandmitglieder">
<ul class="members">
{{ range .Params.members }}
<li class="member">
<div class="member__photo">
{{ partial "img.html" (dict "src" .image "alt" (printf "%s live auf der Bühne" .name) "sizes" "(min-width: 900px) 25vw, 50vw" "widths" (slice 400 800)) }}
</div>
<h2 class="member__name">{{ .name }}</h2>
<p class="member__role">{{ .role }}</p>
</li>
{{ end }}
</ul>
</section>
{{ with .Params.groupImage }}
<figure class="group-photo">
{{ partial "img.html" (dict "src" . "alt" "Gruppenfoto von Deepwater Survival im Backstage-Flur" "sizes" "100vw" "widths" (slice 800 1400 2000)) }}
</figure>
{{ end }}
{{ end }}
+33 -15
View File
@@ -1,19 +1,37 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>{{ .Title }} | Deepwater Survival</title>
<link rel="stylesheet" href="/css/style.css">
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap" rel="stylesheet">
</head>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ $title := cond .IsHome (printf "%s – Punkrock aus Trier" site.Title) (printf "%s | %s" .Title site.Title) -}}
{{ $desc := .Params.description | default site.Params.description -}}
<title>{{ $title }}</title>
<meta name="description" content="{{ $desc }}">
<meta name="theme-color" content="#081226">
<link rel="canonical" href="{{ .Permalink }}">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<body>
{{ partial "header.html" . }}
<main>
{{ block "main" . }}{{ end }}
<div class="spacer"></div>
</main>
{{ partial "footer.html" . }}
</body>
<meta property="og:type" content="website">
<meta property="og:title" content="{{ $title }}">
<meta property="og:description" content="{{ $desc }}">
<meta property="og:url" content="{{ .Permalink }}">
<meta property="og:locale" content="de_DE">
{{ with resources.Get "img/AlbumReleaseParty_Stage_compressed.jpg" }}{{ with .Resize "1200x jpg q80" }}
<meta property="og:image" content="{{ .Permalink }}">{{ end }}{{ end }}
</html>
<link rel="preload" href="/fonts/big-shoulders-display-latin-900-normal.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/archivo-latin-400-normal.woff2" as="font" type="font/woff2" crossorigin>
{{ $css := resources.Get "css/main.css" | minify | fingerprint }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}" integrity="{{ $css.Data.Integrity }}">
</head>
<body class="{{ if .IsHome }}is-home{{ end }}">
<a class="skip-link" href="#inhalt">Zum Inhalt springen</a>
{{ partial "header.html" . }}
<main id="inhalt">
{{ block "main" . }}{{ end }}
</main>
{{ partial "footer.html" . }}
{{ $js := resources.Get "js/site.js" | minify | fingerprint }}
<script src="{{ $js.RelPermalink }}" defer></script>
</body>
</html>
+9 -6
View File
@@ -1,8 +1,11 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
<ul>
{{ range .Pages }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
<article class="wrap wrap--narrow">
<header class="page-head page-head--compact">
<h1 class="display display--l">{{ .Title }}</h1>
</header>
{{ with .Content }}<div class="prose">{{ . }}</div>{{ end }}
<ul class="plain-list">
{{ range .Pages }}<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>{{ end }}
</ul>
</article>
{{ end }}
</ul>
{{ end }}
+8 -4
View File
@@ -1,6 +1,10 @@
{{ define "main" }}
<article>
<h1>{{ .Title }}</h1>
{{ .Content }}
<article class="wrap wrap--narrow">
<header class="page-head page-head--compact">
<h1 class="display display--l">{{ .Title }}</h1>
</header>
<div class="prose prose--legal">
{{ .Content }}
</div>
</article>
{{ end }}
{{ end }}
+52 -23
View File
@@ -1,27 +1,56 @@
{{ define "main" }}
<section>
<link rel="stylesheet" href="/css/index.css">
<div id="main_image">
<img src="/img/AlbumReleaseParty_Stage_compressed.jpg" alt="" width="1000" height="667">
{{ $shows := where site.RegularPages "Section" "shows" }}
{{ $upcoming := (where $shows "Date" "ge" now).ByDate }}
{{ $past := first 3 (where $shows "Date" "lt" now).ByDate.Reverse }}
<section class="hero">
<div class="hero__media">
{{ partial "img.html" (dict "src" "/img/AlbumReleaseParty_Stage_compressed.jpg" "alt" "Deepwater Survival live bei der Album-Release-Party, Publikum vor der blau beleuchteten Bühne" "sizes" "100vw" "widths" (slice 800 1400 2000) "eager" true) }}
</div>
<section style="padding: 2rem; max-width: 800px; margin: auto; line-height: 1.6; ">
<h1 style="font-size: 2rem; margin-bottom: 1rem; text-align: center;">Deepwater Survival – Frischer Wind aus der deutschen Punk-Szene</h1>
<p>Mit energiegeladenem Punkrock, ehrlichen Texten und unverblümter Direktheit meldet sich <strong>Deepwater Survival</strong> zurück. Die Band aus Trier besticht durch einen Sound, der roh, mitreißend und ehrlich ist – und schafft es damit, sowohl alteingesessene Punkfans als auch neue Hörer:innen zu begeistern.</p>
<p>Bevor das Debütalbum <strong>„Ocean Tales“</strong> 2025 erschien, veröffentlichte die Band bereits eine Reihe kraftvoller Singles: <em>„Chirus“ (2023), „Let It Go“ (2024) sowie „Addiction“ und „My Own Home“</em>. Diese Songs, die fast unverändert auf dem Album zu finden sind, geben einen klaren Einblick in die musikalische und emotionale Bandbreite von Deepwater Survival.</p>
<p>Die Texte greifen Themen wie Identität, Zugehörigkeit, Abschied und Neuanfang auf – universelle Inhalte, die in der Hektik unserer Zeit für viele relevant sind. Die Musik von Deepwater Survival lädt dazu ein, laut mitzusingen, nachzudenken und gemeinsam mit der Band ein Stück Erinnerung und Hoffnung zu teilen.</p>
<p><strong>Deepwater Survival</strong> steht für Punk mit Haltung – klar, ungeschönt, direkt. Für alle, die Musik nicht nur hören, sondern fühlen wollen.</p>
</section>
<div>
<h2 style="text-align: center;">Intresse geweckt? Dann gerne hier melden: info@deepwatersurvival.de</h2>
</div>
<div id="spotify_link">
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/artist/2TQ9HNBTNCmUthpg9ippHs?utm_source=generator&theme=0" width="40%" height="352" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
<div class="hero__content">
<h1 class="hero__logo">
<img src="/img/logo-crop.png" alt="Deepwater Survival" width="1600" height="675">
</h1>
<p class="hero__tagline">{{ .Params.tagline }}</p>
<div class="hero__actions">
<a class="button button--bolt" href="/music/">Ocean Tales anhören</a>
<a class="button button--ghost" href="/shows/">Live-Termine</a>
</div>
</div>
</section>
{{ end }}
<section class="intro wrap">
<div class="intro__head">
<h2 class="display">{{ .Params.headline }}</h2>
</div>
<div class="intro__body prose">
{{ .Content }}
</div>
</section>
<section class="live wrap">
<header class="section-head">
<h2 class="display">Live</h2>
<a class="text-link" href="/shows/">Alle Shows</a>
</header>
{{ if $upcoming }}
<div class="flyer-wall">
{{ range $upcoming }}{{ partial "show-card.html" . }}{{ end }}
</div>
{{ else }}
<p class="live__empty">Gerade sind keine Termine angekündigt. Ihr wollt uns auf eurer Bühne? Schreibt an <a href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a>.</p>
<h3 class="live__sub">Zuletzt gespielt</h3>
<div class="flyer-wall">
{{ range $past }}{{ partial "show-card.html" . }}{{ end }}
</div>
{{ end }}
</section>
<section class="booking">
<div class="wrap booking__inner">
<h2 class="display">Lust auf Lärm?</h2>
<p>Für Booking, Presse und alles andere erreicht ihr uns per Mail.</p>
<a class="booking__mail" href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a>
</div>
</section>
{{ end }}
+43
View File
@@ -0,0 +1,43 @@
{{ define "main" }}
<header class="page-head wrap">
<h1 class="display display--xl">{{ .Title }}</h1>
{{ with .Content }}<div class="page-head__lead">{{ . }}</div>{{ end }}
</header>
<section class="wrap release">
{{ with .Params.album }}
<div class="release__album">
<p class="release__kind">{{ .kind }}, {{ .year }}</p>
<h2 class="release__title">{{ .title }}</h2>
{{ with .text }}<p class="release__text">{{ . }}</p>{{ end }}
<a class="button button--bolt" href="{{ site.Params.spotify }}" target="_blank" rel="noopener">Auf Spotify hören</a>
</div>
{{ end }}
<div class="release__player">
{{ partial "spotify.html" . }}
</div>
</section>
{{ with .Params.singles }}
<section class="wrap singles" aria-labelledby="singles">
<h2 id="singles" class="display">Singles</h2>
<ol class="tracklist">
{{ range . }}
<li>
<span class="tracklist__title">{{ .title }}</span>
{{ with .year }}<span class="tracklist__year">{{ . }}</span>{{ end }}
</li>
{{ end }}
</ol>
</section>
{{ end }}
<section class="wrap elsewhere" aria-labelledby="elsewhere">
<h2 id="elsewhere" class="display">Mehr von uns</h2>
<ul class="elsewhere__list">
<li><a href="{{ site.Params.spotify }}" target="_blank" rel="noopener"><strong>Spotify</strong> Alle Songs und das Album</a></li>
<li><a href="{{ site.Params.youtube }}" target="_blank" rel="noopener"><strong>YouTube</strong> Videos und Live-Mitschnitte</a></li>
<li><a href="{{ site.Params.instagram }}" target="_blank" rel="noopener"><strong>Instagram</strong> Neuigkeiten aus dem Proberaum</a></li>
</ul>
</section>
{{ end }}
+15 -16
View File
@@ -1,18 +1,17 @@
<link rel="stylesheet" href="/css/footer.css">
<footer id="site_footer">
<div class="footer-container">
<div class="footer-left">
<p>© 2025 Deepwater Survival</p>
<p>
<a href="/impressum/" target="_self" rel="noopener">Impressum</a> |
<a href="/datenschutz/" target="_self" rel="noopener">Datenschutzerklärung</a>
</p>
<footer class="site-footer">
<div class="site-footer__inner">
<div class="site-footer__contact">
<p class="site-footer__lead">Booking, Presse, Fragen:</p>
<a class="site-footer__mail" href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a>
</div>
<nav class="site-footer__social" aria-label="Social Media">
<a href="{{ site.Params.spotify }}" target="_blank" rel="noopener">Spotify</a>
<a href="{{ site.Params.instagram }}" target="_blank" rel="noopener">Instagram</a>
<a href="{{ site.Params.youtube }}" target="_blank" rel="noopener">YouTube</a>
</nav>
</div>
<div class="footer-right">
<a href="https://open.spotify.com/artist/2TQ9HNBTNCmUthpg9ippHs" target="_blank" rel="noopener">Spotify</a>
<a href="https://www.instagram.com/deepwatersurvival/" target="_blank" rel="noopener">Instagram</a>
<a href="https://www.youtube.com/@deepwatersurvival730" target="_blank" rel="noopener">YouTube</a>
<div class="site-footer__legal">
<p>© {{ now.Year }} Deepwater Survival</p>
<p><a href="/impressum/">Impressum</a> <a href="/datenschutz/">Datenschutz</a></p>
</div>
</div>
</footer>
</footer>
+13 -13
View File
@@ -1,14 +1,14 @@
<header>
<link rel="stylesheet" href="/css/header.css">
<div id="logo">
<img src="/img/Logo_compressed.png" alt="" height="218" width="600">
</div>
<nav id="main_navigation">
<a href="/">Home</a>
<a href="/about/">Über uns</a>
<a href="/shows/">Shows</a>
<a href="/music/">Musik</a>
{{ $current := . -}}
<header class="site-header">
<div class="site-header__inner">
<a class="site-header__logo" href="/" aria-label="Deepwater Survival – Startseite">
<img src="/img/logo-crop.png" alt="Deepwater Survival" width="1600" height="675">
</a>
<nav class="site-nav" aria-label="Hauptnavigation">
{{ range site.Menus.main -}}
{{ $active := or (eq $current.RelPermalink .URL) (and (ne .URL "/") (hasPrefix $current.RelPermalink .URL)) -}}
<a href="{{ .URL }}"{{ if $active }} aria-current="page"{{ end }}>{{ .Name }}</a>
{{ end -}}
</nav>
</header>
</div>
</header>
+25
View File
@@ -0,0 +1,25 @@
{{/*
Responsives Bild aus static/img (über assets/img gemountet).
Parameter: src (z. B. "/img/about/Olly_compressed.jpg"), alt, sizes, widths, class, eager
*/}}
{{- $src := .src -}}
{{- $alt := .alt | default "" -}}
{{- $sizes := .sizes | default "100vw" -}}
{{- $widths := .widths | default (slice 480 960 1600) -}}
{{- $loading := cond (.eager | default false) "eager" "lazy" -}}
{{- $r := resources.Get (strings.TrimPrefix "/" $src) -}}
{{- if and $r (in (slice ".jpg" ".jpeg" ".png") (lower (path.Ext $src))) -}}
{{- $set := slice -}}
{{- $fallback := "" -}}
{{- range $widths -}}
{{- if le . $r.Width -}}
{{- $img := $r.Resize (printf "%dx webp q78" .) -}}
{{- $set = $set | append (printf "%s %dw" $img.RelPermalink $img.Width) -}}
{{- $fallback = $img -}}
{{- end -}}
{{- end -}}
{{- if not $fallback -}}{{- $fallback = $r -}}{{- end -}}
<img src="{{ $fallback.RelPermalink }}"{{ with $set }} srcset="{{ delimit . ", " }}" sizes="{{ $sizes }}"{{ end }} width="{{ $r.Width }}" height="{{ $r.Height }}" alt="{{ $alt }}" loading="{{ $loading }}" decoding="async"{{ with $.class }} class="{{ . }}"{{ end }}>
{{- else -}}
<img src="{{ $src }}" alt="{{ $alt }}" loading="{{ $loading }}"{{ with .class }} class="{{ . }}"{{ end }}>
{{- end -}}
+18
View File
@@ -0,0 +1,18 @@
{{- $r := "" -}}
{{- with .Params.poster }}{{ $r = resources.Get (strings.TrimPrefix "/" .) }}{{ end -}}
<article class="flyer{{ if not $r }} flyer--blank{{ end }}">
{{- if $r }}
<a class="flyer__poster" href="{{ .Params.poster }}" target="_blank" rel="noopener" aria-label="Plakat {{ .Title }} in voller Größe öffnen">
{{ partial "img.html" (dict "src" .Params.poster "alt" (printf "Plakat: %s" .Title) "sizes" "(min-width: 900px) 280px, 45vw" "widths" (slice 320 640)) }}
</a>
{{- else }}
<div class="flyer__poster flyer__poster--type" aria-hidden="true">
<span>{{ .Title }}</span>
</div>
{{- end }}
<div class="flyer__caption">
<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date | time.Format "2. January 2006" }}</time>
<h3>{{ .Title }}</h3>
{{ with .Params.location }}<p>{{ . }}</p>{{ end }}
</div>
</article>
+5
View File
@@ -0,0 +1,5 @@
<div class="spotify" data-spotify-src="{{ site.Params.spotifyEmbed }}">
<p class="spotify__note">Der Player wird von Spotify geladen. Dabei werden Daten an Spotify übertragen (<a href="/datenschutz/">Datenschutz</a>).</p>
<button class="button button--bolt" type="button" data-spotify-load>Spotify-Player laden</button>
<a class="spotify__direct" href="{{ site.Params.spotify }}" target="_blank" rel="noopener">Oder direkt auf Spotify öffnen</a>
</div>
+27 -54
View File
@@ -1,59 +1,32 @@
{{ define "main" }}
{{ $upcoming := (where .Pages "Date" "ge" now).ByDate }}
{{ $past := (where .Pages "Date" "lt" now).ByDate.Reverse }}
<h1>{{ .Title }}</h1>
<ul>
{{ range .Pages }}
<header class="page-head wrap">
<h1 class="display display--xl">{{ .Title }}</h1>
{{ with .Content }}<div class="page-head__lead">{{ . }}</div>{{ end }}
</header>
<div id="shows">
<div class="shows-row">
<div id="shows-image">
<img src="{{ .Params.poster}}" width="300" height="300">
</div>
<div class="shows-text">
<strong>{{ .Params.date.Format "2006-01-02" }}</strong> – {{ .Params.location }} – {{ .Title }}
</div>
</div>
<section class="wrap shows-block" aria-labelledby="kommend">
<h2 id="kommend" class="display">Kommende Termine</h2>
{{ with $upcoming }}
<div class="flyer-wall">
{{ range . }}{{ partial "show-card.html" . }}{{ end }}
</div>
{{ else }}
<p class="live__empty">Gerade sind keine Termine angekündigt. Ihr wollt uns auf eurer Bühne? Schreibt an <a href="mailto:{{ site.Params.email }}">{{ site.Params.email }}</a>.</p>
{{ end }}
</section>
<section class="wrap shows-block" aria-labelledby="archiv">
<h2 id="archiv" class="display">Archiv</h2>
{{ range $past.GroupByDate "2006" }}
<div class="year-group">
<h3 class="year-group__year">{{ .Key }}</h3>
<div class="flyer-wall">
{{ range .Pages }}{{ partial "show-card.html" . }}{{ end }}
</div>
{{ end }}
</ul>
<style>
#shows {
max-width: 1000px;
margin: 0 auto;
padding: 2rem;
}
.shows-row {
display: flex;
align-items: center;
justify-content: space-between;
margin: 2rem 0;
gap: 2rem;
}
.shows-text {
flex: 1;
}
.shows-image img {
width: 300px;
height: auto;
border-radius: 10px;
}
@media (max-width: 768px) {
.shows-row {
flex-direction: column-reverse;
text-align: center;
}
.shows-image img {
width: 80%;
margin: 0 auto;
}
}
</style>
</div>
{{ end }}
</section>
{{ end }}
+11
View File
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>{{ .Title }} | {{ site.Title }}</title>
<meta name="robots" content="noindex">
<link rel="canonical" href="{{ .Parent.Permalink }}">
<meta http-equiv="refresh" content="0; url={{ .Parent.RelPermalink }}">
</head>
<body><a href="{{ .Parent.RelPermalink }}">Zu allen Shows</a></body>
</html>