# Guide de contribution Merci de votre intérêt pour contribuer au site de l'ORGANISATION KA INTERNATIONALE ! ## Ajouter du contenu ### Ajouter un service hébergé Éditez `src/_data/i18n/fr/services.json` (et la version `en/`) : ```json { "name": "NOM_DU_SERVICE", "platform": "Nom de la plateforme", "description": "Description du service", "url": "https://service.o-k-i.net/", "linkText": "Accéder à SERVICE" } ``` ### Ajouter un projet web Éditez `src/_data/i18n/fr/projects.json` (et la version `en/`) : ```json { "name": "NOM.PROJET", "icon": "📱", "domain": "nom.projet", "description": "Description du projet", "url": "https://nom.projet/" } ``` ### Ajouter un client ou partenaire Pour les logos, privilégiez une image locale dans `src/assets/images/` et utilisez le filtre `| cdn` dans les templates. Les URLs distantes fonctionnent mais ne passent pas par le CDN. ### Ajouter une valeur Éditez `src/_data/i18n/fr/values.json` (et la version `en/`) : ```json { "icon": "🌟", "title": "Titre", "description": "Description de la valeur" } ``` ### Modifier la navigation Éditez `src/_data/i18n/fr/navigation.json` (et la version `en/`) : ```json { "text": "Texte du lien", "url": "#section", "external": false } ``` Pour un lien externe, mettez `"external": true`. ### Modifier les informations de contact Les liens de contact sont regroupés par section dans `src/_data/i18n/fr/contact.json` (et la version `en/`). L'icône affichée est déterminée automatiquement à partir du texte du lien (`whatsapp`, `telegram`, `discord`, `labola`, `kontak`/`mail`). ```json { "title": "💬 Communauté", "links": [ { "text": "Discord", "url": "https://discord.gg/DPvUCA8dD" } ] } ``` ## Modifier les styles Les styles sont dans `src/assets/css/styles.css`. ### Variables CSS principales ```css --or-oki: #E8A625; --noir-oki: #000000; --vert-oki: #00A854; --rouge-oki: #ED1C4C; --blanc-creme: #F7F7F2; --noir-profond: #1A1A1A; --gris-sombre: #2A2A2A; --or-clair: #F5BD4F; --vert-clair: #00C569; --rouge-clair: #FF2D5F; ``` ## Créer une nouvelle page 1. Créez un fichier `.njk` dans `src/` : ```njk --- layout: layouts/base.njk title: Titre de la page description: Description pour le SEO ---

{{ title }}

Contenu de votre page

``` 2. Ajoutez le lien dans `src/_data/i18n/fr/navigation.json` (et `en/`) si nécessaire. 3. Mettez à jour `src/sitemap.xml`. 4. Reconstruisez le site : `npm run build`. ## Modifier un partial Les partials sont dans `src/_includes/partials/` : - `nav.njk` - Navigation - `hero.njk` - Section hero (accueil) - `services.njk` - Services hébergés - `projects.njk` - Projets web - `mission.njk` - Mission et valeurs - `hosting.njk` - Services d'hébergement - `support.njk` - Section dons - `clients.njk` - Clients / organisations ayant fait confiance - `partners.njk` - Partenaires - `faq.njk` - Questions fréquentes - `engagement.njk` - Appels à l'action - `contact.njk` - Informations de contact - `footer.njk` - Pied de page ## Workflow de développement 1. Créez une branche pour votre fonctionnalité : ```bash git checkout -b feature/ma-fonctionnalite ``` 2. Faites vos modifications. 3. Testez localement : ```bash npm start ``` 4. Buildez pour vérifier : ```bash npm run build ``` 5. Commitez vos changements : ```bash git add . git commit -m "Description de vos changements" ``` 6. Poussez et créez une merge request : ```bash git push origin feature/ma-fonctionnalite ``` ## Standards de code ### HTML/Nunjucks - Indentation : 4 espaces - Toujours fermer les balises - Attributs entre guillemets doubles ### CSS - Indentation : 4 espaces - Utiliser les variables CSS quand possible - Mobile-first pour le responsive ### JavaScript - Indentation : 4 espaces - Vanilla JS (pas de framework) - Commentaires en français - Gestion des erreurs ### Sécurité - Ne pas ajouter de scripts inline sans ajuster la CSP dans `src/.htaccess`. - Conserver les headers de sécurité lors d'une modification du serveur. ## Questions ? Contactez-nous à kontak@o-k-i.net ou ouvrez une issue sur [Labola](https://labola.o-k-i.net/ORGANISATION-KA-INTERNATIONALE/o-k-i.net).