⚙️ 🤖 Interaktiver Tages-Navigator (-i) mit Volltext + Allergen-Auflösung #1

Closed
opened 2026-06-22 10:57:45 +02:00 by holm · 1 comment
Owner
Dimension Bewertung Einschätzung
Aufwand █████░░░░░ Mittel — ~120 Zeilen interaktiver Layer + Parser-Anpassung
Nutzen ████████░░ Hoch — Kernwunsch: Tag wechseln, Menüs vollständig lesen
Bruchhäufigkeit ███░░░░░░░ Niedrig — TUI hängt nur an tput/read, stabil
Nachhaltigkeit ████████░░ Hoch — sauberer Modus statt amputiertem Scroller
Dringlichkeit █████░░░░░ Mittel — aktiver Wunsch, kein Blocker

Kontext

Der ursprüngliche -i/--tui-Modus war ein flacher Scroller (nur Viewport hoch/runter) und wurde in [ade5742] entfernt, weil er „nicht scrollte" — tatsächlich passte der Inhalt meist auf eine Seite, es gab nichts zu scrollen. Der flache Scroller hätte den eigentlichen Wunsch ohnehin nie erfüllt.

Eigentlicher Bedarf (Holm): innerhalb der Woche zwischen den Tagen wechseln und die Menüpunkte vollständig lesen — inkl. der Zusatzinformationen (Allergene/Zusatzstoffe), die im Default-Output aus Platzgründen wegfallen.

Abgrenzung Default ↔ interaktiv

Modus Verhalten
Default (stdout) bleibt unverändert: schmal, Breite fix 72, 1 Zeile/Gericht, bewusst gekürzt (Termux/Handy, Menü+Preis in 1 Zeile, pipe/less -R)
-i/--tui Tages-Navigator, Volltext, Wrap auf tput cols

Anforderungen interaktiver Modus

  • Navigation: [Spezial] [Frühstück] Mo Di Mi Do Fr Sa [Extras]h/l·←/→ wechselt Auswahl, t springt auf heute, r reload, q/Ctrl+C quit. Aktuelle Auswahl hervorgehoben, heutiger Tag markiert.
  • Body: gewähltes Gericht vollständig, gewrapped auf tput cols (Handy-Portrait ~40 Spalten berücksichtigen, Min-Breite-Clamp), Preis, [V]-Flag.
  • Allergen-/Zusatzstoff-Auflösung: <sup>-Codes (A–N, 1–13) je Gericht behalten und aus der Legende (tfoot.menu-card-notice) auflösen → unter dem Gericht ausgeschrieben anzeigen.

Parser-Änderungen

  • <sup>-Marker nicht mehr strippen (aktuell gsub(/<sup>[^<]*<\/sup>/, "", tmp)) → pro Gericht als separates Code-Feld führen. Default-Output ignoriert das Feld (bleibt schmal).
  • Legende aus tfoot.menu-card-notice in Code→Text-Map parsen.

Nicht-Ziele

  • Default-Output-Breite/Trunkierung ändern (ist Absicht).
  • Repo-Rename (-tui bleibt korrekt, da interaktiver Modus zurückkehrt).

🤖 angelegt von Claude v00 (API/Token holm)

| Dimension | Bewertung | Einschätzung | |---|---|---| | Aufwand | `█████░░░░░` | Mittel — ~120 Zeilen interaktiver Layer + Parser-Anpassung | | Nutzen | `████████░░` | Hoch — Kernwunsch: Tag wechseln, Menüs vollständig lesen | | Bruchhäufigkeit | `███░░░░░░░` | Niedrig — TUI hängt nur an `tput`/`read`, stabil | | Nachhaltigkeit | `████████░░` | Hoch — sauberer Modus statt amputiertem Scroller | | Dringlichkeit | `█████░░░░░` | Mittel — aktiver Wunsch, kein Blocker | ## Kontext Der ursprüngliche `-i/--tui`-Modus war ein **flacher Scroller** (nur Viewport hoch/runter) und wurde in [ade5742] entfernt, weil er „nicht scrollte" — tatsächlich passte der Inhalt meist auf eine Seite, es gab nichts zu scrollen. Der flache Scroller hätte den eigentlichen Wunsch ohnehin nie erfüllt. **Eigentlicher Bedarf** (Holm): innerhalb der Woche zwischen den Tagen wechseln und die Menüpunkte **vollständig** lesen — inkl. der Zusatzinformationen (Allergene/Zusatzstoffe), die im Default-Output aus Platzgründen wegfallen. ## Abgrenzung Default ↔ interaktiv | Modus | Verhalten | |---|---| | **Default (stdout)** | bleibt **unverändert**: schmal, **Breite fix 72**, 1 Zeile/Gericht, bewusst gekürzt (Termux/Handy, Menü+Preis in 1 Zeile, pipe/`less -R`) | | **`-i`/`--tui`** | Tages-Navigator, Volltext, Wrap auf `tput cols` | ## Anforderungen interaktiver Modus - **Navigation**: `[Spezial] [Frühstück] Mo Di Mi Do Fr Sa [Extras]` — `h/l`·←/→ wechselt Auswahl, `t` springt auf heute, `r` reload, `q`/Ctrl+C quit. Aktuelle Auswahl hervorgehoben, heutiger Tag markiert. - **Body**: gewähltes Gericht **vollständig**, gewrapped auf `tput cols` (Handy-Portrait ~40 Spalten berücksichtigen, Min-Breite-Clamp), Preis, `[V]`-Flag. - **Allergen-/Zusatzstoff-Auflösung**: `<sup>`-Codes (A–N, 1–13) je Gericht behalten und aus der Legende (`tfoot.menu-card-notice`) auflösen → unter dem Gericht ausgeschrieben anzeigen. ## Parser-Änderungen - `<sup>`-Marker **nicht mehr strippen** (aktuell `gsub(/<sup>[^<]*<\/sup>/, "", tmp)`) → pro Gericht als separates Code-Feld führen. Default-Output ignoriert das Feld (bleibt schmal). - Legende aus `tfoot.menu-card-notice` in Code→Text-Map parsen. ## Nicht-Ziele - Default-Output-Breite/Trunkierung ändern (ist Absicht). - Repo-Rename (`-tui` bleibt korrekt, da interaktiver Modus zurückkehrt). > 🤖 angelegt von Claude v00 (API/Token holm)
Author
Owner

Umgesetzt in feat/1-tages-navigator → dev (62b59dd).

  • -i/--tui: Tages-Navigator (Spezial · Frühstück · Mo–Sa · Extras), Wechsel ←/h·→/l, Start auf heute, t/r/q.
  • Gerichte vollständig, Wrap auf tput cols (Handy-tauglich).
  • Parser behält <sup>-Codes; Allergene/Zusatzstoffe via statischer LMIV-Map aufgelöst + dedupliziert.
  • Default-stdout unverändert (schmal, fix 72, Termux).

Verifiziert: Default-Output sauber, Dump mit Codes, Navigator rendert heute/Veggie/Extras korrekt.

🤖 angelegt von Claude v00 (API/Token holm)

Umgesetzt in `feat/1-tages-navigator` → dev (62b59dd). - `-i/--tui`: Tages-Navigator (Spezial · Frühstück · Mo–Sa · Extras), Wechsel `←/h`·`→/l`, Start auf heute, `t`/`r`/`q`. - Gerichte vollständig, Wrap auf `tput cols` (Handy-tauglich). - Parser behält `<sup>`-Codes; Allergene/Zusatzstoffe via statischer LMIV-Map aufgelöst + dedupliziert. - Default-stdout unverändert (schmal, fix 72, Termux). Verifiziert: Default-Output sauber, Dump mit Codes, Navigator rendert heute/Veggie/Extras korrekt. > 🤖 angelegt von Claude v00 (API/Token holm)
holm closed this issue 2026-06-22 11:06:20 +02:00
Sign in to join this conversation.
No description provided.