From 53c58913088fa4a33059ee3abd41ae09314b7af1 Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Sun, 21 Jun 2026 07:37:13 +0000 Subject: [PATCH] CLAUDE.md: Breadcrumb-Verhalten und Implementierung dokumentieren MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Invariante: Breadcrumb = kanonischer Nav-Pfad = fettgedruckter Pfad im Sitemap-Menü. Beschreibt Implementierung für alle drei Bereiche (About, Projects, Blog) und benennt Abweichungen explizit als Bugs. Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 411fd7c5..d62a2a56 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -54,6 +54,20 @@ Seiten befüllen die Slots mit ``. Den `menu`-Slot übernim --- +## Breadcrumb + +Der Breadcrumb (`#breadcrumb`) zeigt immer den **kanonischen Nav-Pfad** zur aktuellen Seite — also genau den Pfad, der im Sitemap-Menü fett/ausgewählt dargestellt wird. Beide müssen stets übereinstimmen. + +**Implementierung je Bereich:** + +- **About-Bereich:** `src/lib/about.ts` exportiert `aboutSection` (Baum) und `findAboutPath()`. Alle About-Page-Templates berechnen ihre Crumbs daraus — kein hartkodierter Pfad in den Templates. +- **Projects-Bereich:** `ProjectPage.astro` ruft `findCanonicalPath()` (aus `src/lib/projects.ts`) auf dem Nav-Baum der aktiven Projektversion auf. Alias-Nodes werden beim Traversieren übersprungen, sodass immer der kanonische (nicht der Schnellzugriffs-)Pfad erscheint. +- **Blog-Bereich:** Crumbs sind hartkodiert in den jeweiligen Page-Templates (`[slug].astro` etc.), da der Blog-Pfad (Home → Blog → Archive → Jahr → Post) eindeutig und unveränderlich ist. + +**Invariante:** Breadcrumb = fettgedruckter Pfad im Sitemap-Menü (kanonische Version). Abweichungen sind Bugs. + +--- + ## Sitemap-Menü Das Menü unter `nav#nav` ist bewusst am **Ende des HTML** platziert und dient primär als **SEO-Sitemap**: Es enthält den vollständigen Seitenbaum als verlinkten Baum, damit Suchmaschinen-Robots alle Seiten entdecken und crawlen können. Im Browser dient es gleichzeitig als sekundäre Navigation. -- 2.39.5