]> juplo.de Git - website/log
website
3 weeks agoBlogNav + projects: Code bereinigt und vereinfacht
Kai Moritz [Sun, 14 Jun 2026 14:35:54 +0000 (14:35 +0000)]
BlogNav + projects: Code bereinigt und vereinfacht

Totes Code entfernt:
- activeProjectUrl, isReports (nie benutzt)
- dirname, basename in content.config.ts (unused imports)
- visibleRoot-Branch in getActiveProject (identisch mit visiblePage)

Duplikate zusammengeführt:
- inSubtree + inProjectSubtree → generische Funktion (funktioniert für
  NavPage und ProjectNavNode dank struktureller Typisierung)
- aboutPageOff + projectNodeOff → nodeOff(nodeUrl, parentUrl, inPath,
  currentParentUrl, currentIsNode); Partial Applications aboutNodeOff
  und projNodeOff binden den section-spezifischen Kontext
- findProjectNode + findProjectParent → findNodeAndParent (ein DFS-Pass
  statt zwei); _activeProjectRoot-Alias dadurch obsolet

Wartbarkeit:
- aboutParentOf Map + aboutSectionIndexUrls Set durch findInTree ersetzt
  (leitet parentUrl und isNode direkt aus dem aboutSection-Baum ab statt
  beide separat zu pflegen)
- inPath einmal pro Node berechnet, für off-Logik und selected-Klasse
  wiederverwendet (war vorher doppelter Traversal)
- versionPrefix in buildNavTree aus makeNode herausgezogen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Komplett überarbeitet — IST-Zustand des Astro-Projekts dokumentiert
Kai Moritz [Sun, 14 Jun 2026 12:21:47 +0000 (12:21 +0000)]
CLAUDE.md: Komplett überarbeitet — IST-Zustand des Astro-Projekts dokumentiert

Alle Hugo-spezifischen Inhalte entfernt. Alle Abschnitte beschreiben jetzt
den aktuellen Stand des Astro-Projekts ohne historischen Kontext.

Neu oder wesentlich erweitert:
- Projektstruktur als Astro-Verzeichnisbaum
- HTML-Seitenstruktur via BaseLayout.astro-Slots
- Sitemap-Menü: vollständige Erklärung von Zweck, CSS-Klassen-Logik und
  Implementierung als explizite State-Machine in BlogNav.astro
- Blog-Sonderregeln: Canonical-URL-Logik, Archiv-Sichtbarkeit, Taxonomy-Verhalten
- About-Seitenstruktur inkl. isNode-Logik
- Projects-Sonderregeln: sichtbar/nicht-sichtbar, SNAPSHOT-Nav-Substitution,
  generierte Inhalte ohne Layout in public/projects/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Projects-Content-Architektur und Tooling-Anforderungen dokumentiert
Kai Moritz [Sun, 14 Jun 2026 12:06:05 +0000 (12:06 +0000)]
CLAUDE.md: Projects-Content-Architektur und Tooling-Anforderungen dokumentiert

Neue Sektion im Astro-Abschnitt erklärt das Verzeichnislayout unter
src/content/projects/, das Frontmatter-Schema für sichtbare und nicht
sichtbare Versionen, das Mapping zwischen Content-Dateien und
Routing-Dateien in src/pages/, den .html-URL-Quirk in Astro sowie
die Behandlung generierter Inhalte (apidocs, xref etc.) über
public/projects/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoProjects: Routing-Pages, ProjectPage-Komponente und BlogNav-Integration
Kai Moritz [Sun, 14 Jun 2026 11:59:59 +0000 (11:59 +0000)]
Projects: Routing-Pages, ProjectPage-Komponente und BlogNav-Integration

- ProjectPage.astro: wiederverwendbare Komponente für alle Projektseiten
  (liest Collection-Entry per ID, rendert HTML-Body via set:html, setzt canonical)
- 12 statische Routing-Dateien: 6 für 2.1.1 (visible) unter /hibernate-maven-plugin/,
  6 für 2.1.2-SNAPSHOT unter /projects/hibernate-maven-plugin/2.1.2-SNAPSHOT/
- BlogNav: Projects-Ast zwischen Blog und About eingefügt mit vollständiger
  off-Logik (tree.html-Analogon); SNAPSHOT-Seiten zeigen SNAPSHOT-NavTree
  an der Position der sichtbaren Version; off-Logic für Blog/About angepasst

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoProjects: Content Collection + Helper-Bibliothek für Hibernate Maven Plugin
Kai Moritz [Sun, 14 Jun 2026 11:59:50 +0000 (11:59 +0000)]
Projects: Content Collection + Helper-Bibliothek für Hibernate Maven Plugin

- js-yaml als explizite Dev-Dependency hinzugefügt (war transitive Dep)
- Custom Content Layer Loader in content.config.ts: liest HTML+YAML-Frontmatter
  aus src/content/projects/ und stellt sie als 'projects'-Collection bereit
- src/lib/projects.ts: buildNavTree(), getActiveProject(), getVisibleProjectNavTrees()
- Repräsentativer Subset: hibernate-maven-plugin 2.1.1 (sichtbar) + 2.1.2-SNAPSHOT
  (nicht-sichtbar), je 6 Seiten: Index, Configuration, Project Information,
  Project Reports, Plugin Documentation, Goal:create

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBlogNav: Categories/Tags-Unterseiten auch auf Index-Seite anzeigen
Kai Moritz [Sun, 14 Jun 2026 10:18:43 +0000 (10:18 +0000)]
BlogNav: Categories/Tags-Unterseiten auch auf Index-Seite anzeigen

sub-Klasse und aktive ul wurden nur bei onCategoryTerm/onTagTerm gesetzt,
nicht auf /blog/categories/ bzw. /blog/tags/ selbst. Fix: categoriesSelected
bzw. tagsSelected als einheitliche Bedingung (Index || Term).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBlogNav: Archive-Subtree immer rendern, off-Klasse steuert Sichtbarkeit
Kai Moritz [Sun, 14 Jun 2026 10:01:18 +0000 (10:01 +0000)]
BlogNav: Archive-Subtree immer rendern, off-Klasse steuert Sichtbarkeit

Jahre und Posts fehlten im HTML wenn man sich auf Categories/Tags-Seiten
oder außerhalb des Blog-Bereichs befand. Jahr-off-Logik korrigiert:
sichtbar nur auf Archive-Root (alle Jahre als Kinder) oder wenn aktiv.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoAbout-Seiten: fehlende Unterseiten als Astro-Pages angelegt
Kai Moritz [Sun, 14 Jun 2026 09:38:05 +0000 (09:38 +0000)]
About-Seiten: fehlende Unterseiten als Astro-Pages angelegt

Alle 6 About-Unterseiten, die bisher auf 404 liefen, wurden als
.html.astro-Dateien mit korrektem currentUrl für die BlogNav erstellt.
Inhalte aus content--via-hugo übernommen, Thymeleaf-Artefakte entfernt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: About-Subtree-Logik und Seitenstruktur dokumentiert
Kai Moritz [Sun, 14 Jun 2026 09:13:17 +0000 (09:13 +0000)]
CLAUDE.md: About-Subtree-Logik und Seitenstruktur dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBlogNav: vollständige About-Subtree mit korrekter off-Logik
Kai Moritz [Sun, 14 Jun 2026 09:12:36 +0000 (09:12 +0000)]
BlogNav: vollständige About-Subtree mit korrekter off-Logik

Statischer About-Seitenbaum aus Hugo content/about/-Struktur:
  /about.html → /contact.html, /impressum.html (mit 5 Unterseiten), /agb.html

aboutPageOff() implementiert Hugo tree.html-Logik:
  sichtbar wenn isCurrent || isAncestor || isSibling(nicht section-index) || isChild

Korrekturen gegenüber Vorgängerversion:
- onAboutSection (inSubtree) statt onAbout (nur /about.html)
  → activeSection 'about' auch auf Impressum/Datenschutz
  → blogSectionOff = onAboutSection (Blog versteckt auf allen About-Seiten)
- About-Link zeigt selected auf allen About-Section-Seiten
- About-li hat jetzt class 'sub' (hat Kinder)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: BlogNav off-Logik und About-Navigation-Status aktualisiert
Kai Moritz [Sun, 14 Jun 2026 08:58:04 +0000 (08:58 +0000)]
CLAUDE.md: BlogNav off-Logik und About-Navigation-Status aktualisiert

off-Klassen-Abschnitt: Herleitung jetzt korrekt aus Hugo-Template-Quellen
(frontend-Branch) dokumentiert statt aus HTML-Output-Analyse.
Standalone-Seiten-Abschnitt: Status von "offener Punkt" auf
"implementiert via BlogNav" aktualisiert; nur Projects-Baum fehlt noch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoNavigation für About-Seiten ergänzt; off-Klassen-Logik korrigiert
Kai Moritz [Sun, 14 Jun 2026 08:57:10 +0000 (08:57 +0000)]
Navigation für About-Seiten ergänzt; off-Klassen-Logik korrigiert

BlogNav.astro: About-Eintrag in #submenu hinzugefügt. off-Logik der
Blog- und About-Sektion basiert jetzt auf den Hugo-Template-Quellen
(frontend-Branch):
- blogSectionOff = onAbout (aus tree.html: section-index blendet andere Sections aus)
- aboutOff = blogSelected (aus blog.html: alle Non-Blog-Sections immer off)
Auf Homepage und regulären Root-Seiten (Impressum, Datenschutz) sind
beide Sections sichtbar — wie in Hugo (Kind-/Geschwister-Logik).

about.html.astro, impressum.html.astro, datenschutz.html.astro:
menu-Slot mit BlogNav befüllt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoCLAUDE.md: Fehlende Architektur-Entscheidungen aus Steps 9/10/11 ergänzt
Kai Moritz [Sat, 6 Jun 2026 13:23:46 +0000 (13:23 +0000)]
CLAUDE.md: Fehlende Architektur-Entscheidungen aus Steps 9/10/11 ergänzt

- CSS-Abschnitt: Referenz auf entferntes themes/hugo-juplo korrigiert
  (SCSS-Quellen liegen jetzt in src/styles/)
- Standard-Entscheidungen: public/, RSS via @astrojs/rss ergänzt
- Eigene Entscheidungen: RSS-Routing-Struktur, src/lib/posts.ts,
  SEO/OG-Tags in BaseLayout, Hugo-Cleanup-Umfang dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoDocument Astro design decisions in CLAUDE.md; fix branch name
Kai Moritz [Sat, 6 Jun 2026 11:22:47 +0000 (11:22 +0000)]
Document Astro design decisions in CLAUDE.md; fix branch name

Adds a 'Astro-Implementierung: Design- und Architektur-Entscheidungen'
section that records all non-trivial decisions made during the migration:
- CSS pre-compilation via separate sass step (not Astro built-in)
- Split taxonomy URL structure matching Hugo's output
- BlogNav as an explicit TypeScript state machine (vs. Hugo's recursive
  template partial)
- URL compatibility via frontmatter 'url' field
- Word count / reading time via inline string manipulation
- Summary extraction from raw Markdown body
- .html suffix routing via double-extension file naming
- Standalone pages without navigation (documented as open issue)

Also corrects the branch name in Arbeitsregeln from content--via-hugo
to content--via-astro.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoAdd README.md with Astro dev/build quickstart and project structure
Kai Moritz [Sat, 6 Jun 2026 11:21:04 +0000 (11:21 +0000)]
Add README.md with Astro dev/build quickstart and project structure

Documents how to start the dev server, run the static build, and
explains project-specific conventions (CSS pre-compilation, .html
page routing, Content Collections glob loader).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 11: Hugo-Content und Themes aus Astro-Branch entfernen
Kai Moritz [Sat, 6 Jun 2026 13:20:04 +0000 (13:20 +0000)]
Step 11: Hugo-Content und Themes aus Astro-Branch entfernen

Das Astro-Projekt verwaltet seinen Content in src/content/blog/.
Die Hugo-spezifischen Verzeichnisse werden nicht mehr benötigt:

- content/ (1288 Dateien): Hugo-Content-Struktur; Blog-Artikel bereits
  nach src/content/blog/ migriert, Standalone-Seiten als Astro-Pages
  implementiert
- themes/PaperMod/: Ungenutztes Hugo-Theme (nie als aktives Theme
  konfiguriert, nur als Fallback vorhanden)
- themes/hugo-juplo: Hugo-juplo-Submodule; SCSS-Quellen wurden bereits
  nach src/styles/ kopiert (Schritt 7), Theme-Layouts durch Astro-
  Komponenten ersetzt
- .gitmodules: Submodule-Referenz auf hugo-juplo entfernt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 11: Hugo-Konfigurationsdateien entfernen
Kai Moritz [Sat, 6 Jun 2026 13:18:06 +0000 (13:18 +0000)]
Step 11: Hugo-Konfigurationsdateien entfernen

Entfernt aus dem Astro-Branch:
- hugo.yaml (Hugo-Konfiguration, nicht mehr benötigt)
- archetypes/default.md (Hugo-Archetyp für neue Content-Dateien)
- inventory.md (Migrations-Analyse-Dokument aus Schritt 1)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 9/11: RSS-Feeds, SEO-Meta-Tags, shared helpers in lib/posts.ts
Kai Moritz [Sat, 6 Jun 2026 13:13:16 +0000 (13:13 +0000)]
Step 9/11: RSS-Feeds, SEO-Meta-Tags, shared helpers in lib/posts.ts

RSS-Feeds (Step 9):
- /blog/index.xml — Blog-Gesamt-Feed
- /blog/archive/index.xml — Archiv-Feed
- /blog/archive/YYYY/index.xml — Jahres-Feeds (dynamisch)
- /categories/TERM/index.xml — Kategorie-Feeds (dynamisch)
- /tags/TERM/index.xml — Tag-Feeds (dynamisch)

SEO-Meta-Tags (Step 9):
- BaseLayout: description-Prop, <meta name="description">, og:title,
  og:description, og:type, og:url
- [slug].astro: übergibt getSummary(post.body) als description

Shared Helpers (Step 11 Refactoring):
- src/lib/posts.ts: getAllPosts(), postUrl(), getSummary(), wordCount()
- Alle Seiten importieren diese Helpers statt lokale Kopien zu haben
- BlogNav, [slug], blog/index, archive/index, [year], categories/[term],
  tags/[term], index.astro migriert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 10: static/ nach public/ verschieben (Hugo → Astro Assets-Migration)
Kai Moritz [Sat, 6 Jun 2026 11:35:31 +0000 (11:35 +0000)]
Step 10: static/ nach public/ verschieben (Hugo → Astro Assets-Migration)

In Hugo liegt statischer Content unter static/, in Astro unter public/.
Alle Unterverzeichnisse werden mit git mv verschoben, damit git die
Renames erkennt und die Dateihistorie erhalten bleibt.

Verschoben:
- static/hibernate4-maven-plugin-1.0.3..1.1.1/ → public/
- static/projects/hibernate-maven-plugin/    → public/projects/
- static/wp-uploads/                         → public/wp-uploads/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoAdd homepage and standalone pages; fix BlogNav off-state logic
Kai Moritz [Sat, 6 Jun 2026 11:20:29 +0000 (11:20 +0000)]
Add homepage and standalone pages; fix BlogNav off-state logic

- Implement src/pages/index.astro: full BaseLayout with pack/bg/cf
  panels, 5 recent posts, and EU-funding marginalcontent aside
- Add src/pages/about.html.astro, impressum.html.astro,
  datenschutz.html.astro with content from Hugo _index.html sources
- Fix BlogNav: Archive/Categories/Tags now get 'off' class when the
  current page is not in any blog section (e.g. homepage, about page);
  previously they were only off on taxonomy-term pages
- Remove Projects/About subtree from BlogNav submenu — Hugo does not
  render them either, because the tree.html partial filters them out

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 8: Taxonomie-Seiten (Kategorien und Tags)
Kai Moritz [Sat, 6 Jun 2026 10:45:54 +0000 (10:45 +0000)]
Step 8: Taxonomie-Seiten (Kategorien und Tags)

Vier neue Seiten für das Blog-Taxonomie-System:
- /blog/categories/ — Übersicht aller Kategorien
- /categories/[term]/ — Artikel einer Kategorie (mit Wortanzahl/Lesezeit)
- /blog/tags/ — Übersicht aller Tags
- /tags/[term]/ — Artikel eines Tags (mit Wortanzahl/Lesezeit)

Zugleich BlogNav überarbeitet: korrekte active/off-Zustände für
Taxonomy-Kontext (Archiv-Subtree wird nur bei onArchive/onBlog gerendert,
Category/Tag-Items erhalten nav-leaf-Klasse wenn nicht im Taxonomy-Kontext).

Entspricht Hugos categories/taxonomy.html und categories/term.html Layouts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoStep 6 (Abschluss): Blog-Listing-Seiten mit vollständigem Layout
Kai Moritz [Sat, 6 Jun 2026 10:15:45 +0000 (10:15 +0000)]
Step 6 (Abschluss): Blog-Listing-Seiten mit vollständigem Layout

blog/index, blog/archive/index und blog/archive/[year] ersetzen das
minimale Gerüst aus Schritt 3 durch das vollständige BaseLayout mit
Header, Breadcrumb, BlogNav-Sidebar und Footer.

Blog-Index zeigt 3 aktuelle Posts mit automatisch extrahierten Zusammen-
fassungen (erste Textpassage, ~350 Zeichen) und Browse-Abschnitte für
Jahr, Kategorie und Tag.

Archive-Index und Jahres-Archive listen Beiträge mit Datum, Wortanzahl
und Lesezeit auf – analog zur Hugo-Vorlage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoSchritt 7: SCSS/CSS aus Theme übernehmen und für Astro kompilieren
Kai Moritz [Sat, 6 Jun 2026 08:15:10 +0000 (08:15 +0000)]
Schritt 7: SCSS/CSS aus Theme übernehmen und für Astro kompilieren

SCSS-Quellen (screen.scss, print.scss, resurrection.css) aus themes/hugo-juplo/
nach src/styles/ kopiert. Kompilation über npm-Prebuild-Skript (sass CLI):
- src/styles/screen.scss → public/css/screen.css
- src/styles/print.scss → public/css/print.css
- src/styles/resurrection.css → public/css/resurrection.css (unverändert)

JS und statische Assets (fonts, img, favicon) aus Theme-Static nach public/ kopiert.
package.json: build:css-Script + prebuild/predev-Hooks hinzugefügt.
sass als devDependency hinzugefügt.

Deprecation-Warnings (@import, lighten(), globale Built-ins) unterdrückt —
das SCSS selbst bleibt unverändert (Schritt 11: Optimierungen).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoSchritt 6: Layout-Migration — BaseLayout + Blog-Navigation
Kai Moritz [Sat, 6 Jun 2026 07:50:57 +0000 (07:50 +0000)]
Schritt 6: Layout-Migration — BaseLayout + Blog-Navigation

Astro-native Umsetzung des Hugo-Layouts (identisches HTML-Markup):

BaseLayout.astro:
- Gerüst: #page > header#header, #breadcrumb, main.content.cf, footer#footer
- Inline-Script für Layout-Switcher (Classic/Resurrection/None via localStorage)
- Named Slots: breadcrumb, article, menu, marginalcontent, footerlinks

BlogNav.astro:
- Exakt gleiches Markup wie menu/blog.html (inkl. CSS-Klassen):
  - Section-Menu: m + m-selected auf aktivem Abschnitt
  - Submenu: s, sub, off, selected, nav-leaf identisch zu Hugo
  - Blog-Post-URLs zählen als "im Archiv" (off-Verhalten korrekt)
  - Categories/Tags mit off-Klasse auf Post-Seiten

Breadcrumb.astro, TaxonomyAside.astro, PostMeta.astro als eigenständige
Komponenten. src/pages/[slug].astro nutzt das vollständige Layout.

HTML-Vergleich mit Hugo-Referenz bestanden (bidirectional-association-post).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoSchritt 5: Shortcodes durch Astro-Komponenten ersetzen
Kai Moritz [Sat, 6 Jun 2026 07:43:23 +0000 (07:43 +0000)]
Schritt 5: Shortcodes durch Astro-Komponenten ersetzen

Mapping Hugo-Shortcodes → Astro:

| Shortcode             | Astro-Äquivalent                          |
|-----------------------|-------------------------------------------|
| {{< recent-posts >}}  | src/components/RecentPosts.astro          |
| {{< marginalcontent-md >}} | Layout-Slot (kommt in Schritt 6)    |
| {{< marginalcontent-html >}} | Layout-Slot (kommt in Schritt 6)  |
| {{< footerlinks >}}   | Layout-Prop/Slot (kommt in Schritt 6)     |

RecentPosts.astro: zeigt die 5 neuesten Blog-Posts (entspricht
dem Hugo-Shortcode recent-posts.html). Wird in der Startseite verwendet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoSchritt 4: Blog-Routing vollständig und stabil
Kai Moritz [Sat, 6 Jun 2026 07:42:50 +0000 (07:42 +0000)]
Schritt 4: Blog-Routing vollständig und stabil

/blog/archive/-Übersichtsseite hinzugefügt.
Routing-Inventur: 65 Seiten werden korrekt generiert:
- 54 Blog-Posts unter Original-Flat-URLs (aus url:-Frontmatter)
- 8 Jahresarchive (/blog/archive/YYYY/)
- /blog/archive/ Übersicht
- /blog/ Index
- / Startseite (Platzhalter)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoSchritt 3: Blog-Inhalte nach src/content/blog/ migrieren
Kai Moritz [Sat, 6 Jun 2026 07:42:04 +0000 (07:42 +0000)]
Schritt 3: Blog-Inhalte nach src/content/blog/ migrieren

75 Blog-Posts aus content/blog/archive/YYYY/ nach src/content/blog/YYYY/ verschoben.
Hugo-spezifische _index.md/_index.html-Dateien entfernt (werden durch Astro-Routes ersetzt).

Astro Content Collection eingerichtet:
- src/content.config.ts: Schema mit glob-Loader (Astro 6)
- Robuste Verarbeitung von null-Werten bei categories/tags
- Draft-Erkennung (String "true" und Boolean)

Minimale Routing-Grundlage erstellt:
- src/pages/[slug].astro: Einzelne Blog-Posts unter Flat-URL aus url:-Frontmatter
- src/pages/blog/index.astro: Blog-Index mit letzten Posts + Jahresüberblick
- src/pages/blog/archive/[year].astro: Jahres-Archiv-Seiten

Build-Ergebnis: 64 Seiten (54 Posts ohne Drafts, 8 Jahresarchive, Blog-Index, Homepage).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoSchritt 2: Astro-Projekt initialisieren
Kai Moritz [Fri, 5 Jun 2026 20:59:23 +0000 (20:59 +0000)]
Schritt 2: Astro-Projekt initialisieren

Minimales Astro 6.4.4-Projekt (minimal-Template) im Website-Repository angelegt:
- astro.config.mjs mit site-URL und trailingSlash-Konfiguration
- package.json (Name: juplo, Astro als einzige Dependency)
- tsconfig.json (strict)
- src/pages/index.astro als Platzhalter-Startseite

Hugo-Build-Output (public/) aus .gitignore entfernt, da public/ für Astro
das Static-Assets-Verzeichnis wird; Build-Output geht nach dist/.
node_modules/, dist/ und .astro/ in .gitignore aufgenommen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoSchritt 1: Funktionsinventar für Hugo → Astro Migration
Kai Moritz [Fri, 5 Jun 2026 20:49:11 +0000 (20:49 +0000)]
Schritt 1: Funktionsinventar für Hugo → Astro Migration

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 <noreply@anthropic.com>
5 weeks agoTheme-Submodule auf aktuellen Stand bringen (9 neue Commits) content--via-hugo
Kai Moritz [Fri, 5 Jun 2026 20:42:37 +0000 (20:42 +0000)]
Theme-Submodule auf aktuellen Stand bringen (9 neue Commits)

Erfasst Theme-Commits von bd8c879e bis 778d0fd6:
- SCSS-Konsolidierung (base.scss → screen.scss, statische CSS entfernt)
- Layout-Weiche: Classic / Resurrection / None
- Resurrection-Layout: SCSS durch natives CSS ersetzt
- Vollständige Sitemap-Navigation (nav-leaf, strong-Breadcrumb, blog.html-Partial)
- Fix Classic-Layout-Regressionen nach strong-Einführung
- Spec-Dokumentation für Navigations-Konzept und Classic-Bildsprache

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoCLAUDE.md: Submodule-Pointer-Updates nur nach Rückfrage
Kai Moritz [Fri, 5 Jun 2026 15:59:10 +0000 (15:59 +0000)]
CLAUDE.md: Submodule-Pointer-Updates nur nach Rückfrage

Neue Regel: Der Zeiger auf den Theme-Commit darf nicht automatisch
in Commits des Haupt-Repos einfließen — nur bei inhaltlich
zusammengehöriger Änderung und nur nach expliziter Rückfrage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoCLAUDE.md: UI-Workflow ergänzt
Kai Moritz [Fri, 5 Jun 2026 15:58:55 +0000 (15:58 +0000)]
CLAUDE.md: UI-Workflow ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoprettify.js vollständig entfernen: Code-Blöcke auf plain <pre> umstellen
Kai Moritz [Thu, 4 Jun 2026 22:15:41 +0000 (22:15 +0000)]
prettify.js vollständig entfernen: Code-Blöcke auf plain <pre> umstellen

Die fünf facebook-utils-2.5.0-Seiten mit echten Code-Beispielen
(debugging, configuration, force, pitfalls, skip) verwendeten
<div class="prettyprint"><pre>-Wrapper für Google Code Prettify.
Diese werden zu einfachem <pre> konvertiert, das ohne JavaScript
korrekt dargestellt wird.

Damit ist prettify.js auf der gesamten Site nicht mehr erforderlich.
Das Theme entfernt in dem angezogenen Commit static/js/prettify.js
sowie alle Script- und CSS-Einbindungen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoEntferne veraltete prettify.js-Referenzen aus Maven-generierten Seiten
Kai Moritz [Thu, 4 Jun 2026 21:58:42 +0000 (21:58 +0000)]
Entferne veraltete prettify.js-Referenzen aus Maven-generierten Seiten

onload="prettyPrint()" und überflüssige <script src="/js/prettify.js">-Tags
aus 32 Maven-generierten Projektseiten (scannotation-1.0.4, facebook-utils-2.5.0)
entfernt. Diese Seiten enthielten keinen Code mit class="prettyprint", der
Aufruf lief also ins Leere.

Fünf Seiten mit echtem Code (facebook-utils-2.5.0: debugging, configuration,
force, pitfalls, skip) bleiben unverändert – sie binden prettify.js selbst
ein und funktionieren weiterhin.

Zieht gleichzeitig den Theme-Commit ein, der prettify.js aus dem globalen
Head-Template entfernt (Hugo nutzt Chroma für Syntax-Highlighting).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agofix: security.allowContent für Hugo 0.162.0 ergänzt
Kai Moritz [Wed, 3 Jun 2026 23:00:25 +0000 (23:00 +0000)]
fix: security.allowContent für Hugo 0.162.0 ergänzt

Hugo 0.162.0 blockiert HTML-Inhaltsdateien standardmäßig über die neue
Sicherheitsrichtlinie. allowContent ist eine Allowlist — das Pattern
"^text/" erlaubt text/markdown und text/html (benötigt u.a. für die
generierten Maven-Site-HTML-Dateien in projects/).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoContent-Migration: Statische Inhalte aus Theme-Submodule ins Hauptrepo verschoben
Kai Moritz [Wed, 3 Jun 2026 22:20:12 +0000 (22:20 +0000)]
Content-Migration: Statische Inhalte aus Theme-Submodule ins Hauptrepo verschoben

Alle Content-Dateien aus themes/hugo-juplo/content/ wurden ins Hauptrepo
unter content/ verschoben:
- About-Sektion (about/, about/impressum/ mit allen Unterseiten)
- Blog-Sektion-Index (blog/_index.html)
- Blog-Archiv-Index (blog/archive/_index.html)
- Taxonomy-Indexseiten (categories/_index.html, tags/_index.html)

Im Theme-Submodule wurden als Ersatz minimale Platzhalter in der
exampleSite angelegt (about/, about/impressum/, blog/, blog/archive/,
categories/, tags/), damit das Theme weiterhin unabhängig vom Content-
Branch mit der exampleSite getestet werden kann.

Die exampleSite/hugo.yaml wurde ebenfalls von PaperMod-Parametern
bereinigt und um copyrightShort ergänzt (analog zur hugo.yaml im
Hauptrepo).

Ergebnis: Das Theme enthält jetzt ausschließlich Layouts, Assets,
Shortcodes und exampleSite – keine Produktionsinhalte mehr.

Außerdem: blog/_index.md: Duplikat entfernt

Die Blog-Sektion wurde doppelt definiert: einmal in content/blog/_index.md
(dieses Repo) und einmal in themes/hugo-juplo/content/blog/_index.html
(Theme). Hugo verwendet in diesem Fall die Datei im Hauptrepo (Override-
Mechanik), die Theme-Datei wurde ignoriert.

Da beide Dateien identischen Inhalt hatten (title: Blog, weight: 10),
wird die Duplikatdatei im Hauptrepo entfernt. Die Theme-Datei übernimmt
die Sektionsdefinition und wird beim geplanten Content-Migration-Schritt
ins Hauptrepo verschoben.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoDiverse Korrekturen & Verbesserungen des hugo-juplo Themes
Kai Moritz [Wed, 3 Jun 2026 22:18:03 +0000 (22:18 +0000)]
Diverse Korrekturen & Verbesserungen des hugo-juplo Themes

- .Scratch durch .Store ersetzt; Copyright-Jahr in baseof.html dynamisch
- Altlasten entfernt: dist/, Debug-Partials, Backup-Template, Legacy-Kommentare
- 3 Bugs behoben: Breadcrumb-Tags, CSS-Klasse Off-Sektion, Head-Meta

5 weeks agohugo.yaml: PaperMod-Parameter und ungenutztes menu.main entfernt
Kai Moritz [Wed, 3 Jun 2026 22:19:34 +0000 (22:19 +0000)]
hugo.yaml: PaperMod-Parameter und ungenutztes menu.main entfernt

Entfernt wurden alle Parameter, die ausschließlich für das PaperMod-Theme
gelten und vom hugo-juplo-Theme ignoriert werden:
disableThemeToggle, showShareButtons, showWordCount, showReadingTime,
showToc, showBreadCrumbs, showCodeCopyButtons, hideFooter,
assets.favicon, assets.disableHLJS.

Ebenfalls entfernt: menu.main (categories/tags/archives) – das Theme
baut die Navigation aus MainSections und der Seitenhierarchie, nicht
aus der hugo.yaml-Menükonfiguration.

Neu hinzugefügt: params.copyrightShort: mo – wird in baseof.html für
die Copyright-Zeile verwendet (Kurzname, getrennt vom vollen Namen in
params.author.name und dem RSS/Feed-Copyright in copyright:).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoDokumentation der Projektstruktur, Template-Architektur und Menü-Konzept
Kai Moritz [Wed, 3 Jun 2026 22:17:48 +0000 (22:17 +0000)]
Dokumentation der Projektstruktur, Template-Architektur und Menü-Konzept

Ergänzt CLAUDE.md im Hauptrepo mit einem vollständigen Abschnitt zur
technischen Projektstruktur, die aus der Ist-Analyse hervorgegangen ist:
Template-Aufbau, Block-Override-Tabelle, Menü-Konzept (SEO-Sitemap),
Content-Architektur (Zielzustand). Vorhandene Abschnitte wurden
konsolidiert und gestrafft.

Im Theme-Submodule wurde erstmals eine CLAUDE.md angelegt mit
Verzeichnisstruktur, Menü-System-Beschreibung und Shortcode-Übersicht.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 weeks agoWIP:hugo-juplo-theme
Kai Moritz [Sun, 31 May 2026 14:48:45 +0000 (16:48 +0200)]
WIP:hugo-juplo-theme

2 months ago`hibernate-maven-plugin/1.0.3` mit sili neu generiert
Kai Moritz [Thu, 7 May 2026 22:14:41 +0000 (00:14 +0200)]
`hibernate-maven-plugin/1.0.3` mit sili neu generiert

2 months ago`hibernate-maven-plugin/1.0.4` mit sili neu generiert
Kai Moritz [Thu, 7 May 2026 21:41:26 +0000 (23:41 +0200)]
`hibernate-maven-plugin/1.0.4` mit sili neu generiert

2 months ago`hibernate-maven-plugin/1.0.5` mit sili neu generiert
Kai Moritz [Thu, 7 May 2026 21:33:40 +0000 (23:33 +0200)]
`hibernate-maven-plugin/1.0.5` mit sili neu generiert

2 months ago`hibernate-maven-plugin/1.1.0` mit sili neu generiert
Kai Moritz [Thu, 7 May 2026 21:27:45 +0000 (23:27 +0200)]
`hibernate-maven-plugin/1.1.0` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Mon, 4 May 2026 21:21:45 +0000 (23:21 +0200)]
WIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

2 months ago`hibernate-maven-plugin/1.1.1` mit sili neu generiert
Kai Moritz [Mon, 4 May 2026 20:48:53 +0000 (22:48 +0200)]
`hibernate-maven-plugin/1.1.1` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.0.0` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 17:13:48 +0000 (19:13 +0200)]
WIP:`hibernate-maven-plugin/2.0.0` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.0` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 17:09:00 +0000 (19:09 +0200)]
WIP:`hibernate-maven-plugin/2.1.0` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 13:49:44 +0000 (15:49 +0200)]
WIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 13:42:45 +0000 (15:42 +0200)]
WIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.0.0` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 12:55:46 +0000 (14:55 +0200)]
WIP:`hibernate-maven-plugin/2.0.0` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 12:53:15 +0000 (14:53 +0200)]
WIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Wed, 29 Apr 2026 11:36:08 +0000 (13:36 +0200)]
WIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert
Kai Moritz [Sun, 19 Apr 2026 15:11:51 +0000 (17:11 +0200)]
WIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert

2 months agoWIP:hugo-juplo-theme
Kai Moritz [Wed, 29 Apr 2026 11:22:59 +0000 (13:22 +0200)]
WIP:hugo-juplo-theme

2 months ago`hibernate-maven-plugin/2.0.0` mit sili neu generiert
Kai Moritz [Wed, 22 Apr 2026 07:24:07 +0000 (09:24 +0200)]
`hibernate-maven-plugin/2.0.0` mit sili neu generiert

2 months ago`hibernate-maven-plugin/2.1.0` mit sili neu generiert
Kai Moritz [Wed, 22 Apr 2026 07:13:48 +0000 (09:13 +0200)]
`hibernate-maven-plugin/2.1.0` mit sili neu generiert

2 months agoAlias für den Blog-Artikel mit der ursprünglichen Ankündigung des `hibernate-maven...
Kai Moritz [Sun, 19 Apr 2026 15:18:15 +0000 (17:18 +0200)]
Alias für den Blog-Artikel mit der ursprünglichen Ankündigung des `hibernate-maven-plugin`

2 months agoWIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Sun, 19 Apr 2026 15:10:06 +0000 (17:10 +0200)]
WIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

2 months agoWIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert
Kai Moritz [Sun, 19 Apr 2026 15:08:25 +0000 (17:08 +0200)]
WIP:`hibernate-maven-plugin/2.1.1` mit sili neu generiert

2 months agoWIP:experiment:mvnsite
Kai Moritz [Sun, 19 Apr 2026 15:00:57 +0000 (17:00 +0200)]
WIP:experiment:mvnsite

2 months ago`hibernate-maven-plugin/2.1.1` mit sili neu generiert
Kai Moritz [Sun, 19 Apr 2026 14:44:40 +0000 (16:44 +0200)]
`hibernate-maven-plugin/2.1.1` mit sili neu generiert

2 months agoWIP:hugo-juplo-theme
Kai Moritz [Sun, 19 Apr 2026 14:22:43 +0000 (16:22 +0200)]
WIP:hugo-juplo-theme

2 months agoWIP:Cards auf Home
Kai Moritz [Sun, 19 Apr 2026 09:43:07 +0000 (11:43 +0200)]
WIP:Cards auf Home

2 months agoReihenfolge der Top-Level-Sektionen festgelegt
Kai Moritz [Sat, 18 Apr 2026 15:45:40 +0000 (17:45 +0200)]
Reihenfolge der Top-Level-Sektionen festgelegt

2 months agoWIP:projects
Kai Moritz [Sat, 18 Apr 2026 15:41:02 +0000 (17:41 +0200)]
WIP:projects

2 months agoWIP:Cards auf Home
Kai Moritz [Sat, 18 Apr 2026 15:40:32 +0000 (17:40 +0200)]
WIP:Cards auf Home

2 months agoTags und Categorien der Blog-Posts sauber getrennt
Kai Moritz [Sat, 18 Apr 2026 15:25:36 +0000 (17:25 +0200)]
Tags und Categorien der Blog-Posts sauber getrennt

2 months agoWIP:Cards auf Home
Kai Moritz [Sat, 18 Apr 2026 14:45:11 +0000 (16:45 +0200)]
WIP:Cards auf Home

2 months agoWIP:hugo-juplo-theme
Kai Moritz [Sat, 18 Apr 2026 14:44:12 +0000 (16:44 +0200)]
WIP:hugo-juplo-theme

2 months agoWIP:hugo-juplo-theme
Kai Moritz [Fri, 17 Apr 2026 18:52:50 +0000 (20:52 +0200)]
WIP:hugo-juplo-theme

2 months agoWIP:Cards auf Home
Kai Moritz [Fri, 17 Apr 2026 18:49:31 +0000 (20:49 +0200)]
WIP:Cards auf Home

2 months agoHome heißt Home
Kai Moritz [Fri, 17 Apr 2026 18:49:13 +0000 (20:49 +0200)]
Home heißt Home

2 months agoWIP:home-_index
Kai Moritz [Fri, 17 Apr 2026 18:47:55 +0000 (20:47 +0200)]
WIP:home-_index

2 months agoWIP:outputs-unnötig
Kai Moritz [Fri, 17 Apr 2026 12:21:25 +0000 (14:21 +0200)]
WIP:outputs-unnötig

2 months ago`disablePathToLower` aktiviert, sonst werden SNAPSHOT-Versionen verfälscht
Kai Moritz [Fri, 17 Apr 2026 11:38:32 +0000 (13:38 +0200)]
`disablePathToLower` aktiviert, sonst werden SNAPSHOT-Versionen verfälscht

2 months agoWIP:site-config--anpassung-an-themeexample
Kai Moritz [Fri, 17 Apr 2026 11:24:25 +0000 (13:24 +0200)]
WIP:site-config--anpassung-an-themeexample

3 months agoWIP:hugo-juplo-theme
Kai Moritz [Thu, 9 Apr 2026 17:31:51 +0000 (19:31 +0200)]
WIP:hugo-juplo-theme

3 months agoWIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Thu, 9 Apr 2026 17:29:58 +0000 (19:29 +0200)]
WIP:`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

3 months ago`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert
Kai Moritz [Thu, 9 Apr 2026 17:05:12 +0000 (19:05 +0200)]
`hibernate-maven-plugin/2.1.2-SNAPSHOT` mit sili neu generiert

4 months agoPosts entsprechend der korrigierten Veröffentlichung verschoben
Kai Moritz [Fri, 20 Feb 2026 14:11:23 +0000 (15:11 +0100)]
Posts entsprechend der korrigierten Veröffentlichung verschoben

4 months agoPublikations-Datum der Artikel korrigiert
Kai Moritz [Fri, 20 Feb 2026 13:58:56 +0000 (14:58 +0100)]
Publikations-Datum der Artikel korrigiert

* Die automatische Umformatierung hatte offensichtlich das Datum der
  letzten Aktualisierung der Posts als Datum der Veröffentlichung
  übernommen.
* Dies wurde jetzt auf Basis des (ohne Formatierung) noch erreichbaren
  Wordpress-Blogs korrigiert.

4 months agoLinks zu Bildern korrigiert
Kai Moritz [Fri, 20 Feb 2026 13:10:02 +0000 (14:10 +0100)]
Links zu Bildern korrigiert

4 months agoIn-Page-Links über Anchor's repariert
Kai Moritz [Fri, 20 Feb 2026 12:25:15 +0000 (13:25 +0100)]
In-Page-Links über Anchor's repariert

4 months agoInhaltliche Fehler im Post `A Perfect Outline` korrigiert
Kai Moritz [Fri, 20 Feb 2026 11:38:26 +0000 (12:38 +0100)]
Inhaltliche Fehler im Post `A Perfect Outline` korrigiert

4 months agoCode-Listings von Hand nachkorrigiert
Kai Moritz [Fri, 20 Feb 2026 11:37:36 +0000 (12:37 +0100)]
Code-Listings von Hand nachkorrigiert

4 months agoCode-Listings in den Konvertierten Wordpress-Posts korrigiert
Kai Moritz [Fri, 13 Feb 2026 13:23:57 +0000 (14:23 +0100)]
Code-Listings in den Konvertierten Wordpress-Posts korrigiert

4 months agoWIP:Konfiguration für Theme hugo-juplo angepasst
Kai Moritz [Fri, 13 Feb 2026 13:18:25 +0000 (14:18 +0100)]
WIP:Konfiguration für Theme hugo-juplo angepasst

4 months agoCode-Listings mit einem von ChatGPT erzeugtem akw-Skript korrigiert
Kai Moritz [Fri, 6 Feb 2026 18:34:06 +0000 (19:34 +0100)]
Code-Listings mit einem von ChatGPT erzeugtem akw-Skript korrigiert

```bash
for i in `find content/blog/archive/ -type f`; do awk 'BEGIN {
    inblock = 0
}

{
    line = $0

    # START eines kaputten Codeblocks:
    # - beginnt (evtl. eingerückt) mit genau einem Backtick
    # - enthält danach KEINEN weiteren Backtick
    if (!inblock && match(line, /^[[:space:]]*`[^`]*$/)) {
        inblock = 1

        # führende Spaces + erstes Backtick entfernen
        sub(/^[[:space:]]*`/, "", line)

        print "```"
        print line
        next
    }

    # ENDE eines kaputten Codeblocks:
    # Zeile enthält nur ein Backtick (evtl. eingerückt)
    if (inblock && match(line, /^[[:space:]]*`[[:space:]]*$/)) {
        inblock = 0
        print "```"
        next
    }

    # Alles andere unverändert ausgeben
    print line
}
' $i | sponge $i; done
```

4 months agoWIP:hugo-juplo-theme
Kai Moritz [Fri, 6 Feb 2026 17:31:06 +0000 (18:31 +0100)]
WIP:hugo-juplo-theme

5 months agoWIP:Blog-styl-rewrite
Kai Moritz [Fri, 6 Feb 2026 17:28:06 +0000 (18:28 +0100)]
WIP:Blog-styl-rewrite

5 months agoWIP:hugo-juplo-theme
Kai Moritz [Fri, 6 Feb 2026 17:17:29 +0000 (18:17 +0100)]
WIP:hugo-juplo-theme

6 months agoJahres-Sektionen des Blogs in Untersektion `Archive` verschoben
Kai Moritz [Sun, 28 Dec 2025 15:14:12 +0000 (16:14 +0100)]
Jahres-Sektionen des Blogs in Untersektion `Archive` verschoben

Verwendetes Skript:

----
mkdir content/blog/archive
for i in `ls -d content/blog/* | grep 2`
do
  git mv $i content/blog/archive/
done
----

6 months agoSwitched to the theme `hugo-juplo`
Kai Moritz [Sun, 21 Dec 2025 19:37:56 +0000 (20:37 +0100)]
Switched to the theme `hugo-juplo`

6 months agoRemoved the generated layout-elements in `layout`
Kai Moritz [Sat, 20 Dec 2025 22:25:28 +0000 (23:25 +0100)]
Removed the generated layout-elements in `layout`

6 months agoBlog-Artikel nach Jahren in Unter-Sektionen sortiert
Kai Moritz [Fri, 19 Dec 2025 10:07:10 +0000 (11:07 +0100)]
Blog-Artikel nach Jahren in Unter-Sektionen sortiert

Verwendetes Skript:

----
for i in $(find content/blog -type f)
do
  YEAR=$(cat $i|grep '^date:'| sed -e's/^[^"]*"//;s/-.*$//')
  echo $YEAR $(basename $i)
  if [[ "$YEAR" == "" ]]
  then
    echo Überspringe $i
  else
    mkdir -p content/blog/$YEAR
    echo -e "---\ntitle: Archiv - ${YEAR}\nlinkTitle: ${YEAR}\nlayout: year}\n---" > content/blog/$YEAR/_index.md
    git mv $i content/blog/$YEAR/$(basename $i)
  fi
done
----

6 months agoWIP:linkTitle
Kai Moritz [Fri, 19 Dec 2025 08:26:08 +0000 (09:26 +0100)]
WIP:linkTitle

6 months agoWIP:hugo:konfiguriert
Kai Moritz [Fri, 19 Dec 2025 00:19:47 +0000 (01:19 +0100)]
WIP:hugo:konfiguriert

6 months agoRemoved generated `author`-entry from Front Matter
Kai Moritz [Fri, 19 Dec 2025 00:18:24 +0000 (01:18 +0100)]
Removed generated `author`-entry from Front Matter

6 months agoWIP:Pfade von juplo.de...
Kai Moritz [Thu, 18 Dec 2025 22:21:36 +0000 (23:21 +0100)]
WIP:Pfade von juplo.de...