SobreCompetênciasTrabalhoR&DBlogComeçarContacto
← Voltar ao R&D

Sardine CMS

Uma framework de CMS multilingue, static-first.

Python · Apache-2.0
Sardine CMS

O motor por trás deste site, extraído numa framework reutilizável. O Sardine constrói sites multilingues e static-first: conteúdo estruturado separado da apresentação, validação forte antes de publicar, e um build determinista que exporta direto para um servidor estático.

O que é

O conteúdo vive em JSON e Markdown, em cinco línguas com o inglês como fonte. As peças são os mesmos contratos já provados neste site:

  • conteúdo estruturado em JSON e Markdown, separado da apresentação;
  • validação forte antes de publicar: paridade de línguas, estrutura, regras editoriais;
  • um build determinista com exportação estática, pronto para Azure Static Web Apps;
  • SEO multilingue desde o início: canonical, hreflang, Open Graph, JSON-LD, sitemap e RSS;
  • um admin autenticado com o ciclo rascunho, revisão, publicado, arquivado.

O conteúdo é portável por desenho: JSON e Markdown, sem ficar preso a uma base de dados. Há quatro motores de armazenamento, SQLite por omissão e PostgreSQL, MySQL ou SQL Server como opcionais. O frontend cumpre o nível WCAG 2.2 AA.

Instalação

Requer Python 3.12 ou mais recente. O comando cms vem de um único pacote:

bash
pip install sardine-cms-cli

Isso traz o núcleo, o validador e o gerador. O tema de referência e o admin de navegador são pacotes separados e opcionais. Os motores de base de dados além do SQLite são opcionais do núcleo:

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

Arranque rápido

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

O cms export escreve o build para um servidor de destino: Azure Static Web Apps, nginx ou um servidor genérico.

Como está organizado

O workspace é um conjunto de pacotes focados: cms-core para o modelo de conteúdo e os estados de tradução, cms-validation para as regras, cms-build para o gerador determinista e os temas, cms-cli para o comando cms, mais um tema de referência e o admin de navegador. O desenho vive ao nível do tema: cada um traz o seu.

Como contribuir

O repositório está aberto a contribuições. Lê o CONTRIBUTING.md e o CODE_OF_CONDUCT.md, escolhe uma issue marcada como good first issue, e abre um pull request. Relatos de bugs e correções na documentação são tão bem-vindos como código. As falhas de segurança seguem o SECURITY.md, em privado.

Podes vê-lo a funcionar na demo online, uma empresa aeroespacial fictícia em cinco línguas, reconstruída e publicada a cada merge.