2026-07-10 14:02:54 -04:00
|
|
|
|
# Lagé Chat Control × OKI — frontend
|
2026-07-10 12:51:17 -04:00
|
|
|
|
|
|
|
|
|
|
Annuaire souverain d'outils libres. SvelteKit 2 + Svelte 5, site 100 %
|
|
|
|
|
|
prérendu, zéro CDN tiers, zéro tracker. Voir [`ADR.md`](../ADR.md) pour la
|
|
|
|
|
|
décision d'architecture et `../docs/` pour le design system et le guide
|
|
|
|
|
|
de contenu.
|
|
|
|
|
|
|
|
|
|
|
|
## Prérequis
|
|
|
|
|
|
|
|
|
|
|
|
Node ≥ 22.12, pnpm.
|
|
|
|
|
|
|
|
|
|
|
|
## Commandes
|
|
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
pnpm install
|
2026-07-10 14:02:54 -04:00
|
|
|
|
pnpm dev # serveur de développement
|
|
|
|
|
|
pnpm build # build statique dans build/ (prérend toutes les pages)
|
|
|
|
|
|
pnpm preview # sert le build localement
|
|
|
|
|
|
pnpm check # svelte-check (types + a11y)
|
|
|
|
|
|
pnpm audit:a11y # audit axe-core sur le build servi en local
|
2026-07-10 12:51:17 -04:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Déploiement
|
|
|
|
|
|
|
2026-07-10 14:02:54 -04:00
|
|
|
|
`build/` est un site statique : n'importe quel serveur de fichiers convient.
|
|
|
|
|
|
Voir [`docs/DEPLOYMENT.md`](../docs/DEPLOYMENT.md) pour la mise en production
|
|
|
|
|
|
sur un VPS (Caddy, nginx, YunoHost, Docker). Aucune dépendance cloud, aucun
|
|
|
|
|
|
service à maintenir — un miroir = une copie du dossier.
|
2026-07-10 12:51:17 -04:00
|
|
|
|
|
|
|
|
|
|
## Arborescence
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
src/styles/ tokens, reset, base, layouts (cascade @layer)
|
|
|
|
|
|
src/lib/i18n/ fr.json + gcf.json typés, store de langue (runes)
|
|
|
|
|
|
src/lib/components/ ToolCard, DifficultyBadge, CategoryNav, SearchBar,
|
2026-07-10 14:02:54 -04:00
|
|
|
|
LanguageSwitcher, EndMarker, ShortcutsDialog,
|
|
|
|
|
|
OfflineBadge, AdoptButton
|
|
|
|
|
|
src/lib/content/ chargeurs build-time des fichiers ../content/
|
|
|
|
|
|
(tools.server.ts, quiz.server.ts)
|
|
|
|
|
|
src/routes/ / (landing), /outils (annuaire filtrable),
|
|
|
|
|
|
/outils/[slug], /quiz, /contribuer
|
|
|
|
|
|
src/service-worker.js précache + offline-first
|
2026-07-10 12:51:17 -04:00
|
|
|
|
static/fonts/ 2 WOFF2 auto-hébergés (Atkinson Hyperlegible, Fraunces)
|
2026-07-10 14:02:54 -04:00
|
|
|
|
scripts/audit-a11y.mjs audit axe-core (pnpm audit:a11y)
|
2026-07-10 12:51:17 -04:00
|
|
|
|
```
|
2026-07-10 14:02:54 -04:00
|
|
|
|
|
|
|
|
|
|
Le contenu éditorial (fiches d'outils, quiz, catégories) vit dans
|
|
|
|
|
|
[`../content/`](../content/) à la racine du dépôt, pas dans `frontend/` —
|
|
|
|
|
|
voir [`docs/CONTENT_GUIDE.md`](../docs/CONTENT_GUIDE.md) pour l'éditer.
|