Sardine CMS
Ein mehrsprachiges, static-first CMS-Framework.

Der Motor hinter dieser Website, herausgelöst in ein wiederverwendbares Framework. Sardine baut mehrsprachige, static-first Websites: strukturierter Inhalt getrennt von der Darstellung, starke Validierung vor der Veröffentlichung, und ein deterministischer Build, der direkt zu einem statischen Host exportiert.
Was es ist
Der Inhalt lebt in JSON und Markdown, in fünf Sprachen mit Englisch als Quelle. Die Teile sind dieselben Verträge, die auf dieser Website erprobt sind:
- strukturierter Inhalt in JSON und Markdown, getrennt von der Darstellung;
- starke Validierung vor der Veröffentlichung: Sprachparität, Struktur, redaktionelle Regeln;
- ein deterministischer Build mit statischem Export, bereit für Azure Static Web Apps;
- mehrsprachiges SEO von Anfang an: canonical, hreflang, Open Graph, JSON-LD, Sitemap und RSS;
- ein authentifizierter Admin mit dem Ablauf Entwurf, Review, veröffentlicht, archiviert.
Der Inhalt ist portabel angelegt: JSON und Markdown, ohne Bindung an eine Datenbank. Es gibt vier Speicher-Engines, SQLite als Standard und PostgreSQL, MySQL oder SQL Server als Option. Das Frontend erfüllt die Stufe WCAG 2.2 AA.
Installation
Erfordert Python 3.12 oder neuer. Der Befehl cms kommt aus einem einzigen Paket:
pip install sardine-cms-cli
Das zieht den Kern, den Validator und den Generator. Das Referenz-Theme und der Browser-Admin sind separate, optionale Pakete. Datenbank-Engines über SQLite hinaus sind Optionen des Kerns:
pip install "sardine-cms-core[postgres]" # or [mysql], [mssql]
Schnellstart
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 schreibt den Build für einen Zielhost: Azure Static Web Apps, nginx oder einen generischen Server.
Wie es aufgebaut ist
Der Workspace ist eine Reihe fokussierter Pakete: cms-core für das Inhaltsmodell und die Übersetzungszustände, cms-validation für die Regeln, cms-build für den deterministischen Generator und die Themes, cms-cli für den Befehl cms, dazu ein Referenz-Theme und der Browser-Admin. Das Design lebt auf Theme-Ebene: jeder bringt sein eigenes mit.
Wie man beiträgt
Das Repository ist offen für Beiträge. Lies die CONTRIBUTING.md und die CODE_OF_CONDUCT.md, wähle ein als good first issue markiertes Issue, und öffne einen Pull Request. Fehlerberichte und Doku-Korrekturen sind so willkommen wie Code. Sicherheitslücken folgen der SECURITY.md, privat.
Du kannst es auf der Live-Demo laufen sehen, ein fiktives Luft- und Raumfahrtunternehmen in fünf Sprachen, bei jedem Merge neu gebaut und veröffentlicht.
