Files
lage-chat-control/frontend/README.md
T
sucupira e091ec75f7 feat: migre le quiz, renomme en Lagé Chat Control, nettoie l'ère Astro
- Quiz de résistance (/quiz) migré d'Astro vers Svelte 5 : 12 questions,
  contenu fusionné dans content/quiz.json, score calculé localement
  (aucun envoi), barres par domaine, recommandations liées à l'annuaire
  réel (/outils?cat=…), persistance locale, partage natif/presse-papier.
  Audit axe-core : 0 violation.
- Renommage complet « Exit Chat Control » → « Lagé Chat Control » :
  i18n fr/gcf, manifest PWA, package.json, README, design system.
- README racine et frontend/README.md réécrits pour le projet Svelte :
  lancement local (pnpm dev) et déploiement VPS (renvoi vers
  docs/DEPLOYMENT.md), en français.
- CONTRIBUTING.md adapté à la nouvelle structure (content/outils/,
  forge labola) en conservant la politique éditoriale de confiance.
- Nettoyage : suppression de tout l'outillage Astro devenu inutile
  (src/, public/, scripts/, tests/, migration/, docker/, configs racine
  eslint/prettier/vitest/playwright/tsconfig, CI GitHub Actions, script
  de migration one-shot). robots.txt et security.txt recréés sous
  frontend/static/ avec les bonnes références (labola).
- Fix : pin pnpm via frontend/pnpm-workspace.yaml (onlyBuiltDependencies/
  allowBuilds pour esbuild) après suppression du package.json racine qui
  perturbait la résolution de version de corepack.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 14:02:54 -04:00

50 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lagé Chat Control × OKI — frontend
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
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
```
## Déploiement
`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.
## 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,
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
static/fonts/ 2 WOFF2 auto-hébergés (Atkinson Hyperlegible, Fraunces)
scripts/audit-a11y.mjs audit axe-core (pnpm audit:a11y)
```
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.