Design da coleção de conteúdo do blog
Decisão
- Gerenciar posts do blog como arquivos Markdown/MDX em
/blog. - Usar o seguinte esquema de frontmatter:
title(obrigatório, string)description(opcional, string)publishedAt(obrigatório, date)updatedAt(opcional, date)draft(opcional, boolean, padrãofalse)tags(opcional, string[])image(opcional, string)noindex(opcional, boolean, padrãofalse)lang(opcional, string, padrãoja)slug(opcional, string, derivado do nome do arquivo quando omitido)prev(opcional,true | false | string, controle explícito do link anterior)next(opcional,true | false | string, controle explícito do link seguinte)
- Seguir a estratégia de URL i18n derivando URLs da combinação
lang+slug. Usar o mesmoslugentre traduções. - Ordenar listas por
publishedAte usarupdatedAtpara exibir “última atualização”. - Tratar
draftcomo flag para excluir posts de listagens/feeds/alvos de build. - Tratar
noindexcomo metadado que indica exclusão da indexação por mecanismos de busca.
Contexto
É necessário um esquema consistente para gerar com confiabilidade listagens, páginas de detalhe e metadados de SEO em operação de longo prazo do blog. O design precisa se alinhar à abordagem i18n (japonês como padrão, idiomas adicionais em subdiretórios).
Opções
- Markdown/MDX com Content Collection
- CMS headless externo
- Gestão manual em JSON/TS
Justificativa
- Markdown/MDX mantém autoria e revisão leves.
- Esquemas de Content Collection fornecem validação em build.
- Campos explícitos
langeslugmantêm URLs consistentes e alinhadas à estratégia i18n.
Consequências
- Todos os posts do blog devem seguir o esquema acima.
- Regras operacionais de
draftenoindexprecisam ser compartilhadas como critérios de publicação. - Adicionar idiomas exige criar traduções com valores
slugcorrespondentes.
hsb.horse