Skip to content

Contribuer ​

Les règles complètes, pour les humains comme pour les agents d’IA, sont dans AGENTS.md à la racine du dépôt. L’essentiel :

Premiers pas ​

sh
git config core.hooksPath .githooks        # une fois après le clone
(cd packages/core && npm ci)
(cd apps/extension && npm ci)
(cd apps/theme-hub && npm ci)
(cd apps/site && npm ci)
node scripts/test-changed.mjs --all --dry  # voir les parcours e2e

Construire ​

ComposantCommandeRésultat
Extensionnpm run package dans apps/extensiondist/dwa-slides-<version>.vsix
Portailnpm run build dans apps/theme-hub ; local : npm run db:local && npm run devPortail sur localhost:8787
Cœur partagéaucun build : importé en source (npm ci dans packages/core)—
Sitenpm run dev ou npm run build dans apps/site.vitepress/dist/

Node.js 22 ou plus récent.

Tester ​

On teste des parcours utilisateurs de bout en bout, pas des fonctions internes : écrire une slide et recevoir la suggestion, exporter un PPTX, publier une version de thème et la voir arriver dans l’extension… Navigateur réel, VS Code réel, Miniflare pour le portail ; aucun service distant.

sh
node scripts/test-changed.mjs              # parcours touchés par vos modifications
node scripts/test-changed.mjs --dry        # voir le plan sans lancer
node scripts/test-changed.mjs --all        # avant une version

Pour le portail, dans apps/theme-hub :

sh
npm run check     # types du Worker et de l’interface
npm run e2e:api   # API et intégrations (S3, Azure, SSO OIDC, IA) sous Miniflare
npm run e2e:web   # interface dans Chromium (DWA_TEST_BROWSER pour forcer un chemin)

Les services externes y sont simulés localement : aucune requête ne part vers un service distant.

Avant de déclarer une tâche terminée : npm run check dans l’application modifiée, puis scripts/test-changed.mjs.

Conventions ​

  • Ce site est en anglais (racine) et en français (/fr/) : chaque page existe dans les deux langues, au même chemin. Les messages de l’extension et du CLI sont en français ; le portail est en anglais par défaut, avec français, ukrainien et arabe.
  • Pas de dépendance CDN ni d’appel réseau dans l’extension, hors connexion explicite au portail.
  • Aucune donnée client ni aucun chiffre inventé ; les exemples sont marqués comme illustratifs.
  • Couleurs d’un thème client : uniquement la palette fournie par le client.
  • Commits petits, préfixés par le composant, à l’impératif : extension: fix callout fit on snap chromium, site: add palettes page.
  • Aucun déploiement ni commande sur un service distant sans demande explicite.

Modifier ce site ​

  • Les pages sont dans apps/site/pages/, en Markdown.
  • Un bloc ```dwa affiche la slide rendue au-dessus de son code ; ```dwa slide affiche la slide seule.
  • Les images d’exemple disponibles (motifs générés) : architecture.png, chantier.png, equipe.png, visuel.png, image.png, vue-a.png à vue-c.png, image-1.png à image-6.png.
  • La référence des classes, les commandes et les paramètres sont générés : modifiez le catalogue (packages/core/src/catalog.ts) ou le package.json de l’extension, pas la page.

Documentation du langage DWA Core v1, de l’extension VS Code, du CLI et du portail des thèmes.