Criar um Blog
Exemplo completo de modelagem e consumo de blog usando o Acachy CMS.
Este exemplo cria um blog básico para um site institucional ou portfólio.
Content Type: Posts
Crie Posts com estes campos:
| Campo | Tipo | Obrigatório | Uso no site |
|---|---|---|---|
title | text | Sim | Título da página e do card. |
slug | slug | Sim | URL do post. |
excerpt | textarea | Não | Resumo em listagens. |
cover | image | Não | Imagem de capa. |
category | select | Não | Categoria do conteúdo. |
publishedDate | date | Não | Data exibida no site. |
body | markdown | Sim | Conteúdo principal. |
Exemplo de configuração:
{
"name": "Posts",
"fields": [
{ "name": "title", "type": "text", "required": true },
{ "name": "slug", "type": "slug", "required": true },
{ "name": "excerpt", "type": "textarea" },
{ "name": "cover", "type": "image" },
{ "name": "category", "type": "select", "options": ["News", "Guides", "Updates"] },
{ "name": "publishedDate", "type": "date" },
{ "name": "body", "type": "markdown", "required": true }
]
}Listagem no Site
const posts = await client.findMany('posts', {
limit: 12,
sort: 'publishedAt',
order: 'desc',
fields: 'title,slug,excerpt,cover,publishedDate',
})Página de Post
const post = await client.findBySlug('posts', params.slug)Busca
Use o parâmetro search para uma busca simples:
const results = await client.findMany('posts', {
search: 'cms',
fields: 'title,slug,excerpt',
})Revalidação com Webhook
Crie um webhook para entry.published apontando para uma rota do seu site, por exemplo:
https://site.example.com/api/revalidateUse um segredo próprio nessa rota do site. Não reutilize segredos do CMS.