À proposExpertiseRéalisationsR&DBlogCommencerContact
← Retour à R&D

Sardine CMS

Un framework de CMS multilingue, static-first.

Python · Apache-2.0
Sardine CMS

Le moteur derrière ce site, extrait en un framework réutilisable. Sardine construit des sites multilingues et static-first : contenu structuré séparé de la présentation, validation forte avant publication, et un build déterministe qui exporte directement vers un hébergeur statique.

Ce que c'est

Le contenu vit en JSON et Markdown, en cinq langues avec l'anglais comme source. Les pièces sont les mêmes contrats déjà éprouvés sur ce site :

  • contenu structuré en JSON et Markdown, séparé de la présentation ;
  • validation forte avant publication : parité des langues, structure, règles éditoriales ;
  • un build déterministe avec export statique, prêt pour Azure Static Web Apps ;
  • SEO multilingue dès le départ : canonical, hreflang, Open Graph, JSON-LD, sitemap et RSS ;
  • un admin authentifié avec le cycle brouillon, revue, publié, archivé.

Le contenu est portable par conception : JSON et Markdown, sans dépendance à une base de données. Il y a quatre moteurs de stockage, SQLite par défaut et PostgreSQL, MySQL ou SQL Server en option. Le frontend respecte le niveau WCAG 2.2 AA.

Installation

Requiert Python 3.12 ou plus récent. La commande cms provient d'un seul paquet :

bash
pip install sardine-cms-cli

Cela tire le noyau, le validateur et le générateur. Le thème de référence et l'admin de navigateur sont des paquets séparés et optionnels. Les moteurs de base de données au-delà de SQLite sont des options du noyau :

bash
pip install "sardine-cms-core[postgres]"   # or [mysql], [mssql]

Démarrage rapide

bash
cms init my-site --name "My Site" --base-url "https://my-site.example"
cd my-site
cms seed        # example content in five languages
cms validate    # parity, structure, editorial rules
cms build       # deterministic _site/
cms preview     # serve it locally

cms export écrit le build pour un hébergeur cible : Azure Static Web Apps, nginx ou un serveur générique.

Comment c'est organisé

L'espace de travail est un ensemble de paquets ciblés : cms-core pour le modèle de contenu et les états de traduction, cms-validation pour les règles, cms-build pour le générateur déterministe et les thèmes, cms-cli pour la commande cms, plus un thème de référence et l'admin de navigateur. Le design vit au niveau du thème : chacun apporte le sien.

Comment contribuer

Le dépôt est ouvert aux contributions. Lis le CONTRIBUTING.md et le CODE_OF_CONDUCT.md, choisis une issue marquée good first issue, et ouvre une pull request. Les rapports de bugs et les corrections de documentation sont aussi bienvenus que le code. Les failles de sécurité suivent le SECURITY.md, en privé.

Tu peux le voir tourner sur la démo en ligne, une entreprise aérospatiale fictive en cinq langues, reconstruite et publiée à chaque merge.