feat: Vigilance API officielle + tab 1 an + logo SVG + map à 5xl
Some checks are pending
Deploy info-canicule / deploy (push) Waiting to run

1. lib/vigilance.ts : provider Météo France officielle via DPVigilance/v1
   /cartevigilance/encours. Map vers VigilanceAlert (1 par dept × phen × J/J1)
   en prenant phenomenon_max_color_id (pire de la journée). Filtre les domains
   non-dept (FRA national, sub-côtes XX10, etc).
   - Auto-pick : MF si key dispo, sinon opendatasoft. Override VIGILANCE_PROVIDER.
   - Fallback opendatasoft si MF échoue (cache key différent pour pas polluer).
   - Devrait fixer le lag de plusieurs heures observé sur Opendatasoft.

2. lib/climato.ts : fetch latest + previous (~4 MB compressé), garder 365j max
   en cache 24h. Permet l'onglet "1 an" sur la page dept.

3. TemperatureChartInteractive : onglet "1 an" (apparaît si > 30j dispos),
   série days365 + normales365 sérialisés au SSR.

4. Base.astro : logo header et footer utilisent <img src="/favicon.svg">
   au lieu d'un emoji 🌡️.

5. index.astro : wrapper map repassé à container-tight (max-w-5xl) — la version
   1400px était trop grande, on revient à la largeur du reste du site.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Florian 2026-05-26 01:57:35 +02:00
parent cb8d111a12
commit 5f8b765d79
7 changed files with 189 additions and 63 deletions

View file

@ -103,7 +103,7 @@ const jsonLd = {
<header class="border-b border-slate-200 bg-white">
<div class="container-tight flex flex-wrap items-center justify-between gap-3 py-4">
<a href="/" class="flex items-center gap-2 no-underline">
<span class="text-2xl">🌡️</span>
<img src="/favicon.svg" alt="" width="32" height="32" class="h-8 w-8" />
<span class="text-lg font-bold text-canicule-700">Info Canicule</span>
</a>
<nav class="flex flex-wrap items-center gap-x-5 gap-y-1 text-sm font-medium text-slate-600">
@ -121,7 +121,10 @@ const jsonLd = {
<div class="container-tight py-6 text-sm text-slate-500">
<div class="grid gap-4 sm:grid-cols-3">
<div>
<p class="font-semibold text-slate-700">Info Canicule</p>
<div class="flex items-center gap-2">
<img src="/favicon.svg" alt="" width="28" height="28" class="h-7 w-7" />
<p class="font-semibold text-slate-700">Info Canicule</p>
</div>
<p class="mt-1 text-xs">
Service d'information publique gratuit, sans publicité, non lucratif.
</p>