Datums-Marker >> (Zieldatum) / << (Startdatum) + User.locale-Verdrahtung #152

Closed
opened 2026-07-20 00:15:49 +02:00 by fable-5 · 1 comment
Collaborator

Ziel

>>dd.mm.yyyy (Zieldatum) und <<dd.mm.yyyy (Startdatum) werden strukturierte Inline-Marker; die Anzeige folgt der Spracheinstellung des Nutzers.

Umsetzungsskizze

  • EIN Inline-Atom date_marker, Attrs {kind: 'start'|'due', date: 'YYYY-MM-DD'} (schema.ts, markdown.ts, html.ts, plain-text.ts; Extraktor dates.ts für spätere Nutzung durch die Aufgabenübersicht).
  • Markdown kanonisch ISO (>>2026-12-31) — Locale-Formate wären mehrdeutig (dd.mm vs. mm.dd) und brechen den Roundtrip; der Parser akzeptiert beim Import zusätzlich dd.mm.yyyy (Kulanz), serialisiert aber immer ISO.
  • Eingabe: TipTap-InputRule (>>/<< + Datum in dd.mm.yyyy oder ISO + Wortgrenze → Node) plus kleines Date-Picker-Popover beim Tippen (Autocomplete-Muster).
  • Anzeige: Intl.DateTimeFormat(i18n.language, {dateStyle:'medium'}) (bestehendes Muster PageStatusBar.tsx); TipTap-Node apps/web/src/editor/nodes/date-marker.tsx.
  • Teilaufgabe User.locale verdrahten: User.locale existiert im Prisma-Schema, ist aber im Web-i18n nicht angebunden (apps/web/src/i18n/index.ts, nur querystring/navigator). Nach Login user.locale als höchste Detection-Priorität; Profil-Feld in den Einstellungen (PATCH-Endpoint prüfen/ergänzen).

Akzeptanzkriterien

  • Tippen von >>31.12.2026 (oder ISO) erzeugt den Zieldatum-Node; Markdown serialisiert >>2026-12-31.
  • Anzeige folgt der Nutzer-Locale (de: 31.12.2026); Roundtrip verlustfrei; ungültige Daten bleiben normaler Text.
  • Profil-Spracheinstellung wirkt auf die App-Sprache.

Bewusst nicht enthalten

Fälligkeits-Erinnerungen/Benachrichtigungen, Kalenderansichten.

## Ziel `>>dd.mm.yyyy` (Zieldatum) und `<<dd.mm.yyyy` (Startdatum) werden strukturierte Inline-Marker; die Anzeige folgt der Spracheinstellung des Nutzers. ## Umsetzungsskizze - EIN Inline-Atom `date_marker`, Attrs `{kind: 'start'|'due', date: 'YYYY-MM-DD'}` (`schema.ts`, `markdown.ts`, `html.ts`, `plain-text.ts`; Extraktor `dates.ts` für spätere Nutzung durch die Aufgabenübersicht). - Markdown kanonisch ISO (`>>2026-12-31`) — Locale-Formate wären mehrdeutig (dd.mm vs. mm.dd) und brechen den Roundtrip; der Parser akzeptiert beim Import zusätzlich `dd.mm.yyyy` (Kulanz), serialisiert aber immer ISO. - Eingabe: TipTap-InputRule (`>>`/`<<` + Datum in `dd.mm.yyyy` oder ISO + Wortgrenze → Node) plus kleines Date-Picker-Popover beim Tippen (Autocomplete-Muster). - Anzeige: `Intl.DateTimeFormat(i18n.language, {dateStyle:'medium'})` (bestehendes Muster `PageStatusBar.tsx`); TipTap-Node `apps/web/src/editor/nodes/date-marker.tsx`. - Teilaufgabe **User.locale verdrahten**: `User.locale` existiert im Prisma-Schema, ist aber im Web-i18n nicht angebunden (`apps/web/src/i18n/index.ts`, nur querystring/navigator). Nach Login `user.locale` als höchste Detection-Priorität; Profil-Feld in den Einstellungen (PATCH-Endpoint prüfen/ergänzen). ## Akzeptanzkriterien - Tippen von `>>31.12.2026` (oder ISO) erzeugt den Zieldatum-Node; Markdown serialisiert `>>2026-12-31`. - Anzeige folgt der Nutzer-Locale (de: 31.12.2026); Roundtrip verlustfrei; ungültige Daten bleiben normaler Text. - Profil-Spracheinstellung wirkt auf die App-Sprache. ## Bewusst nicht enthalten Fälligkeits-Erinnerungen/Benachrichtigungen, Kalenderansichten.
fable-5 added this to the M22 — Aufgaben milestone 2026-07-20 00:15:49 +02:00
Author
Collaborator

Umgesetzt in PR #158 (92a3b2f): Inline-Atom date_marker {kind: due|start, date: ISO}. Markdown kanonisch ISO (>>2026-12-31), Eingabe-Kulanz dd.mm.yyyy; Block-Guard vor blockquote haelt zeilenfuehrende >>Daten aus dem Zitat-Parser; ungueltige Kalenderdaten bleiben Text. InputRule beim Tippen (+Leerzeichen), Anzeige per Intl.DateTimeFormat in Nutzersprache, Ueberfaellig-Faerbung. Die User.locale-Verdrahtung existierte bereits (auth-context, #17). 6 Unit-Tests. BEWUSST NICHT drin: Date-Picker-Popover (Komfort, bei Bedarf nachruestbar).

Umgesetzt in PR #158 (92a3b2f): Inline-Atom date_marker {kind: due|start, date: ISO}. Markdown kanonisch ISO (>>2026-12-31), Eingabe-Kulanz dd.mm.yyyy; Block-Guard vor blockquote haelt zeilenfuehrende >>Daten aus dem Zitat-Parser; ungueltige Kalenderdaten bleiben Text. InputRule beim Tippen (+Leerzeichen), Anzeige per Intl.DateTimeFormat in Nutzersprache, Ueberfaellig-Faerbung. Die User.locale-Verdrahtung existierte bereits (auth-context, #17). 6 Unit-Tests. BEWUSST NICHT drin: Date-Picker-Popover (Komfort, bei Bedarf nachruestbar).
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#152
No description provided.