Structure du projet
L’arborescence
Section intitulée « L’arborescence »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)- …
Les types de fichiers
Section intitulée « Les types de fichiers »| 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). |
Les dossiers générés
Section intitulée « Les dossiers générés »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é parnpm install. On peut le supprimer et le recréer à tout moment..astro/— des définitions de types générées par Astro à partir decontent.config.ts, pour que l’éditeur connaisse la forme du contenu.dist/— le résultat denpm run build: le site final, à déployer.
src/ contre public/
Section intitulée « src/ contre public/ »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.