Aller au contenu

Structure du projet

Les éléments en gras sont ceux que l’on modifie ; les autres sont générés ou rarement touchés.

  • astro.config.mjs configuration d’Astro et de Starlight
  • package.json dépendances et scripts npm
  • package-lock.json versions exactes installées (généré)
  • tsconfig.json réglages TypeScript (pour l’éditeur)
  • README.md
  • Répertoiredeploy/ mise en production
    • nginx.conf configuration pour servir le site avec Nginx
    • nginx-auth.conf relais vers le serveur OAuth
    • docker-compose.yml site + serveur OAuth
    • .env.exemple
    • Répertoireoauth/
      • server.mjs connexion Decap CMS ↔ Bitbucket
  • Répertoirepublic/ copié tel quel dans le site final
    • Répertoire_cms/ interface de Decap CMS
      • index.html
      • config.yml configuration du CMS
    • favicon.svg
  • Répertoiresrc/
    • content.config.ts déclaration des collections de contenu
    • Répertoireassets/ images optimisées au build
      • houston.webp
      • Répertoireimages/ images téléversées depuis le CMS
        • …
      • Répertoirecaptures/ captures d’écran de la documentation
        • …
    • Répertoirecomponents/ composants réutilisables
      • Encadre.astro
      • MarkdownContent.astro remplace le composant de Starlight (fiches CMS)
    • Répertoirestyles/
      • custom.css styles personnalisés, chargés sur tout le site
    • Répertoirecontent/
      • Répertoiredocs/ une page par fichier
        • index.mdx page d’accueil
        • Répertoireguides/
          • getting-started.md
          • components.mdx
          • decap-cms.md
          • decap-cms-architecture.md
        • Répertoireconcepts/
          • …
        • Répertoirecms/ fiches des CMS étudiés
          • …
        • Répertoirereference/
          • …
        • Répertoireappendix/ annexes
          • …
        • Répertoireen/ version anglaise, mêmes chemins que le français
          • index.mdx
          • Répertoireguides/
            • getting-started.md
  • Répertoirenode_modules/ dépendances installées par npm (généré)
    • …
  • Répertoire.astro/ types générés par Astro (généré)
    • …
  • Répertoiredist/ le site compilé (généré par npm run build)
    • …
Extension Exemple Rôle
.md guides/getting-started.md Page de contenu en Markdown pur. Le format le plus simple et le plus portable.
.mdx index.mdx Page en MDX : du Markdown dans lequel on peut importer et utiliser des composants (<Card>, <Tabs>…). Voir Markdown et MDX.
.ts content.config.ts Code TypeScript (JavaScript typé). Ici, il décrit les collections de contenu et leur schéma. Voir Collections de contenu.
.mjs astro.config.mjs Code JavaScript (format module ES). C’est la configuration du site. Voir Configuration.
.webp assets/houston.webp Image (format compact moderne). Placée dans src/assets/, elle est optimisée au build. Voir Images.
.svg public/favicon.svg Image vectorielle. Placée dans public/, elle est copiée sans transformation.
.json package.json Métadonnées du projet Node.js : dépendances et commandes npm run ….
.astro components/Encadre.astro Composant Astro : HTML, paramètres et style isolé, utilisable dans les pages .mdx. Starlight en contient des dizaines dans node_modules/. Voir HTML et styles.
.css styles/custom.css Feuille de style personnalisée, déclarée dans astro.config.mjs (customCss).

Trois dossiers ne sont jamais modifiés à la main, et sont exclus de Git (.gitignore) :

  • node_modules/ — le code d’Astro, de Starlight et de leurs dépendances, téléchargé par npm install. On peut le supprimer et le recréer à tout moment.
  • .astro/ — des définitions de types générées par Astro à partir de content.config.ts, pour que l’éditeur connaisse la forme du contenu.
  • dist/ — le résultat de npm run build : le site final, à déployer.

C’est la distinction la plus importante à retenir :

src/ public/
Traité par Astro ? Oui : compilé, optimisé, validé Non : copié à l’identique
Nom de fichier final Peut changer (houston.CZZyCf7p.webp) Identique (favicon.svg)
Usage typique Contenu, images d’articles Favicon, robots.txt, fichiers à URL fixe

C’est aussi dans public/ que se trouve l’interface d’administration de Decap CMS (public/_cms/), puisqu’elle doit être servie telle quelle.