docs: record iCalendar parser decisions (T1)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
1878ba08ec
commit
2a25f1c34e
@@ -39,6 +39,32 @@ navigateur). L'extension facilite le geste (affiche l'image à glisser) mais ne
|
||||
l'automatise pas. L'affiche vient souvent de la newsletter Brevo, hors
|
||||
calendrier.
|
||||
|
||||
## 2026-06-30 — Parseur iCalendar (T1) : contrat `Event` figé + ical.js vendoré
|
||||
|
||||
Le flux brut est transformé en `Event[]` par une fonction pure
|
||||
`parserEvenements(flux, aujourdhui)` (`extension/evenements.js`), via **ical.js
|
||||
v2.2.1 vendoré** (approche 3 du brainstorm : pas de build, dépendance en `.js`).
|
||||
|
||||
**Contrat `Event` figé** (ne pas rouvrir sans accord) :
|
||||
`{ uid, titre, description, lieu, debut: Date, fin: Date, categories: string[],
|
||||
journeeEntiere: boolean }`. Champs texte coercés en `""` si absents (l'aval
|
||||
suppose des chaînes). Le défaut « café » du lieu est appliqué **en aval**, pas
|
||||
ici.
|
||||
|
||||
**Décisions tranchées :**
|
||||
- **`uid` seul, pas de `href`/`ETag`.** Le transport actuel (`?export`) renvoie
|
||||
un ICS concaténé sans `href`/`ETag` par événement. L'`UID` est la clé stable ;
|
||||
T2 résoudra l'adressage CalDAV par UID au moment du PUT. Le contrat n'est pas
|
||||
alourdi.
|
||||
- **`journeeEntiere` dès T1** (drapeau porté, comportement « heure exigée »
|
||||
différé à T3).
|
||||
- **Cas limites traités « au plus simple », différés à T3** : pas d'expansion
|
||||
RRULE (récurrents pris au DTSTART maître + filtre futur → un récurrent au
|
||||
maître **passé** disparaît, **trou assumé et documenté**), exceptions
|
||||
d'occurrence (`RECURRENCE-ID`) ignorées, journées entières au minuit local.
|
||||
- **Tri & message « 0 événement futur » hors parseur** : le parseur renvoie les
|
||||
événements **dans l'ordre du flux**, non triés (responsabilité de la liste).
|
||||
|
||||
## 2026-06-29 — Pré-remplissage par content script, pas par URL
|
||||
|
||||
Gravity Forms n'accepte `?input_X=` que si chaque champ est configuré
|
||||
|
||||
Reference in New Issue
Block a user