Il portale della comunità italiana di Vampire: The Eternal Struggle: calendario, principati regionali, circuiti competitivi e iniziative della community, in italiano e in inglese.
Il calendario non ha una seconda lista da tenere allineata. Gli eventi sono articoli con il frontmatter strutturato, e il componente che disegna il calendario legge da lì: il sito è la fonte di verità, non una copia di qualcos'altro.
Un evento sbagliato non arriva online. Le categorie sono un'unione discriminata: un Gran Premio, una tappa di Tour, una lega e un articolo hanno campi obbligatori diversi, e sbagliarne uno ferma la build invece di produrre una pagina monca. Lo stesso vale per le classifiche, che parlano tre dialetti e vengono rilette a ogni test: un nome di giocatore scritto male o un riferimento appeso cadono lì.
Le locandine sono grandi il triplo di come si vedono. Le sorgenti stanno sopra i mille pixel, le schede le mostrano a centoventi: uno script genera una copia da 240 e il codice sostituisce il percorso al momento del disegno, tornando all'originale quando la miniatura non c'è ancora, così aggiungere un'immagine in sviluppo non produce un 404.
- Generatore
- Astro 6, sito statico bilingue con l'italiano come lingua predefinita
- Contenuti
- Markdown con unione discriminata Zod sulla categoria dell'evento
- Ricerca
- Pagefind, indicizzata sul solo corpo dell'articolo
- Installabile
- service worker con nome di cache nuovo a ogni rilascio, e avviso di aggiornamento localizzato
- Calendario
- il sito è la fonte di verità: il componente legge dai contenuti, non da un elenco a parte
- Circuiti
- Italian Tour a tappe, Gran Premi, Campionato Nazionale
- Comunità
- principati regionali, cartoline, gemellaggi, leghe e articoli
- Classifiche
- in JSON, tre dialetti riconosciuti dallo stesso schema: torneo, tour, lega
- Test
- 154 fra unità, schemi e componenti, questi ultimi disegnati con la Container API di Astro
- Copertura
- gate bloccante: 90% di righe, 95% di funzioni, 85% di rami
- Schemi
- ogni classifica riletta e ogni riferimento risolto: un nome sbagliato cade al test, non in produzione
- Lighthouse
- otto pagine, accessibilità e SEO bloccanti, prestazioni a 0.75
- Pipeline
- GitHub Actions, un solo flusso: controlli, Lighthouse, pubblicazione
- Trasferimento
- tar-pipe via SSH, con l'impronta dell'host fissata nei segreti
- Immagini
- miniature da 240px generate a build per le schede che le mostrano a 120
- Tecnologie
- AstroTypeScriptCSS
Piattaforma
Contenuti
Controlli
Rilascio
Stack
Codice e immagini: https://github.com/danilofruttaldo/VtesItaly.Site
