From e380e13b62bb83718230b9494c4b1d82b8abd4a9 Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Fri, 5 Jun 2026 20:49:11 +0000 Subject: [PATCH] =?utf8?q?Schritt=201:=20Funktionsinventar=20f=C3=BCr=20Hu?= =?utf8?q?go=20=E2=86=92=20Astro=20Migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Vollständige Analyse des Hugo-Projekts: - 75 Blog-Posts (2012–2021) mit Flat-URLs via Frontmatter - 8 Jahres-Archive, Taxonomien (Categories + Tags) - 4 Shortcodes, komplexe Navigation mit 2 Varianten - SCSS mit 5 Breakpoints + Print + Resurrection-CSS - Layout-Varianten Classic/Resurrection/None via localStorage inventory.md listet alle Features und ihre geplanten Astro-Äquivalente. Co-Authored-By: Claude Sonnet 4.6 --- inventory.md | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 inventory.md diff --git a/inventory.md b/inventory.md new file mode 100644 index 00000000..5086400f --- /dev/null +++ b/inventory.md @@ -0,0 +1,194 @@ +# Funktionsinventar: Hugo → Astro Migration + +## Content-Struktur + +### Seiten-Typen und Dateien + +| Typ | Pfad | Anzahl | Besonderheiten | +|-----|------|--------|----------------| +| Startseite | `content/_index.md` | 1 | HTML-Content, Shortcodes, explizite `url: /` | +| Blog-Index | `content/blog/_index.html` | 1 | Titel, weight | +| Blog-Jahres-Index | `content/blog/archive/YYYY/_index.md` | 8 | 2012–2021, `layout: year` | +| Blog-Artikel | `content/blog/archive/YYYY/*.md` | 75 | Explizite `url:` im Frontmatter (Flat-URL) | +| Projects-Index | `content/projects/_index.md` | 1 | HTML-Content, explizite `url: /projects/` | +| About-Sektion | `content/about/_index.html` | 1 | HTML-Content, `url: /about.html` | +| Impressum | `content/about/impressum/_index.html` | 1 | `url: /impressum.html` | +| Rechtliche Unterseiten | `content/about/impressum/*.html` | 6 | Datenschutz, AGB, Haftung, etc. | +| Contact | `content/about/contact.html` | 1 | `url: /contact.html` | + +### Content-Besonderheiten +- Blog-Posts haben **explizite Flat-URLs** im Frontmatter (`url: /post-slug/`), nicht hierarchisch +- Viele Seiten enthalten **rohen HTML**-Content (kein reines Markdown) +- Frontmatter enthält Legacy-Felder aus WordPress-Export (`post_id`, `guid`, `_edit_last`, etc.) +- Projects-Sektion enthält generierte Maven-Site-Dokumentation als statische HTML-Dateien + +--- + +## URL-Struktur + +| Route | Beschreibung | +|-------|--------------| +| `/` | Startseite | +| `/blog/` | Blog-Index (letzte 3 Posts + Jahresarchiv + Taxonomien) | +| `/blog/archive/` | Archiv-Übersicht | +| `/blog/archive/YYYY/` | Jahres-Archiv | +| `/post-slug/` | Einzelner Blog-Post (Flat-URL via Frontmatter) | +| `/projects/` | Projects-Index | +| `/hibernate-maven-plugin/` | Maven-Site-Doku (statisch, aus `static/`) | +| `/about.html` | About-Seite | +| `/impressum.html` | Impressum | +| `/contact.html` | Kontakt | +| `/categories/` | Kategorien-Übersicht | +| `/categories/TERM/` | Einzelne Kategorie | +| `/tags/` | Tags-Übersicht | +| `/tags/TERM/` | Einzelner Tag | + +--- + +## Taxonomien + +- **categories**: howto, tips, explained, … (ca. 3 Kategorien) +- **tags**: hibernate, java, maven, spring, docker, kafka, … (viele) + +--- + +## Shortcodes + +| Shortcode | Verwendung | Astro-Äquivalent | +|-----------|------------|------------------| +| `{{< recent-posts >}}` | Startseite: Liste der 5 neuesten Posts | Astro-Komponente mit `getCollection()` | +| `{{< marginalcontent-md >}}...{{}}` | Markdown-Content in Marginal-Bereich | Astro-Slot oder Props | +| `{{< marginalcontent-html >}}...{{}}` | HTML-Content in Marginal-Bereich | Astro-Slot oder Props | +| `{{< footerlinks >}}...{{}}` | Eigene Footer-Links (statt Standard) | Astro-Slot oder Props | + +--- + +## Layout-Struktur + +### HTML-Gerüst (aus `baseof.html`) + +``` +body#top.menu + div#page.cf + header#header ← Logo + Slogan + [breadcrumb] ← Pfad-Navigation (überschreibbar) + main.content.cf + article#content.main ← Haupt-Content (Block: article → title + content) + div.marginal + nav#nav ← Block: menu (Navigationsbaum) + [asides.m] ← Block: marginalcontent (Taxonomien, Custom) + footer#footer ← Copyright, Footer-Links, Layout-Switcher +``` + +### Layout-Varianten (data-layout auf ``) +- **classic**: Original-Layout (Standard) +- **resurrection**: Alternatives CSS-Layout +- **none**: Kein Layout-CSS + +Umschaltbar per Klick im Footer. Wert wird in `localStorage` gespeichert und beim Laden sofort gesetzt (via inline `