Pular para o conteúdo

Gerenciamento de Conteúdo

O portal do CEP Saúde utiliza uma arquitetura Git-based Headless CMS: todo o conteúdo reside em arquivos Markdown/JSON em src/content e pode ser gerenciado tanto diretamente no código quanto através do Pages CMS — uma interface visual amigável onde a equipe da escola e editores alteram cursos, comunicados, notícias, fotos e calendário escolar sem precisar de conhecimentos técnicos.

Coleção Descrição Formato & Caminho Editável via Pages CMS
Pages Páginas institucionais (Sobre, Contato, Calendário, Privacidade, Termos) src/content/pages/*.md ✅ Sim
Services Catálogo de cursos técnicos e especializações ofertados pelo CEP Saúde src/content/services/*.md ✅ Sim
Calendar Calendário acadêmico e letivo anual com bimestres, eventos e feriados src/content/calendar/*.json ✅ Sim
Blog Notícias, avisos acadêmicos e comunicados à comunidade src/content/blog/*.md ✅ Sim
Authors Equipe pedagógica e autores das notícias e comunicados src/content/authors/*.json ✅ Sim
FAQs Perguntas frequentes sobre matrículas, estágios e cursos src/content/faqs/*.json ✅ Sim
Stack Parcerias e integrações institucionais (SEEDF, GDF, SUS) src/content/stack/*.json ✅ Sim
Docs Documentação técnica e guias operacionais do sistema src/content/docs/** (Starlight) ✅ Sim (via Markdown)

Os schemas de todas as coleções são rigorosamente validados com Zod em src/content.config.ts, garantindo que nenhum erro de tipagem chegue à produção.

O arquivo .pages.yml na raiz do projeto define os campos visuais e amigáveis para cada coleção:

  1. Acesso da Equipe Escolar: O usuário acessa pagescms.org e efetua login seguro via GitHub;
  2. Edição Intuitiva: Formulários simples com upload de fotos, campos de carga horária, turnos, ementas e datas do calendário;
  3. Commit Automático: Cada alteração salva no Pages CMS gera automaticamente um commit na branch main, disparando o deploy contínuo no Cloudflare Pages.

Para garantir que novas seções criadas nunca deixem dados órfãos ou fixos no código, o projeto conta com uma auditoria automatizada:

Terminal window
pnpm run check:cms

Este comando verifica se 100% das coleções e páginas possuem mapeamento ativo no manifesto .pages.yml.

Imagens podem residir em src/assets ou em public/images/. Todas as fotos e banners enviados passam pelo pipeline automatizado de imagens (scripts/optimize-images.mjs), que converte imagens para WebP com largura máxima de 1600px e compressão Sharp sem perda de nitidez.