Migrate WordPress site to Hugo

Replaces the WordPress 7.0.2 / HitMag site with a static Hugo build,
deployed by Gitea Actions over rsync/SSH.

Content: 26 files (9 pages + 17 posts) as Markdown page bundles, plus
127 of 165 media attachments. The remaining 38 are media-library
leftovers that appear nowhere on the live site; they are listed in
MIGRATION.md.

The WXR export contains neither media binaries nor widgets, so both were
recovered from the live host before it is retired:
  - tools/fetch_media.py downloads all uploads, capping them at 2000px
  - tools/build_data.py scrapes the "Unsere Mitglieder" and
    "In Erinnerung" widgets into data/*.yaml

TablePress' six Termine tables became data/termine.yaml, rendered with
the newest year expanded and earlier years collapsed. Old permalinks are
not preserved (clean slugs, no redirects, as agreed).

Custom layouts, no third-party theme. Plain CSS, since the pinned Hugo
0.164.0 is the non-extended build and cannot compile Sass.

Verified: clean build with zero warnings, 718 internal links checked and
none broken, no surviving wp-content URLs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 19:20:11 +02:00
parent eccf30584a
commit bef5182545
188 changed files with 2770 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
{{ define "main" }}
<div class="page">
<header class="page-header">
<h1>{{ .Title }}</h1>
</header>
{{ with .Content }}<div class="prose">{{ . }}</div>{{ end }}
{{ $years := slice }}
{{ range $year, $_ := hugo.Data.termine }}{{ $years = $years | append $year }}{{ end }}
{{ $years = sort $years "value" "desc" }}
{{ $current := index $years 0 }}
{{ range $years }}
{{ $rows := index hugo.Data.termine . }}
{{ if eq . $current }}
<section class="termine-current">
<h2>Termine {{ . }}</h2>
{{ partial "termine-table.html" $rows }}
</section>
{{ else }}
<details class="termine-past">
<summary>Termine {{ . }}</summary>
{{ partial "termine-table.html" $rows }}
</details>
{{ end }}
{{ end }}
</div>
{{ end }}