Skip to content

Développement

Contribuer au thème DSFR-Drupal

Ce thème est basé sur le thème parent Stable9 et utilise Vite, Terser et PostCSS pour gérer la partie des fichiers frontend.

dsfr
├─ _dsfr_child (squelette de thème enfant)
├─ config
├─ dist
│  ├─ css
│  ├─ dsfr (bibliothèque officielle DSFR uniquement minifiée)
│  ├─ img
│  └─ js
├─ docs (documentation détaillée)
│  ├─ en
│  │  └─ …
│  └─ fr
│  │  └─ …
├─ public (tout ce qui s’y trouve sera copié pendant la génération du dossier "./dist")
├─ shell (scripts d’automatisation via le shell, comme la création d’un thème enfant)
├─ src
│  ├─ pages (modèles de pages)
│  ├─ script (fichiers additionnels pour le thème en .ts, .js, …)
│  └─ settings (services du thème via des fichiers PHP)
│  └─ style (fichiers additionnels pour le thème en .css, .scss, …) 
├─ templates (fichiers .html.twig)
│  ├─ …
│  ├─ includes
│  │  └─ get-started.html.twig (page personnalisée de bienvenue)
│  ├─ layout (modèles de pages)
│  │  ├─ layout_builder
│  │  ├─ layout_discovery
│  │  ├─ html.html.twig
│  │  ├─ maintenance-page.html.twig
│  │  ├─ page--403--dsfr.html.twig
│  │  ├─ …
│  │  ├─ page.html.twig
│  │  └─ … 
│  ├─ …
│  ├─ navigation
│  └─ views
├─ translations
│  └─ dsfr-fr.po 
├─ .gitignore
├─ .gitlab-cli.yml
├─ dsfr.breakpoints.yml
├─ dsfr.info.yml
├─ dsfr.layouts.yml
├─ dsfr.librairies.yml
├─ dsfr.theme
├─ …
├─ package.json
├─ postcss.config.mts
├─ …
├─ theme-settings.php (charge le formulaire de "/admin/appearance/settings/dsfr")
├─ tsconfig.json
├─ vite.install.ts (nécessaire à la reconstruction et la mise à jour de la bibliothèque DSFR)
└─ vite.config.ts

Commandes de génération du dossier ./dist

Avec bun / npm / yarn :

bun install
bun run build

Pour n'afficher que les messages d'erreur

bun run build:silent

En mode développement (fichiers additionnels non compressés)

bun run dev

Ou pour voir les changements en temps réel

bun run watch

Si vous souhaitez placer la bibliothèque dans vos bibliothèques

Après avoir vérifié que le dossier 'web/libraries' existe :

bun run libraries

Obtenir la source du DSFR

À noter que le processus est assez long. Depuis la racine du thème DSFR, construire les assets depuis le dépôt :

Avec bun / npm / yarn

cd src && git clone https://github.com/GouvernementFR/dsfr.git dsfr-repository
cd dsfr-repository && bun install --force
bun run build
cp -R dist ../dsfr && cd ../..

Ensuite :

bun run install-dsfr

Un dossier public/dsfr sera alors présent.