Système de Design Français (ou DSFR) sous forme de thème MkDocs
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
📘 MkDocs DSFR
MkDocs DSFR est un portage du Système de Design Français (ou DSFR) sous forme de thème MkDocs.
⚠️ Utilisation interdite en dehors des sites Internet de l'État
Il est formellement interdit à tout autre acteur d’utiliser le Système de Design de l’État (les administrations territoriales ou tout autre acteur privé) pour des sites web ou des applications.
Le Système de Design de l’État représente l’identité numérique de l’État. En cas d’usage à des fins trompeuses ou frauduleuses, l'État se réserve le droit d’entreprendre les actions nécessaires pour y mettre un terme.
👉 Voir README du DSFR ici.
⚡ Démarrage rapide
Prérequis :
-
Python ≥ 3.9 - Vérifiez avec
python3 --version# Ubuntu/Debian sudo apt install python3 python3-venv # macOS brew install python3 # Windows : téléchargez depuis python.org
-
uv (gestionnaire de paquets moderne) - Vérifiez avec
uv --version# Installation rapide (Linux/macOS) curl -LsSf https://astral.sh/uv/install.sh | sh # Ou via pip pip install uv
Actions :
-
Initialiser un nouveau projet avec uv
uv init --no-workspace mon-projet cd mon-projet
-
Ajouter les dépendances MkDocs et le thème DSFR
uv add mkdocs mkdocs-dsfr-men
-
Créer la structure de documentation
mkdir -p docs
-
Page d'accueil
cat > docs/index.md << 'INDEXEOF' # Bienvenue Bienvenue dans la documentation de mon projet. ```dsfr-plugin-alert type: warning title: "⚠️ Utilisation interdite en dehors des sites Internet de l'État" description: Il est formellement interdit à tout autre acteur d’utiliser le Système de Design de l’État (les administrations territoriales ou tout autre acteur privé) pour des sites web ou des applications. ``` ## Navigation rapide - [Exemples](exemples.md) INDEXEOF
-
Page d'exemples
cat > docs/exemples.md << 'EXEOF' # Exemples EXEOF
-
Configurer le thème dans mkdocs.yml
cat > mkdocs.yml << EOF --- # Project information site_name: Mon Projet site_url: https://example.com/ site_description: Description de mon projet site_dir: public docs_dir: docs # Repository repo_name: Mon Repo Name repo_url: https://gitlab.mim-libre.fr/mon_groupe/mon_projet # Theme theme: name: dsfr logo_title: Intitulé<br>Officiel header: service_title: Mon Service service_tagline: Description de mon service # Plugins plugins: - search - dsfr-plugin # Markdown extensions markdown_extensions: - attr_list - pymdownx.emoji: emoji_generator: !!python/name:pymdownx.emoji.to_svg EOF
-
Lancer le serveur de développement
uv run mkdocs serve --livereload
Votre site est maintenant accessible sur http://localhost:8000
💡 Pourquoi uv ?
- Ultra-rapide : 10-100x plus rapide que pip
- Lock file automatique :
uv.lockgarantit les mêmes versions partout (commepackage-lock.json)- Environnement virtuel automatique :
.venvcréé et géré automatiquement- Standard moderne : utilise
pyproject.toml(PEP 621)- Commandes simples :
uv add,uv remove,uv sync(comme npm)
📁 Structure du projet
mkdocs-dsfr/
├── src/ # Code source du thème MkDocs DSFR
├── docs/ # Documentation du thème
├── tests/ # Tests unitaires Python (Pytest) et end-to-end (CodeceptJS)
├── pyproject.toml # Configuration du package
└── README.md # Ce fichier
🚀 Installation
Prérequis
- Python >= 3.9
- uv (gestionnaire de paquets moderne)
Installation de uv :
# Via curl (recommandé)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Ou via pip
pip install uv
Installation avec uv (recommandée)
uv pip install mkdocs-dsfr-men
Pour installer une version spécifique depuis le dépôt Git :
# Branche principale
uv pip install git+https://gitlab.mim-libre.fr/digital-commons/world/european-union/france/administration/education-nationale/projet/produit/mkdocs-dsfr.git
# Branche ou tag spécifique
uv pip install "git+https://gitlab.mim-libre.fr/digital-commons/world/european-union/france/administration/education-nationale/projet/produit/mkdocs-dsfr.git@nom-de-branche"
Installation via pip (alternative)
pip install mkdocs-dsfr-men
# Branche principale
pip install git+https://gitlab.mim-libre.fr/digital-commons/world/european-union/france/administration/education-nationale/projet/produit/mkdocs-dsfr.git
# Branche ou tag spécifique
pip install "git+https://gitlab.mim-libre.fr/digital-commons/world/european-union/france/administration/education-nationale/projet/produit/mkdocs-dsfr.git@nom-de-branche"
Installation en mode développement
Pour contribuer au projet ou tester des modifications locales :
# Cloner le dépôt
git clone https://gitlab.mim-libre.fr/digital-commons/world/european-union/france/administration/education-nationale/projet/produit/mkdocs-dsfr.git
cd mkdocs-dsfr
# Installer en mode éditable (recommandé : uv)
uv pip install -e .
# Alternative : pip install -e .
Le flag -e (mode éditable) permet de modifier le code source du thème et de voir les changements immédiatement sans réinstallation.
⚙️ Configuration
Configuration minimale
Dans le fichier de configuration mkdocs.yml :
site_name: Mon Site
theme:
name: dsfr
header:
service_title: Titre de mon service
service_tagline: Baseline de mon service
Configuration complète
Pour un exemple de configuration complète, consultez le fichier mkdocs.yml de ce dépôt.
Plugins disponibles
Le thème fournit également un plugin MkDocs pour des fonctionnalités avancées :
plugins:
- search
- dsfr-plugin # Plugin DSFR pour fonctionnalités supplémentaires
📦 Gestion des dépendances
Avec uv (recommandé - moderne)
uv gère automatiquement pyproject.toml et uv.lock :
# Ajouter une dépendance
uv add mkdocs-material # Ajoute et installe immédiatement
# Ajouter une dépendance de développement
uv add --dev pytest
# Supprimer une dépendance
uv remove mkdocs-material
# Installer toutes les dépendances (comme npm install)
uv sync
# Mettre à jour une dépendance
uv add --upgrade mkdocs mkdocs-dsfr-men
Fichier pyproject.toml généré automatiquement :
[project]
name = "mon-projet"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = [
"mkdocs>=1.6.1",
"mkdocs-dsfr-men>=0.4.1",
]
Migration depuis requirements.txt
Si vous avez déjà un requirements.txt :
# Créer le pyproject.toml
uv init --no-workspace
# Importer les dépendances
uv add $(cat requirements.txt | grep -v '^#' | grep -v '^$')
📚 Documentation
- Documentation du thème : Consultez
docs/pour la documentation complète du thème - Tests : Voir
tests/codeceptjs/README.mdpour la documentation des tests E2E
🧪 Tests
Toutes les commandes doivent être exécutées depuis la racine du dépôt et passent par le Taskfile.
Préparer l’environnement
task dev:up
Lancer la suite complète (build + déploiement + Pytest + CodeceptJS)
task devsecops
ou
task test:tdd
Lancer uniquement les tests unitaires
task test:pytest
Lancer uniquement les tests end-to-end
task test:codeceptjs
Pour plus de détails sur les tests E2E, consultez la documentation dédiée.
🤝 Contribuer
Consultez le guide CONTRIBUTING.md pour savoir comment contribuer au projet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_dsfr_men-0.5.2.tar.gz.
File metadata
- Download URL: mkdocs_dsfr_men-0.5.2.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.9 Linux/6.8.0-85-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fde8b4a3bd76c06181fef8f1070269245b2687286d80ff6ebcf53910db59e80c
|
|
| MD5 |
c89785100de59e7185f93438b6d62c64
|
|
| BLAKE2b-256 |
2cc7386b7598ac2fb18fe1e4cc698c1413c96663368ca3d8b42ad813fc1de576
|
File details
Details for the file mkdocs_dsfr_men-0.5.2-py3-none-any.whl.
File metadata
- Download URL: mkdocs_dsfr_men-0.5.2-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.9 Linux/6.8.0-85-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29b850fc3159075d772385d527b9eb8c17aecddcd17c7997dad0557413623290
|
|
| MD5 |
50afddb442934b2baf1e064c0c40971f
|
|
| BLAKE2b-256 |
c38bbfe8619c8c6da0bbbcefe37b55ac15610774a32351cdfb8d80689eeb3f00
|