frontend: Günstigster-Pfad-Linie mit Stationspunkten + Nesting-Fix
- gestrichelte, geschwungene Petrol-Linie (Katmull-Rom) durch die Endknoten des Pfads; kräftig hinter den Knoten, abgetönte Kopie davor - blasse, große Stationspunkte nur an echten Blättern (U-Bahn-Plan) — macht durchquerte Fremd-/Zwischenknoten eindeutig als "nicht Endknoten" erkennbar - Linie + Punkte auch im SVG/PNG-Export (hinten/vorne-Schichtung) - Overlays liegen in #out, erben dessen CSS-zoom (Punkte /zoom umgerechnet); Neuzeichnung nach render() und applyLayout() - Beispiel erweitert: Frontend (M) -> PWA | Web+Nativ (Web[/]+Android+iOS) - Layout-Fix: all-of unter einer any-of-Alternative wird nur horizontal schmal transponiert gestapelt (ul.or>li.has-and>ul.and), sonst schob der breite Fächer Alternativknoten und Elternbaum weit nach rechts - Geist-Knoten-Label "Untergliederung fehlt" -> "…" (alle 9 Sprachen), die Erklärung bleibt im Tooltip; der lange Text verbreiterte gestapelte Zellen - SPEC §5/§9 und DECISIONS D18 nachgeführt, Notiz in frontend/CLAUDE.md Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c8f8160eca
commit
8e8c44bf9d
@@ -22,6 +22,16 @@ Diagramm rechts, Toggles für transponierte Ansicht und verworfene Elemente).
|
||||
`var(--or)` nur noch für UI-Akzente/Logo (SPEC §9, D15).
|
||||
- Extraktionsreihenfolge im Parser nicht umstellen: Kommentar → Zeichen/
|
||||
Status → URL → Größe → Tags (sonst kollidiert `@` in URLs).
|
||||
- Günstigster Pfad: `markCheapest()`/`cheapestCost()` markieren die nötigen
|
||||
Knoten (Klassen `cheap`, `cheap-leaf`); `drawCheapPath()` zeichnet nach jedem
|
||||
`render()` **und** nach `applyLayout()` zwei Overlay-SVGs in `#out` (hinten
|
||||
kräftige Linie, vorne abgetönte Kopie + Stationspunkte). Overlays erben den
|
||||
CSS-`zoom` von `#out`, Punkte in unskalierte `#out`-Koordinaten umrechnen
|
||||
(`/zoom`). `diagramToSvg()` zeichnet dieselbe Linie/Punkte nach (SPEC §9, D18).
|
||||
- Zerlegt eine any-of-Alternative selbst all-of, wird der Teilbaum **nur
|
||||
horizontal** schmal transponiert (`ul.or>li.has-and>ul.and`, siehe D18) —
|
||||
sonst schiebt der breite Fächer den Elternbaum nach rechts. Bei Layout-
|
||||
Umbauten dieses Nesting mitprüfen.
|
||||
- „verworfen" ist per Default ausgeblendet; Filterlogik steckt in
|
||||
`visibleChildren()` und muss bei Renderer-Umbauten erhalten bleiben.
|
||||
- Zustand wird im `localStorage` gehalten (noch kein Backend): `werkbaum-lang`
|
||||
|
||||
Reference in New Issue
Block a user