Add havelseite

This commit is contained in:
finalnode
2026-05-16 14:16:54 +02:00
parent e53c964609
commit 3f54f53641
79 changed files with 6735 additions and 1 deletions

View File

@ -0,0 +1,3 @@
<section class="banner">
{{ content | safe }}
</section>

View File

@ -0,0 +1,75 @@
<!doctype html>
<html lang="{{ settings.language | default("de") }}">
<head>
<meta charset="utf-8">
<title>{{ settings.title }}</title>
<style>
:root {
--color-background: {{ settings.colors.background | e }};
--color-text: {{ settings.colors.text | e }};
--color-link: {{ settings.colors.link | e }};
--color-link-hover: {{ settings.colors.link_hover | e }};
--color-surface: {{ settings.colors.surface | e }};
--color-surface-alt: {{ settings.colors.surface_alt | e }};
--color-muted-text: {{ settings.colors.muted_text | e }};
--color-border: {{ settings.colors.border | e }};
--color-header-background: {{ settings.colors.header_background | e }};
--color-header-hover: {{ settings.colors.header_hover | e }};
--color-header-text: {{ settings.colors.header_text | e }};
--color-footer-background: {{ settings.colors.footer_background | e }};
--color-footer-text: {{ settings.colors.footer_text | e }};
--color-hero-background: {{ settings.colors.hero_background | e }};
--color-accent: {{ settings.colors.accent | e }};
--font-body: {{ settings.typography.body | default("system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif") | e }};
--font-heading: {{ settings.typography.heading | default(settings.typography.body | default("system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif")) | e }};
}
</style>
<link rel="stylesheet" href="{{ static_path }}">
</head>
<body class="nav-height-{{ settings.navigation.height | default("medium") }} nav-position-{{ settings.navigation.position | default("sticky") }} nav-align-{{ settings.navigation.align | default("center") }} mobile-menu-{{ settings.mobile_menu.align | default("auto") }} mobile-submenus-{{ settings.mobile_menu.submenus | default("closed") }} font-{{ settings.typography.font | default("system") }} font-size-{{ settings.typography.size | default("medium") }} icons-{{ settings.icons.style | default("round") }} images-{{ "rounded" if settings.gallery.rounded | default(true) else "square" }}{% if logo.enabled %} logo-placement-{{ "header" if logo.header else "footer" }} logo-align-{{ logo.align | default("left") }}{% endif %}">
<header class="site-header">
<div class="nav-wrap">
{% if logo.enabled and logo.header %}
<a class="site-logo site-logo-nav" href="{{ navigation[0].url if navigation }}">
{% if logo.url %}
<img src="{{ logo.url }}" alt="{{ logo.alt }}">
{% else %}
<span>{{ logo.text }}</span>
{% endif %}
</a>
{% endif %}
<input type="checkbox" id="nav-toggle" class="nav-toggle">
<label for="nav-toggle" class="burger"></label>
<nav class="main-nav">
{% for item in navigation %}
{% if item.type == "link" %}
<div class="nav-item">
<a href="{{ item.url }}">{{ item.title }}</a>
</div>
{% elif item.type == "dropdown" %}
<div class="nav-item dropdown">
<button class="dropdown-label" type="button" aria-expanded="{{ "true" if settings.mobile_menu.submenus | default("open") == "open" else "false" }}">{{ item.title }}</button>
<div class="submenu">
{% for child in item.children %}
<a href="{{ child.url }}">{{ child.title }}</a>
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
</nav>
</div>
</header>
<main class="site-main">
{{ body | safe }}
</main>
{{ footer | safe }}
<script type="module" src="{{ static_path | replace('style.css', 'external-content.js') }}"></script>
</body>
</html>

View File

@ -0,0 +1,11 @@
<section class="cards-section cards-layout-{{ layout }}">
{{ title | safe }}
<div class="cards">
{% for card in cards %}
<article class="card">
{{ card | safe }}
</article>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,5 @@
<section class="contact-section">
<div class="contact-box">
{{ content | safe }}
</div>
</section>

View File

@ -0,0 +1,13 @@
<section class="downloads-section">
<div class="downloads-title">
{{ title | safe }}
</div>
<div class="download-list">
{% for link in links %}
<a class="download-item" href="{{ link.href }}">
<span>{{ link.label }}</span>
</a>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,22 @@
<section class="event-section">
<article class="event-box{% if image %} event-has-image{% endif %}">
<div class="event-content">
{{ content | safe }}
</div>
<dl class="event-facts">
{% for key, value in values.items() %}
<div>
<dt>{{ key.replace("_", " ").title() }}</dt>
<dd>{{ value | safe }}</dd>
</div>
{% endfor %}
</dl>
{% if image %}
<figure class="event-image">
<img src="{{ image.src }}" alt="{{ image.alt }}">
</figure>
{% endif %}
</article>
</section>

View File

@ -0,0 +1,28 @@
<section class="event-section">
{{ title | safe }}
<div class="event-list">
{% for event in events %}
<article class="event-box{% if event.image %} event-has-image{% endif %}">
<div class="event-content">
{{ event.content | safe }}
</div>
<dl class="event-facts">
{% for key, value in event.facts.items() %}
<div>
<dt>{{ key.replace("_", " ").title() }}</dt>
<dd>{{ value | safe }}</dd>
</div>
{% endfor %}
</dl>
{% if event.image %}
<figure class="event-image">
<img src="{{ event.image.src }}" alt="{{ event.image.alt }}">
</figure>
{% endif %}
</article>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,11 @@
<section class="faq">
<div class="faq-title">
{{ title | safe }}
</div>
{% for item in items %}
<article class="faq-item">
{{ item | safe }}
</article>
{% endfor %}
</section>

View File

@ -0,0 +1,44 @@
<footer class="site-footer">
<div class="footer-inner">
<div class="footer-brand">
{{ title | safe }}
</div>
<div class="footer-grid">
{% if logo and logo.enabled and logo.footer %}
<div class="footer-column footer-logo-column">
<a class="site-logo footer-logo" href="{{ logo.home_url if logo.home_url }}">
{% if logo.url %}
<img src="{{ logo.url }}" alt="{{ logo.alt }}">
{% else %}
<span>{{ logo.text }}</span>
{% endif %}
</a>
</div>
{% endif %}
{% for column in columns %}
<div class="footer-column">
{{ column | safe }}
</div>
{% endfor %}
{% if social_links %}
<div class="footer-column footer-social-column">
<h2>Social</h2>
<div class="social-links">
{% for social in social_links %}
<a href="{{ social.url }}" aria-label="{{ social.label }}">
<span>{{ social.icon }}</span>
</a>
{% endfor %}
</div>
</div>
{% endif %}
</div>
<p class="footer-credit">
Erstellt mit Havelseiten von Binnenrevier
</p>
</div>
</footer>

View File

@ -0,0 +1,42 @@
<section class="gallery-section gallery-layout-{{ gallery.layout | default("square") }}">
<div class="gallery-title">
{{ title | safe }}
</div>
{% if needs_external_consent %}
<div class="gallery-placeholder external-placeholder">
<button
type="button"
class="gallery-load-button"
>
Externe Galerie-Bilder laden
</button>
</div>
{% endif %}
<div class="gallery-grid"{% if needs_external_consent %} hidden{% endif %}>
{% for image in images %}
<a
href="{{ image.src }}"
class="gallery-link"
data-pswp-width="{{ image.width }}"
data-pswp-height="{{ image.height }}"
aria-label="Bild öffnen"
>
<figure class="gallery-item">
<img
src="{{ image.src }}"
alt="{{ image.alt }}"
loading="lazy"
>
{% if image.alt and gallery.captions | default(true) %}
<figcaption>
{{ image.alt }}
</figcaption>
{% endif %}
</figure>
</a>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,44 @@
{% set hero_classes = "hero" %}
{% if hero %}
{% set hero_classes = hero_classes ~ " hero-has-media hero-" ~ hero.type %}
{% endif %}
<section
class="{{ hero_classes }}"
{% if hero and hero.style %}style="{{ hero.style | e }}"{% endif %}
>
{% if hero and hero.type == "image" %}
<img class="hero-media" src="{{ hero.src | e }}" alt="">
{% elif hero and hero.type == "video" %}
<video class="hero-media" src="{{ hero.src | e }}" autoplay muted loop playsinline></video>
{% elif hero and hero.type == "youtube" and external_content_enabled %}
<iframe
class="hero-media hero-youtube-frame"
src="{{ hero.src | e }}"
title="YouTube-Hero"
allow="autoplay; encrypted-media; picture-in-picture"
allowfullscreen
></iframe>
{% elif hero and hero.type == "youtube" %}
<div class="hero-media external-placeholder">
<div>
<strong>Externes YouTube-Video</strong>
<p>Dieses Video wird aus Datenschutzgruenden nicht automatisch geladen.</p>
<button
class="external-load-button"
type="button"
data-embed-src="{{ hero.src | e }}"
data-embed-class="hero-media hero-youtube-frame"
data-embed-title="YouTube-Hero"
data-embed-allow="autoplay; encrypted-media; picture-in-picture"
>
Video laden
</button>
</div>
</div>
{% endif %}
<div class="hero-content">
{{ content | safe }}
</div>
</section>

View File

@ -0,0 +1,11 @@
<section class="image-text">
{% if image %}
<div class="image-text-image">
<img src="{{ image.src }}" alt="{{ image.alt }}">
</div>
{% endif %}
<div class="image-text-content">
{{ content | safe }}
</div>
</section>

View File

@ -0,0 +1,26 @@
<section class="location-section">
<div class="location-content">
{{ content | safe }}
{% if address %}
<p class="location-address">{{ address }}</p>
{% endif %}
</div>
{% if address %}
<div class="location-placeholder">
<strong>Externe Karte</strong>
<p>Die Karte wird aus Datenschutzgruenden nicht automatisch geladen.</p>
<button
class="external-load-button"
type="button"
data-map-address="{{ address | e }}"
data-embed-class="location-map"
data-embed-title="Karte"
{% if external_content_enabled %}data-auto-load="true"{% endif %}
>
Karte laden
</button>
</div>
{% endif %}
</section>

View File

@ -0,0 +1,13 @@
<section class="people-section">
<div class="people-title">
{{ title | safe }}
</div>
<div class="people-grid">
{% for person in people %}
<article class="person-card">
{{ person | safe }}
</article>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,5 @@
<section class="person-section">
<article class="person-card person-card-single">
{{ content | safe }}
</article>
</section>

View File

@ -0,0 +1,5 @@
<section class="quote-section">
<div class="quote-box">
{{ content | safe }}
</div>
</section>

View File

@ -0,0 +1,17 @@
<section class="sponsors-section">
<div class="sponsors-title">
{{ title | safe }}
</div>
<div class="sponsor-grid">
{% for sponsor in sponsors %}
<figure class="sponsor-logo">
<img src="{{ sponsor.src }}" alt="{{ sponsor.alt }}">
{% if sponsor.alt %}
<figcaption>{{ sponsor.alt }}</figcaption>
{% endif %}
</figure>
{% endfor %}
</div>
</section>

View File

@ -0,0 +1,3 @@
<section class="text-section">
{{ content | safe }}
</section>

View File

@ -0,0 +1,11 @@
<section class="timeline">
<div class="timeline-title">
{{ title | safe }}
</div>
{% for item in items %}
<article class="timeline-item">
{{ item | safe }}
</article>
{% endfor %}
</section>

View File

@ -0,0 +1,13 @@
<section class="two-columns">
<div class="two-columns-title">
{{ title | safe }}
</div>
<div class="column">
{{ left | safe }}
</div>
<div class="column">
{{ right | safe }}
</div>
</section>