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:
@@ -0,0 +1,15 @@
|
||||
{{- /* {{< figure "bild.jpg" "Bildunterschrift" >}} */ -}}
|
||||
{{- $src := or (.Get "src") (.Get 0) -}}
|
||||
{{- $caption := or (.Get "caption") (.Get 1) -}}
|
||||
{{- with .Page.Resources.GetMatch $src -}}
|
||||
{{- $img := .Resize "1200x webp q82" }}
|
||||
<figure class="content-figure">
|
||||
<a href="{{ .RelPermalink }}">
|
||||
<img src="{{ $img.RelPermalink }}" width="{{ $img.Width }}" height="{{ $img.Height }}"
|
||||
alt="{{ $caption | plainify }}" loading="lazy" decoding="async">
|
||||
</a>
|
||||
{{ with $caption }}<figcaption>{{ . | markdownify }}</figcaption>{{ end }}
|
||||
</figure>
|
||||
{{- else -}}
|
||||
{{- warnf "figure: %q not found in %s" $src .Page.Path -}}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,32 @@
|
||||
{{- /*
|
||||
Responsive image grid.
|
||||
{{< gallery "a.jpg" "b.jpg" >}} explicit, ordered
|
||||
{{< gallery >}} every image resource of the page
|
||||
Thumbnails link to the full-size original.
|
||||
*/ -}}
|
||||
{{- $page := .Page -}}
|
||||
{{- $images := slice -}}
|
||||
{{- if .Params -}}
|
||||
{{- range .Params -}}
|
||||
{{- with $page.Resources.GetMatch . -}}
|
||||
{{- $images = $images | append . -}}
|
||||
{{- else -}}
|
||||
{{- warnf "gallery: %q not found in %s" . $page.Path -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- $images = $page.Resources.ByType "image" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $images -}}
|
||||
<div class="gallery">
|
||||
{{- range $images }}
|
||||
{{- $thumb := .Fill "400x300 Center webp q80" }}
|
||||
{{- $full := .Resize "1600x webp q82" }}
|
||||
<a class="gallery-item" href="{{ $full.RelPermalink }}">
|
||||
<img src="{{ $thumb.RelPermalink }}" width="{{ $thumb.Width }}" height="{{ $thumb.Height }}"
|
||||
alt="" loading="lazy" decoding="async">
|
||||
</a>
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,15 @@
|
||||
{{- /* {{< pdf "satzung.pdf" "Unsere Satzung" >}} — links a file in static/dokumente/. */ -}}
|
||||
{{- $file := .Get 0 -}}
|
||||
{{- $label := or (.Get 1) $file -}}
|
||||
{{- $path := printf "static/dokumente/%s" $file -}}
|
||||
{{- $size := "" -}}
|
||||
{{- with (os.Stat $path) -}}
|
||||
{{- $size = printf "%.1f MB" (div (float .Size) 1048576.0) -}}
|
||||
{{- else -}}
|
||||
{{- warnf "pdf shortcode: %s not found" $path -}}
|
||||
{{- end -}}
|
||||
<a class="pdf-link" href="{{ printf "/dokumente/%s" $file | relURL }}" download>
|
||||
<span class="pdf-icon" aria-hidden="true">PDF</span>
|
||||
<span class="pdf-label">{{ $label }}</span>
|
||||
{{ with $size }}<span class="pdf-size">{{ . }}</span>{{ end }}
|
||||
</a>
|
||||
Reference in New Issue
Block a user