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
+64
View File
@@ -0,0 +1,64 @@
baseURL = 'https://mcg.luxick.de/'
title = 'Motorradclub Giebelwald e.V.'
locale = 'de-DE'
defaultContentLanguage = 'de'
enableRobotsTXT = true
enableGitInfo = false
# Nothing here is dated in the future on purpose; keep drafts out of production.
buildDrafts = false
buildFuture = false
[params]
description = 'Gegründet 1976'
tagline = 'Gegründet 1976'
email = 'vorstand@motorradclub-giebelwald.de'
logo = 'img/logo.png'
banner = 'img/banner.jpg'
dateFormat = '2. January 2006'
[markup.goldmark.renderer]
# The imported WordPress content contains hand-written HTML (tables, links with
# target attributes) that must survive rendering.
unsafe = true
[markup.tableOfContents]
startLevel = 2
endLevel = 3
[taxonomies]
tag = 'tags'
[menus]
[[menus.main]]
name = 'Aktuelles'
pageRef = '/aktuelles'
weight = 10
[[menus.main]]
name = 'Termine'
pageRef = '/termine'
weight = 20
[[menus.main]]
name = 'Downloads'
pageRef = '/downloads'
weight = 30
[[menus.main]]
name = 'Archiv'
pageRef = '/archiv'
weight = 40
[[menus.main]]
name = 'Impressum'
pageRef = '/impressum'
weight = 50
[outputs]
home = ['html', 'rss', 'sitemap']
section = ['html', 'rss']
[services.rss]
limit = 20
[privacy]
# No third-party embeds on this site; keep it that way.
[privacy.youtube]
disable = true