]> juplo.de Git - website/commit
BlogNav + projects: Code bereinigt und vereinfacht
authorKai Moritz <kai.milan.moritz@googlemail.com>
Sun, 14 Jun 2026 14:35:54 +0000 (14:35 +0000)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Sun, 14 Jun 2026 14:35:54 +0000 (14:35 +0000)
commite5b70514ed2529075a4f82951063a6b83e292211
tree2d5455d7e2c80784a0fa18907b202de2d5f64889
parent80c0ca316b72d12c2530d381582a16a8f5617f69
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>
src/components/BlogNav.astro
src/content.config.ts
src/lib/projects.ts