Blog- und Veranstaltungsbereich hinzugefuegt

Neuer Bereich /blog fuer Veranstaltungstipps und Neuigkeiten aus
Kaufbeuren: content/blog/ (inkl. erstem Beitrag "Veranstaltungen
Herbst 2026" als Page-Bundle mit Bildern), Layouts layouts/blog/
(list + single) und ein bild-Shortcode, der Bilder aus dem Bundle
aufloest und eine Bildquelle anzeigt. Menueintrag "Blog" in hugo.toml,
zugehoeriges Blog-CSS (und Belegungsplan-Band) in style.css.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
This commit is contained in:
Michael Stangl
2026-08-28 16:45:09 +02:00
parent 2379f4ac9f
commit eeffa578cb
18 changed files with 249 additions and 6 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 KiB

+7
View File
@@ -0,0 +1,7 @@
---
title: "Blog & Veranstaltungen"
description: "Aktuelle Veranstaltungen, Tipps und Neuigkeiten aus Kaufbeuren und dem Allgäu"
---
Hier finden Sie aktuelle Veranstaltungstipps und Neuigkeiten aus Kaufbeuren und
der Region – ideal, um Ihren Aufenthalt bei uns zu planen.
Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

@@ -0,0 +1,113 @@
---
title: "Veranstaltungshighlights in Kaufbeuren – Herbst 2026"
date: 2026-08-28
# Einblenddatum: 2 Monate vor dem ersten Event (11.09.2026) -> ab hier sichtbar
publishDate: 2026-07-11
# Ablaufdatum: 1 Monat nach dem ersten Event -> danach ausgeblendet
expiryDate: 2026-10-11
description: "Von Filmsoiree über Genusstage bis zum Jazzkonzert – die schönsten Veranstaltungen rund um Kaufbeuren im Herbst 2026."
bild: "filmsoiree-kino.jpg"
bild_alt: "Kinosaal mit roten Sesseln"
bild_quelle: 'Foto: <a href="https://unsplash.com/@krields" target="_blank" rel="noopener">Krists Luhaers</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>'
---
Der Herbst hält in Kaufbeuren und im Ostallgäu ein buntes Programm bereit. Ob
Kultur, Kulinarik oder ein stimmungsvoller Bummel durch die Altstadt – hier ist
für jeden etwas dabei. Während Ihres Aufenthalts bei uns in Kaufbeuren-Hirschzell
erreichen Sie alle Veranstaltungsorte bequem in wenigen Minuten.
## Filmsoiree: „Zwischen zwei Heimaten"
{{< bild
src="filmsoiree-kino.jpg"
alt="Kinosaal mit roten Sesseln"
quelle=`Foto: <a href="https://unsplash.com/@krields" target="_blank" rel="noopener">Krists Luhaers</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**11. September 2026 · Gablonzer Haus (Großer Saal), Kaufbeuren-Neugablonz**
Anlässlich von „80 Jahre Neugablonz – 80 Jahre Vertreibung" zeigt das
Isergebirgs-Museum in Zusammenarbeit mit dem Kulturreferat eine besondere
Filmsoiree. Der Eintritt ist frei (Zählkarte vorab erforderlich).
## Geführte Pilgerwanderung: Etappe Mindelheim nach Kaufbeuren
{{< bild
src="pilgerwanderung-natur.jpg"
alt="Wanderweg durch grüne Voralpenlandschaft"
quelle=`Foto: <a href="https://unsplash.com/@fab_fotografie" target="_blank" rel="noopener">Fabian Kühne</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**19. September 2026 · Start in Mindelheim, Ziel Crescentiakloster Kaufbeuren**
Eine begleitete Pilgerwanderung auf der rund 28 Kilometer langen 4. Etappe des
Crescentia-Pilgerwegs mit Impulsen und geistlicher Begleitung durch
Pilgerwegbegleiter.
## Allgäuer Genusstage 2026
{{< bild
src="genusstage-kulinarik.jpg"
alt="Regionale Spezialitäten auf einem Tisch"
quelle=`Foto: <a href="https://unsplash.com/@brookelark" target="_blank" rel="noopener">Brooke Lark</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**19. September – 04. Oktober 2026 · Kaufbeuren, Ostallgäu & Region**
Kulinarische Aktionswochen im Landkreis Ostallgäu und der Stadt Kaufbeuren.
Regionale Erzeuger, Gastronomen und Direktvermarkter präsentieren Spezialitäten
aus der Heimat.
## Jubiläumskonzert: 60 Jahre Kulturring Kaufbeuren
{{< bild
src="konzert-orchester.jpg"
alt="Orchester bei einem Konzert"
quelle=`Foto: <a href="https://unsplash.com/@manuelsardo" target="_blank" rel="noopener">Manuel Nägeli</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**26. September 2026 · Stadtsaal Kaufbeuren**
Der Kulturring Kaufbeuren feiert sein 60-jähriges Bestehen mit einer sinfonischen
Märchenstunde, gespielt vom renommierten ODEON Jugendsymphonieorchester München.
## Theater & Performance: „Poseidon und die Plastiksee"
{{< bild
src="theater-buehne.jpg"
alt="Theaterbühne mit Vorhang und Beleuchtung"
quelle=`Foto: <a href="https://unsplash.com/@barnaba" target="_blank" rel="noopener">Barna Bartis</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**07. Oktober 2026 · Stadttheater Kaufbeuren**
Ein Gastspiel der Saison des Kulturrings Kaufbeuren e.V., das sich auf
künstlerische Weise mit Umwelt- und Meeres-Themen im historischen Rahmen des
Stadttheaters auseinandersetzt.
## Jazzkonzert: Yakou Tribe – „Out of Sight"
{{< bild
src="jazz-konzert.jpg"
alt="Musiker bei einem Jazzkonzert"
quelle=`Foto: <a href="https://unsplash.com/@mariusmasalar" target="_blank" rel="noopener">Marius Masalar</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**30. Oktober 2026 · Stadttheater Kaufbeuren**
Das renommierte Berliner Jazz-Ensemble Yakou Tribe gastiert im Stadttheater
Kaufbeuren und präsentiert modernen, mitreißenden Instrumental-Jazz.
## Altstadtfunkeln (Candle Light Shopping & Kaufbeuren Leuchtet)
{{< bild
src="altstadtfunkeln-nacht.jpg"
alt="Illuminierte Altstadtgasse bei Nacht"
quelle=`Foto: <a href="https://unsplash.com/@agk42" target="_blank" rel="noopener">Alex Knight</a> auf <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a>` >}}
**13. und 14. November 2026 · Altstadt Kaufbeuren**
Die Zusammenführung von „Candle Light Shopping" und „Kaufbeuren leuchtet".
Besucher erwarten stimmungsvolle Videomappings an historischen Fassaden,
illuminierte Gassen und verlängerte Einkaufszeiten im lokalen Einzelhandel.
---
*Die verwendeten Fotos sind Symbolbilder (Unsplash-Lizenz, kostenlos auch für
kommerzielle Nutzung). Alle Veranstaltungsangaben ohne Gewähr – bitte informieren
Sie sich vor Ihrem Besuch bei den jeweiligen Veranstaltern über eventuelle
Änderungen.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

+5 -1
View File
@@ -28,7 +28,11 @@ defaultContentLanguage = "de"
name = "Ausflugsziele"
url = "/ausflugsziele/"
weight = 4
[[menu.main]]
name = "Blog"
url = "/blog/"
weight = 5
[[menu.main]]
name = "Kontakt"
url = "/kontakt/"
weight = 5
weight = 6
+33
View File
@@ -0,0 +1,33 @@
{{ define "main" }}
<article class="page">
<div class="container">
<h1>{{ .Title }}</h1>
{{ .Content }}
<div class="fewo-grid blog-grid">
{{ range .Pages.ByPublishDate.Reverse }}
<div class="fewo-card">
{{ $post := . }}
{{ with .Params.bild }}
{{ $src := . }}
{{ with $post.Resources.GetMatch $src }}{{ $src = .RelPermalink }}{{ end }}
<a href="{{ $post.RelPermalink }}" class="fewo-card-imglink">
<img src="{{ $src }}" alt="{{ with $post.Params.bild_alt }}{{ . }}{{ else }}{{ $post.Title }}{{ end }}" class="fewo-card-img" loading="lazy">
</a>
{{ end }}
<div class="fewo-card-body">
<p class="blog-date">{{ .PublishDate.Format "02.01.2006" }}</p>
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
{{ with .Params.description }}<p>{{ . }}</p>{{ end }}
<a href="{{ .RelPermalink }}" class="btn btn-primary">Weiterlesen</a>
</div>
</div>
{{ end }}
</div>
{{ if not .Pages }}
<p>Aktuell sind keine Beiträge veröffentlicht. Schauen Sie bald wieder vorbei!</p>
{{ end }}
</div>
</article>
{{ end }}
+18
View File
@@ -0,0 +1,18 @@
{{ define "main" }}
<article class="page blog-post">
<div class="container container--narrow">
<p class="blog-date">{{ .PublishDate.Format "02.01.2006" }}</p>
<h1>{{ .Title }}</h1>
{{ with .Params.bild }}
{{ $src := . }}
{{ with $.Resources.GetMatch $src }}{{ $src = .RelPermalink }}{{ end }}
<figure class="blog-hero">
<img src="{{ $src }}" alt="{{ with $.Params.bild_alt }}{{ . }}{{ else }}{{ $.Title }}{{ end }}" class="blog-hero-img">
{{ with $.Params.bild_quelle }}<figcaption class="bild-quelle">Bildquelle: {{ . | safeHTML }}</figcaption>{{ end }}
</figure>
{{ end }}
{{ .Content }}
<p class="blog-back"><a href="/blog/" class="btn btn-outline">&larr; Zurück zur Übersicht</a></p>
</div>
</article>
{{ end }}
+11
View File
@@ -0,0 +1,11 @@
{{- $src := .Get "src" -}}
{{- $alt := .Get "alt" -}}
{{- $quelle := .Get "quelle" -}}
{{- /* Bild als Page-Resource aus dem Bundle auflösen; sonst src unverändert nutzen */ -}}
{{- with .Page.Resources.GetMatch $src }}{{ $src = .RelPermalink }}{{ end -}}
<figure class="blog-figure">
<img src="{{ $src }}" alt="{{ $alt }}" loading="lazy">
{{- with $quelle }}
<figcaption class="bild-quelle">Bildquelle: {{ . | safeHTML }}</figcaption>
{{- end }}
</figure>
+62 -5
View File
@@ -257,9 +257,34 @@ img { max-width: 100%; height: auto; display: block; }
.highlight-card h3 { margin-bottom: 0.5rem; font-size: 1.05rem; }
.highlight-card p { color: var(--text-muted); font-size: 0.9rem; }
/* ===== Belegungsplan-Band (auffälliger Verweis auf der Startseite) ===== */
.belegungsplan-band {
background: #c0392b;
padding: 1.6rem 0;
text-align: center;
}
.belegungsplan-band-btn {
background: #e67e22;
color: #fff;
border: none;
font-size: 1.15rem;
font-weight: 700;
padding: 0.9rem 2rem;
box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}
.belegungsplan-band-btn:hover {
background: #d35400;
color: #fff;
}
/* ===== Belegungsplan (Übersicht ein-/ausblenden) ===== */
.belegungsplan-toggle { margin: 1rem 0 2.5rem; }
.belegungsplan-frame { margin-top: 1.5rem; }
.belegungsplan-frame {
margin-top: 1.5rem;
background: #fff;
padding: 1rem;
border-radius: var(--radius);
}
.belegungsplan-frame[hidden] { display: none; }
/* ===== FeWo Grid ===== */
@@ -281,6 +306,8 @@ img { max-width: 100%; height: auto; display: block; }
.fewo-card-img { width: 100%; height: 200px; object-fit: cover; transition: opacity 0.2s; }
.fewo-card-imglink:hover .fewo-card-img { opacity: 0.9; }
.fewo-card-body { padding: 1.5rem; }
.fewo-card-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.fewo-card-actions .btn { margin-right: 0; }
.fewo-card-body h2, .fewo-card-body h3 { margin-bottom: 0.5rem; font-size: 1.2rem; }
.fewo-card-body h2 a, .fewo-card-body h3 a { color: var(--text); }
.fewo-meta {
@@ -311,10 +338,13 @@ img { max-width: 100%; height: auto; display: block; }
/* ===== Karten-Grid (wiederverwendet für Umfeld + Ausstattung) ===== */
.spec-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.25rem;
}
@media (max-width: 760px) {
@media (max-width: 980px) {
.spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
.spec-grid { grid-template-columns: 1fr; }
}
.spec-block {
@@ -337,7 +367,6 @@ img { max-width: 100%; height: auto; display: block; }
/* ===== Ausstattung (einzelne Ferienwohnung) ===== */
.ausstattung { margin-top: 2rem; }
.ausstattung h2 { margin: 1.5rem 0 1rem; font-size: 1.2rem; border-bottom: 1px solid var(--border); padding-bottom: 0.25rem; }
.ausstattung-hinweis { margin-top: 1.5rem; font-size: 0.95rem; color: var(--text-muted); }
/* ===== Ausflugsziele-Gruppen ===== */
.ausflug-gruppe { margin-top: 3rem; }
@@ -548,7 +577,7 @@ img { max-width: 100%; height: auto; display: block; }
content: "";
position: absolute;
inset: 0;
background: rgba(255,255,255,0.6);
background: transparent;
}
.zitat-box-inner {
position: relative;
@@ -610,3 +639,31 @@ img { max-width: 100%; height: auto; display: block; }
/* ===== Main ===== */
.main { min-height: calc(100vh - var(--nav-height) - 200px); }
/* ===== Blog ===== */
.blog-grid { margin-top: 2rem; }
.blog-date { color: var(--muted, #777); font-size: 0.85rem; margin-bottom: 0.4rem; }
.container--narrow { max-width: 760px; }
.blog-hero-img {
width: 100%;
max-height: 420px;
object-fit: cover;
border-radius: var(--radius, 6px);
}
.blog-post h2 { margin-top: 2.5rem; }
.blog-back { margin-top: 2.5rem; }
.blog-figure { margin: 1rem 0 1.5rem; }
.blog-figure img {
width: 100%;
max-height: 380px;
object-fit: cover;
border-radius: var(--radius, 6px);
}
.blog-hero { margin: 0 0 2rem; }
.bild-quelle {
font-size: 0.78rem;
color: var(--muted, #777);
margin-top: 0.4rem;
line-height: 1.4;
}
.bild-quelle a { color: var(--muted, #777); text-decoration: underline; }