Petit prototype pour évaluer l'architecture. Le design est un placeholder à remplacer par votre design system.
npm install
npm run dev # http://localhost:4321Sans configuration, Grist est remplacé par des données d'exemple.
- Site : http://localhost:4321
- Administration : http://localhost:4321/admin/index.html
→ cliquer sur « Work with Local Repository » et choisir le dossier du projet
(Chrome, Edge ou Brave uniquement ; le dossier doit être un dépôt git — il l'est déjà).
Les modifications sont écrites dans
src/content/; rechargez le site pour les voir, puis committez avec git.
| Où | Quoi |
|---|---|
src/blocs/ |
Les blocs : chaque fichier = composant React + champs éditables |
src/blocs/registre.ts |
Le registre, source unique pour le site ET le CMS |
src/content/ |
Le contenu (YAML), édité via Sveltia |
scripts/build-cms.mjs |
Génère public/admin/config.yml + l'aperçu du CMS depuis le registre |
src/cms/apercu.tsx |
L'aperçu Sveltia rendu avec les vrais composants |
src/components/*Ile.astro |
Server islands (Grist, forum, agenda) : rendues à chaque requête |
src/lib/evenements.ts |
Agenda : récurrences des événements (collection « Événements ») |
src/pages/agenda.ics.ts |
Flux iCalendar de l'agenda (abonnement Google Agenda, Apple…) |
AGENTS.md |
Règles pour la génération de code par IA |
- Texte éditorial (bandeau, cartes, appel…) : HTML statique généré au build, zéro JS.
- Équipe (Grist) : server islands (
server:defer). La page reste statique ; le bloc est rendu côté serveur à chaque visite (cache d'une minute). Aucun rebuild nécessaire. - Agenda : événements de la collection « Événements » (CMS), avec récurrences. Server island pour
« aujourd'hui » ; l'affichage « calendrier » est hydraté (navigation de mois en mois, liste
à défilement infini sur mobile). Flux d'abonnement :
/agenda.ics.
Copier .env.example en .env et renseigner les variables. Côté Grist, la table doit avoir
les colonnes Nom, Role, Photo, Lien et, optionnellement, Public (case à cocher).
npm run build
npm start # serveur Node, lit .env (HOST / PORT configurables)Pour l'édition en ligne : renseigner l'URL de votre Forgejo et le app_id OAuth dans
src/cms/config.ts (Forgejo ≥ 12, CORS à activer), puis faire reconstruire le site par la CI
à chaque push sur la branche principale.