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>
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>
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>
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>
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.
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
# 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
```