Démarrer un projet
Guide complet pour installer le framework Beely Framework, créer un site, et le mettre en ligne.
- Installer le framework — 3 scénarios selon votre situation
- Personnaliser le site — charte graphique, config, composants
- Créer des pages — template HTML et structure
- Tester en local — Live Server, Python, Node
- Git & GitHub — versionner et pousser votre code
- Mise en production — déployer sur un serveur
- Site sans blog — retirer le blog
- Modules optionnels — retirer ce dont vous n'avez pas besoin
- Snippets — fragments HTML prêts à l'emploi
Vocabulaire
Avant de commencer, voici les termes que vous allez rencontrer. Pas besoin de tout retenir — revenez ici si un mot vous bloque.
| Terme | Explication simple |
|---|---|
| Terminal | La fenêtre noire où on tape des commandes au clavier (au lieu de cliquer). Comme un SMS qu'on envoie à l'ordinateur. |
| VSCode | L'éditeur de code (comme Word, mais pour le code). Gratuit, téléchargeable sur code.visualstudio.com. |
| Git | Un outil qui sauvegarde l'historique de vos fichiers. Comme « Ctrl+Z » mais illimité et partageable. |
| GitHub | Un site web (github.com) qui stocke votre code en ligne. Comme Google Drive, mais pour le code. |
| Repo (dépôt) | Un dossier de projet stocké sur GitHub. |
| Commit | Une sauvegarde avec un message (« Ajout page contact »). Comme un point de restauration. |
| Push | Envoyer vos commits vers GitHub (sauvegarder en ligne). |
| Pull | Récupérer les dernières modifications depuis GitHub. |
| Clone | Télécharger un repo GitHub sur votre ordinateur. |
| Submodule | Un repo Git imbriqué dans un autre. Le framework (.framework/) est un submodule — il se met à jour indépendamment. Le framework se met à jour indépendamment de votre projet — si on corrige un bug, vous récupérez la correction sans tout retélécharger. |
| Symlink | Un raccourci. core/ pointe vers .framework/core/. Modifier l'un modifie l'autre (c'est le même dossier). |
.env | Un fichier de configuration avec des secrets (mots de passe, clés API). Il n'est jamais envoyé sur GitHub. |
| Serveur | L'ordinateur distant qui héberge votre site (chez Hostinger, o2switch, etc.). |
| SSH | Une connexion sécurisée entre votre ordinateur et le serveur (comme un tunnel chiffré). |
| rsync | Un outil qui copie vos fichiers vers le serveur. Il n'envoie que ce qui a changé (rapide). Il n'envoie que les fichiers modifiés, ce qui rend les mises en ligne très rapides (quelques secondes au lieu de minutes). |
| Déploiement | L'action de mettre votre site en ligne (copier les fichiers vers le serveur). |
.htaccess | Un fichier de configuration pour le serveur Apache. Gère les redirections, la sécurité, les URLs propres (gère les URLs propres pour que /blog fonctionne au lieu de /blog.html, la sécurité, et la redirection HTTP→HTTPS). |
| API | Une porte d'entrée pour que deux programmes communiquent. Ex : votre site envoie les données d'un formulaire à un service externe via une API. |
| Webhook | Une URL qu'un service appelle automatiquement quand quelque chose se passe. Ex : un service externe appelle une URL de votre site quand un événement se produit. |
Installer le framework
Comment ouvrir un terminal ?
Toutes les commandes de cette page se tapent dans un terminal (ligne de commande). Voici comment l'ouvrir :
- Sur Mac : ouvrez l'application Terminal (dans Applications → Utilitaires) ou tapez
terminaldans Spotlight (Cmd+Espace) - Dans VSCode : menu Terminal → Nouveau terminal, ou le raccourci Ctrl+` (touche backtick, en haut à gauche du clavier)
- Sur Windows : ouvrez PowerShell ou Git Bash
Le terminal VSCode est pratique car il s'ouvre directement dans le dossier de votre projet.
D'où partez-vous ?
Choisissez le scénario qui correspond à votre situation :
| Scénario | Votre situation | Aller à |
|---|---|---|
| A | Je n'ai aucun projet, je pars de zéro | Scénario A |
| B | J'ai un projet quasi vierge (un index.html et quelques fichiers) |
Scénario B |
| C | J'ai un projet existant structuré (dossiers /css, /js, /assets, etc.) |
Scénario C |
Scénario A — Partir de zéro (aucun projet)
C'est le cas le plus simple. Trois options s'offrent à vous :
Option 1 — Script automatique init-project.sh (recommandé)
Une seule commande qui fait tout : clone le template, crée les symlinks, configure .env, .deploy.env et config-site.js, crée le repo GitHub, injecte les secrets GitHub Actions, teste la connexion SSH et déploie en préprod.
Pré-requis : avoir créé les domaines (prod + préprod) sur l’hébergeur, et avoir gh CLI installé.
Mode interactif (le script pose toutes les questions) :
cd ~/Sites
curl -sO https://raw.githubusercontent.com/TheoRoces/beely-template/main/init-project.sh
bash init-project.sh
Mode CLI (une seule commande, idéal pour l’automatisation) :
cd ~/Sites
curl -sO https://raw.githubusercontent.com/TheoRoces/beely-template/main/init-project.sh
bash init-project.sh \
client=nom-du-projet \
repo_owner=MonUsernameGitHub \
ssh_port=65002 \
prod_url=https://nom-du-projet.fr \
prod_host=ADRESSE_IP_SERVEUR \
prod_user=UTILISATEUR_SSH \
prod_path=/home/UTILISATEUR_SSH/domains/nom-du-projet.fr/public_html/ \
preprod_url=https://preprod.nom-du-projet.fr \
preprod_host=ADRESSE_IP_SERVEUR \
preprod_user=UTILISATEUR_SSH \
preprod_path=/home/UTILISATEUR_SSH/domains/preprod.nom-du-projet.fr/public_html/ \
baserow_token=VOTRE_TOKEN \
baserow_table_id=VOTRE_TABLE_ID \
site_name="Restaurant Le Gourmet" \
ga4=G-ABC123XYZ9 \
clarity=abcdef1234 \
company="Le Gourmet SARL" \
legal_form="SARL" \
siret="987 654 321 00012" \
registration="RCS Lyon" \
representative="Pierre Martin" \
legal_address="42 rue de la Gastronomie, 69001 Lyon" \
legal_phone="+33 6 00 00 00 00" \
legal_email=contact@legourmet.fr \
hosting_name=Hostinger \
hosting_url=https://www.hostinger.fr \
dev_name="Beely Studio" \
dev_url=https://beely.studio
Important : les valeurs contenant des espaces doivent être entre guillemets : legal_form="Entreprise Individuelle". Sans guillemets, le script ignorera les mots orphelins.
Le script affiche un résumé, valide les paramètres (URLs, SIRET, email, connexion Baserow) et demande confirmation avant de lancer. Options disponibles : --help, --dry-run, --no-deploy, --no-github.
Arguments optionnels — Infrastructure
| Argument | Défaut | Description |
|---|---|---|
sites_dir | ~/Sites | Dossier parent du projet |
ssh_port | 65002 | Port SSH (Hostinger) |
git_name | Config globale Git | Nom pour les commits Git |
git_email | Config globale Git | Email pour les commits Git |
github_alias | Auto-détecté | Alias SSH GitHub (~/.ssh/config). Si plusieurs comptes sont configurés, le script teste chaque alias et prend celui qui fonctionne. Forcer avec github_alias=mon-alias. |
repo_visibility | private | Visibilité du repo |
Arguments optionnels — Services
| Argument | Description |
|---|---|
baserow_token | Token API Baserow (pour le blog) |
baserow_table_id | ID de la table Articles — c’est le nombre après /table/ dans l’URL Baserow, pas le dernier nombre (qui est le View ID). Le script vérifie l’ID via l’API avant de continuer. |
Arguments optionnels — Identité du site
| Argument | Description |
|---|---|
site_name | Nom affiché du site (ex : "Restaurant Le Gourmet") |
favicon | Chemin du favicon (défaut : /assets/images/logos/favicon.png) |
Arguments optionnels — Analytics
| Argument | Format | Description |
|---|---|---|
ga4 | G-XXXXXXXXXX | Google Analytics 4 |
gtm | GTM-XXXXXXX | Google Tag Manager |
clarity | 10 car. alphanum. | Microsoft Clarity |
fb_pixel | 15-16 chiffres | Facebook Pixel |
hotjar | 6-10 chiffres | Hotjar |
linkedin | — | LinkedIn Insight Tag |
tiktok | — | TikTok Pixel |
Arguments optionnels — Mentions légales
| Argument | Description |
|---|---|
company | Raison sociale (ex : "Ma Société SARL") |
legal_form | Forme juridique (SARL, SAS, EI…) |
siret | Numéro SIRET (14 chiffres, espaces acceptés) |
registration | Inscription au registre (ex : "RCS Paris") |
representative | Représentant légal |
legal_address | Adresse du siège social |
legal_phone | Téléphone (ex : "+33 1 23 45 67 89") |
legal_email | Email de contact |
Arguments optionnels — Hébergement
| Argument | Description |
|---|---|
hosting_name | Nom de l’hébergeur (ex : "Hostinger") |
hosting_address | Adresse de l’hébergeur |
hosting_url | Site web de l’hébergeur |
hosting_contact | Contact de l’hébergeur |
Arguments optionnels — Développeur
| Argument | Description |
|---|---|
dev_name | Nom du développeur/agence |
dev_url | Site web du développeur |
dev_address | Adresse du développeur |
Le champ website des mentions légales est automatiquement rempli avec prod_url.
Astuce : si vous n’avez pas gh, le script vous guidera pour créer le repo manuellement sur GitHub.
Option 2 — Téléchargement direct (sans terminal)
Cliquez sur l'icône dans le header de cette page, ou utilisez ce lien :
- Décompressez l'archive ZIP dans votre dossier de projets (ex :
~/Sites/) - Renommez le dossier
beely-template-mainenmon-projet - Ouvrez-le dans VSCode et lancez
./setup.sh --initdans le terminal intégré
Note : Le téléchargement ZIP ne contient pas le submodule .framework/. Le script setup.sh --init le téléchargera automatiquement pour vous.
Option 3 — Cloner avec Git (manuel)
Si vous avez Git installé, c'est la méthode recommandée car elle récupère tout en une commande :
# 💻 Terminal : Terminal.app (Mac) ou terminal VSCode
# 📂 Dossier : là où vous rangez vos sites (ex: ~/Sites/)
cd ~/Sites
git clone --recursive https://github.com/TheoRoces/beely-template.git mon-projet
cd mon-projet
L'option --recursive est importante : elle télécharge aussi le framework (submodule .framework/) en même temps.
Étape 2 — Lancer le setup
# 📂 Dossier : ~/Sites/mon-projet/ (la racine du projet)
./setup.sh --init
Ce script crée les symlinks (raccourcis) qui relient votre projet au framework. Il copie aussi les fichiers .env.example pour que vous puissiez les remplir.
Étape 3 — Ouvrir dans VSCode
# 📂 Dossier : ~/Sites/mon-projet/
code .
Ou bien : ouvrez VSCode, puis Fichier → Ouvrir un dossier et sélectionnez mon-projet.
Étape 4 — Personnaliser
Passez à la section Personnaliser le site ci-dessous.
Scénario B — Projet quasi vierge (index.html + quelques fichiers)
Vous avez déjà un projet avec un index.html et peut-être quelques fichiers CSS/JS, mais pas de structure complète. Vous voulez y ajouter le framework.
Étape 1 — Initialiser git (si pas déjà fait)
# 💻 Terminal : terminal VSCode (Ctrl+`)
# 📂 Dossier : la racine de votre projet (là où se trouve votre index.html)
git init
git add -A
git commit -m "Initial commit"
Si votre projet est déjà un dépôt git, passez cette étape.
Étape 2 — Ajouter le framework comme submodule
# 📂 Dossier : la racine de votre projet
git submodule add https://github.com/TheoRoces/beely-framework.git .framework
Cela crée un dossier .framework/ contenant tout le framework (CSS, JS, composants, icônes, configurateur, etc.).
C'est un dossier (.framework/) qui contient le code du framework. Il est lié à un autre repo GitHub, ce qui permet de le mettre à jour indépendamment de votre projet. Pensez-y comme une bibliothèque partagée — si le framework est mis à jour, vous pouvez récupérer les nouveautés sans retélécharger tout le projet.
Étape 3 — Créer les symlinks
Vous pouvez copier le script setup.sh depuis le template GitHub et l'exécuter, ou créer les symlinks manuellement :
# 📂 Dossier : la racine de votre projet
ln -s .framework/core core
ln -s .framework/api api
ln -s .framework/snippets snippets
ln -s .framework/configurateur configurateur
# Assets : symlinks pour icons/fonts, dossier images propre au projet
mkdir -p assets/images
ln -s ../.framework/assets/icons assets/icons
ln -s ../.framework/assets/fonts assets/fonts
# Composants : dossier vide (ajouter selon les besoins via snippets VSCode ou .framework/snippets/components/)
mkdir -p components
touch components/.gitkeep
cd pages && ln -s ../.framework/base-index.html base-index.html && cd ..
ln -s .framework/robots.txt robots.txt
ln -s .framework/generate-sitemap.js generate-sitemap.js
Étape 4 — Créer le fichier de configuration
Créez un fichier config-site.js à la racine de votre projet. Copiez le contenu depuis le template ou créez-le manuellement :
window.SITE_CONFIG = {
name: 'Mon Site',
favicon: '/favicon.ico',
};
Voir la section Personnaliser le site pour le détail complet.
Étape 5 — Adapter votre HTML
Remplacez les <link> et <script> de votre index.html pour utiliser le framework. Voici un avant/après :
Avant (votre HTML actuel) :
<head>
<link rel="stylesheet" href="style.css">
</head>
Après (avec le framework) :
<head>
<!-- Dark mode + Config (synchrone) -->
<script src="core/js/darkmode.js"></script>
<script src="config-site.js"></script>
<script src="core/js/site.js"></script>
<!-- CSS du framework (requis) -->
<link rel="stylesheet" href="core/css/tokens.css">
<link rel="stylesheet" href="core/css/base.css">
<link rel="stylesheet" href="core/css/cookies.css">
<!-- Vos styles perso (après le framework pour pouvoir overrider) -->
<link rel="stylesheet" href="style.css">
<!-- Composants (synchrone) -->
<script src="core/js/components.js"></script>
<script src="components/header.js"></script>
<script src="components/footer.js"></script>
<!-- JS interactifs (defer) -->
<script src="core/js/cookies.js" defer></script>
</head>
Vous gardez vos fichiers CSS perso — il suffit de les charger après ceux du framework.
Étape 6 — Commiter et tester
# 📂 Dossier : la racine de votre projet
git add -A
git commit -m "Add Beely Framework"
Passez à Tester en local.
Scénario C — Projet existant structuré
Vous avez un site existant avec des dossiers /css, /js, /assets, etc. Vous voulez y intégrer le framework progressivement sans tout casser.
Étape 1 — Ajouter le framework
Suivez les étapes 1 à 3 du Scénario B (git init, submodule, symlinks).
Étape 2 — Intégration progressive
Vous n'avez pas besoin de tout intégrer d'un coup. Voici la stratégie recommandée :
- Gardez vos fichiers CSS existants — renommez
css/style.cssencss/custom.csssi nécessaire - Ajoutez les CSS du framework dans le
<head>de chaque page, avant vos CSS custom :
<!-- Framework (ajouter) -->
<link rel="stylesheet" href="core/css/tokens.css">
<link rel="stylesheet" href="core/css/base.css">
<!-- Vos styles existants (garder, charger après) -->
<link rel="stylesheet" href="css/custom.css">
- Ajoutez les JS du framework pour les fonctionnalités que vous voulez utiliser (composants, icônes, animations, etc.)
- Remplacez les composants un par un : remplacez votre header HTML par le composant
data-component="header", puis le footer, etc. - Testez après chaque modification pour vérifier que rien ne casse
Étape 3 — Supprimer les fichiers remplacés (quand prêt)
Une fois l'intégration terminée, vous pouvez supprimer les fichiers devenus inutiles (css/, js/, assets/ s'ils sont remplacés par le framework).
Conseil : commencez par une seule page pour vous familiariser avec le framework, puis étendez aux autres pages.
Personnaliser le site
1. Charte graphique (tokens.css)
Ouvrez core/css/tokens.css et modifiez les variables CSS :
:root {
/* Couleurs de base (génèrent automatiquement les variantes) */
--primary: #1a5ed6; /* Couleur principale */
--secondary: #8b5cf6; /* Couleur secondaire */
--tertiary: #ec4899; /* Couleur tertiaire */
/* Polices */
--font-body: 'Inter', sans-serif;
--font-heading: 'Inter', sans-serif;
/* Arrondis, espacements, etc. */
}
Voir Design Tokens pour la référence complète.
2. Configuration du site (config-site.js)
Éditez config-site.js. Ce fichier centralise toute la configuration du projet :
- SITE_CONFIG : identité du site (nom, favicon)
- COOKIES_CONFIG : IDs analytics (
ga4,gtm,clarity, etc.), textes du bandeau RGPD, lien vers la politique de confidentialité - BLOG_CONFIG : connexion Baserow (voir section Site sans blog si non utilisé)
- LEGAL_CONFIG : informations légales de l'entreprise (nom, SIRET, adresse, hébergeur, etc.)
Identité du site (SITE_CONFIG)
window.SITE_CONFIG = {
name: 'Mon Site', // Titre par défaut (si <title> est vide)
favicon: '/favicon.ico', // Chemin vers le favicon
};
La configuration SSH de déploiement est dans un fichier séparé .deploy.env (non committé). Voir Déploiement.
Le favicon et le titre par défaut sont automatiquement appliqués par core/js/site.js : si aucune balise <link rel="icon"> n'est présente, le favicon configuré est injecté ; si le <title> est vide, le nom du site est utilisé.
Voir Cookies & Analytics pour le détail des autres sections.
3. Informations légales (LEGAL_CONFIG)
Dans config-site.js, complétez le bloc LEGAL_CONFIG avec vos informations :
window.LEGAL_CONFIG = {
company: 'Ma Société SAS',
legalForm: 'SAS',
siret: '123 456 789 00000',
registration: 'RCS Paris',
representative: 'Jean Dupont',
address: '123 rue Exemple, 75000 Paris',
phone: '+33 1 23 45 67 89',
email: 'contact@monsite.fr',
website: 'https://monsite.fr',
hosting: {
name: 'Hostinger',
address: 'Kaunas, Lituanie',
url: 'https://www.hostinger.fr',
contact: 'https://www.hostinger.fr/contact'
},
developer: { // Optionnel, masqué si name est vide
name: '', url: '', address: ''
}
};
Les pages mentions-legales.html et confidentialite.html sont fournies et se remplissent automatiquement avec ces informations. Les champs vides affichent un placeholder [NOM_DU_CHAMP] pour vous aider à identifier les manques.
N'oubliez pas de configurer aussi privacyUrl dans la bannière cookies pour que le lien vers la politique de confidentialité apparaisse dans le bandeau :
banner: {
privacyUrl: '/confidentialite.html',
privacyText: 'Politique de confidentialité',
// ...
}
Important : les textes légaux fournis sont des modèles génériques. Faites‑les valider par un professionnel du droit avant mise en production.
Voir Pages légales pour le détail de chaque champ.
4. Composants (header, footer, card)
Chaque composant se configure directement dans le HTML via des attributs data-* (pour les valeurs simples) et des <template data-slot> (pour le contenu HTML riche).
- Header :
data-site-name,data-logo-link,data-logo-src, slotsnav,cta,search - Footer :
data-copyright, slotcontent - Card :
data-title,data-text,data-image,data-image-alt, slotfooter
Les composants (components/*.js) ne sont à modifier que si vous changez la structure HTML. Voir Composants pour le détail.
Créer des pages
Les pages sont créées dans le dossier pages/. Une seule ligne d'import suffit grâce au loader.
Loader (core/loader.js)
Le fichier core/loader.js charge automatiquement tous les CSS et JS du framework. Il détecte la profondeur de la page pour calculer les chemins relatifs. Plus besoin de lister 20+ imports individuels. Sans le loader, vous devriez copier-coller 20 lignes d'import dans chaque page HTML — le loader fait tout ça en une seule ligne.
| Profondeur | Préfixe | Exemple |
|---|---|---|
pages/*.html | ../ | <script src="../core/loader.js"></script> |
pages/blog/*.html | ../../ | <script src="../../core/loader.js"></script> |
Racine (404.html) | / | <script src="/core/loader.js"></script> |
Le loader charge dans l'ordre :
- CSS : tokens, base, grid, forms, elements, animations, text-anim, icons, blog, cookies, legal, interactions
- JS synchrones : darkmode, config-site, site, components
- JS deferred : forms, elements, animations, text-anim, icons, blog, cookies, params, form-embed, legal, content, interactions
Pourquoi darkmode.js est synchrone ? Ce script doit s'exécuter avant le premier rendu du navigateur pour appliquer data-theme="dark" sur <html>. S'il était en defer, la page s'afficherait brièvement en thème clair avant de basculer en sombre (flash of unstyled theme). Les autres scripts synchrones (config-site, site, components) doivent aussi être disponibles avant le rendu pour que les composants s'initialisent correctement.
Les composants du projet (header.js, footer.js) restent en import séparé car ils sont spécifiques à chaque projet.
Structure minimale d'une page
Le contenu de la page suit le pattern section > container : <main> est un simple wrapper sémantique (pas de padding), .section gère le padding vertical, et .container gère le padding horizontal + la largeur maximale. Voir Structure de page pour le détail.
<!-- Dans pages/contact.html -->
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ma Page — Mon Site</title>
<meta name="description" content="Description SEO de la page.">
<!-- Core : charge TOUS les CSS + JS du framework en une ligne -->
<script src="../core/loader.js"></script>
<!-- Composants du projet -->
<script src="../components/header.js"></script>
<script src="../components/footer.js"></script>
</head>
<body>
<!-- Header : attributs + slots -->
<div data-component="header"
data-site-name="Mon Site"
data-logo-link="/index.html">
<template data-slot="nav">
<a href="/index.html">Accueil</a>
<a href="/contact.html">Contact</a>
</template>
</div>
<main>
<section class="section">
<div class="container">
<!-- Votre contenu ici -->
</div>
</section>
</main>
<!-- Footer -->
<div data-component="footer"
data-copyright="© 2026 Mon Site">
<template data-slot="content">
<nav class="footer__links">
<a href="/mentions-legales.html">Mentions légales</a>
<a href="/confidentialite.html">Confidentialité</a>
</nav>
</template>
</div>
</body>
</html>
Tester en local
Ouvrez le projet avec VS Code + Live Server ou n'importe quel serveur local :
# Option 1 : VS Code Live Server (extension)
# Clic droit sur index.html → "Open with Live Server"
# Option 2 : Python
python3 -m http.server 8000
# Option 3 : Node.js (npx)
npx serve .
Les liens internes utilisent .html pour fonctionner partout (Live Server, file://, etc.). En production, le .htaccess redirige vers des URLs propres.
python3 configurateur/configurator-server.py
Chaque projet utilise un port unique (5555-5599) — vous pouvez travailler sur plusieurs projets en parallèle. Le serveur affiche le nom du projet et l'URL au démarrage. Un bouton flottant apparaît en bas à droite de chaque page en local pour ouvrir le configurateur.
site.js réécrit automatiquement les liens internes. Un lien comme href="/contact" est transformé en contact.html pour fonctionner avec Live Server. Aucune configuration nécessaire.
Git & GitHub
Git est un outil qui sauvegarde l'historique de votre code (comme un « Ctrl+Z » illimité et partageable). GitHub est un site (github.com) qui stocke votre code en ligne (comme Google Drive pour le code).
Installer Git
Si vous n'avez pas encore Git installé :
- Mac : ouvrez le Terminal et tapez
git --version. Si Git n'est pas installé, macOS vous proposera de l'installer automatiquement. Acceptez. - Windows : téléchargez et installez git-scm.com/download/win. Gardez les options par défaut.
- Linux :
sudo apt install git(Ubuntu/Debian) ousudo dnf install git(Fedora).
Vérifiez l'installation : git --version dans le terminal (doit afficher un numéro de version).
Créer un compte GitHub
Si vous n'avez pas de compte GitHub, créez-en un gratuitement sur github.com/signup. Le plan gratuit suffit — les dépôts privés sont inclus.
Pourquoi utiliser Git ?
- Historique : chaque modification est sauvegardée avec un message (« Ajout page contact »). Vous pouvez revenir en arrière à tout moment.
- Sauvegarde en ligne : votre code est stocké sur GitHub. Si votre ordinateur plante, rien n'est perdu.
- Déploiement : le serveur de production peut récupérer automatiquement les dernières modifications depuis GitHub.
- Collaboration : plusieurs personnes peuvent travailler sur le même projet sans se marcher dessus.
1. Créer votre dépôt GitHub
Créez un nouveau dépôt sur github.com/new. Donnez‑lui un nom (ex : mon-projet), laissez Private sélectionné, ne cochez rien d'autre, cliquez Create repository. Puis changez le remote :
# Terminal : terminal VSCode (Ctrl+`)
# Dossier : la racine de votre projet
# Changer le remote
git remote set-url origin https://github.com/votre-user/votre-projet.git
# Pousser le code
git push -u origin main
Alternative : via le configurateur
Vous pouvez aussi configurer le remote depuis le configurateur visuel sans toucher au terminal :
- Lancez le configurateur :
python3 configurateur/configurator-server.py - Cliquez sur le bouton Publier (en haut à droite de la barre d'outils)
- Dans la section GitHub, renseignez l'URL du remote dans le champ Remote origin
- Cliquez sur le bouton ✓ pour enregistrer
Le statut passe à Connecté une fois le remote configuré. Vous pouvez ensuite utiliser le bouton Commit & Push directement depuis le configurateur.
2. Workflow quotidien
# Voir l'état des fichiers modifiés
git status
# Ajouter tous les fichiers modifiés + commit
git add -A
git commit -m "Add contact page with form validation"
# Pousser sur GitHub
git push
3. Bonnes pratiques commits
- Un commit = une modification logique
- Messages en anglais, courts et descriptifs :
Add,Fix,Update,Remove - Exemples :
"Add hero section to homepage","Fix mobile nav toggle"
4. Fichier .gitignore
Assurez-vous que les fichiers sensibles ou inutiles ne sont pas versionnés :
# Fichiers à ignorer dans .gitignore
.env
.deploy.env
.DS_Store
node_modules/
.claude/
data/
docs/
Mise en production
Le déploiement, la configuration serveur et la checklist de lancement ont leur page dédiée :
- Mise en production — SSH, rsync, .env, .htaccess, checklist de lancement
Site sans blog
Si votre site n'a pas besoin de blog, supprimez les fichiers liés et allégez la configuration.
Fichiers à supprimer
# Pages blog
blog.html # Page listing
blog/ # Dossier contenant article.html
# Proxy API
api/ # Dossier contenant baserow.php
# Fichier environnement (si le blog était le seul usage)
.env
CSS et JS à retirer des pages
Si vous n'utilisez pas le loader, supprimez ces lignes du <head> :
<!-- Supprimer cette ligne CSS -->
<link rel="stylesheet" href="core/css/blog.css">
<!-- Supprimer cette ligne JS -->
<script src="core/js/blog.js" defer></script>
Configuration à nettoyer
Dans config-site.js, supprimez ou videz la section BLOG_CONFIG.
Navigation à adapter
Retirez le lien « Blog » du slot nav dans le header de chaque page HTML.
Résumé
| Action | Fichiers concernés |
|---|---|
| Supprimer | blog.html, blog/, api/, .env |
Retirer des <head> | blog.css, blog.js |
| Nettoyer | config-site.js (section BLOG_CONFIG) |
| Adapter | components/header.js (retirer lien Blog) |
Modules optionnels
Vous pouvez retirer des modules selon vos besoins. Chaque module est indépendant :
| Module | CSS | JS | Requis ? |
|---|---|---|---|
| Tokens + Base | tokens.css, base.css | — | Oui (toujours) |
| Site (favicon, titre) | — | site.js | Recommandé |
| Composants | — | components.js | Oui (header/footer) |
| Éléments | elements.css | elements.js | Optionnel |
| Icônes | icons.css | icons.js | Optionnel |
| Grid / Bento | grid.css | — | Optionnel |
| Formulaires | forms.css | forms.js | Optionnel |
| Animations | animations.css | animations.js | Optionnel |
| Interactions | interactions.css | interactions.js | Optionnel |
| Cookies | cookies.css | cookies.js | Recommandé (RGPD) |
| Paramètres URL | — | params.js | Optionnel |
| Blog | blog.css | blog.js | Optionnel |
| Dark Mode | — | darkmode.js | Optionnel |
| Pages légales | — | legal.js | Recommandé (RGPD) |
Minimum requis : tokens.css + base.css + components.js + site.js + vos composants (header.js, footer.js).
Snippets (copier-coller)
Le dossier snippets/ contient un fichier HTML par élément, prêt à copier-coller dans vos pages. Chaque fichier commence par un bloc commentaire listant toutes les classes, attributs et options disponibles.
Lancer les tests
Le framework inclut une suite de tests automatisés, écrite en Python pur (bibliothèque standard, zéro dépendance externe).
# Le serveur local doit tourner (Live Server, Python http.server, ou configurateur)
python3 tests/test_framework.py
Le script vérifie le chargement des pages, les composants, les tokens CSS et les fonctionnalités clés du framework. Tous les tests doivent passer (100 %).
Problèmes courants
- Le site ne s'affiche pas correctement : vérifiez l'ordre des CSS dans le
<head>:tokens.cssdoit être chargé en premier. - Les composants ne s'affichent pas : vérifiez que
components.jsest chargé avant les fichiers de composants (header.js,footer.js). - Problèmes de déploiement : consultez la page Mise en production.