Este guia cobre como criar, editar e gerenciar conteúdo usando o painel admin do EmDash.
Acessando o admin
Abra seu navegador em /_emdash/admin no seu site. Faça login com as credenciais criadas durante a configuração.
O painel exibe:
- Barra lateral - Navegação para collections, mídia e configurações
- Lista de conteúdo - Entradas na collection selecionada
- Ações rápidas - Criar novo conteúdo, operações em lote
Criando conteúdo
-
Clique em um nome de collection na barra lateral (ex., Posts)
-
Clique em New Post (ou o equivalente para sua collection)
-
Preencha os campos obrigatórios:
- Title - O nome de exibição do conteúdo
- Slug - Identificador URL (gerado automaticamente do título, editável)
-
Adicione conteúdo usando o editor de texto rico
-
Configure os metadados na barra lateral:
- Status - Rascunho, Publicado ou Arquivado
- Data de publicação - Quando publicar
- Categorias e tags - Atribuições de taxonomia
-
Clique em Salvar
Rascunhos são visíveis apenas no admin. Mude o status para Publicado para tornar o conteúdo visível no seu site.
Status do conteúdo
Cada entrada tem um dos três status:
| Status | Visibilidade | Caso de uso |
|---|---|---|
| Rascunho | Apenas admin | Trabalho em andamento |
| Publicado | Público | Conteúdo ativo |
| Arquivado | Apenas admin | Conteúdo retirado |
Mude o status usando o dropdown na barra lateral do editor.
O editor de texto rico
O editor do EmDash suporta:
- Títulos - H2 a H6
- Formatação - Negrito, itálico, sublinhado, tachado
- Listas - Ordenadas e não ordenadas
- Links - Internos e externos
- Imagens - Inserir da biblioteca de mídia
- Blocos de código - Com destaque de sintaxe
- Blocos HTML - HTML bruto para incorporações e widgets personalizados
- Incorporações - YouTube, Vimeo, Twitter
- Seções - Blocos de conteúdo reutilizáveis via comando
/section
Comandos slash
Digite / para acessar comandos de inserção rápida:
| Comando | Ação |
|---|---|
/section | Inserir uma seção reutilizável |
/image | Inserir uma imagem da biblioteca de mídia |
/code | Inserir um bloco de código |
/html | Inserir um bloco de HTML bruto |
Atalhos de teclado
| Ação | Atalho |
|---|---|
| Negrito | Ctrl/Cmd + B |
| Itálico | Ctrl/Cmd + I |
| Link | Ctrl/Cmd + K |
| Desfazer | Ctrl/Cmd + Z |
| Refazer | Ctrl/Cmd + Shift + Z |
| Salvar | Ctrl/Cmd + S |
Inserindo imagens
-
Clique no botão de imagem na barra de ferramentas
-
Selecione uma imagem existente da biblioteca de mídia, ou faça upload de uma nova
-
Adicione texto alternativo (obrigatório para acessibilidade)
-
Ajuste opções de alinhamento e tamanho
-
Clique em Inserir
Blocos HTML
Use /html para inserir um bloco de HTML bruto. Isso é útil para incorporar widgets de terceiros, markup personalizado ou conteúdo que não se encaixa nos tipos de bloco padrão. Blocos HTML também são criados automaticamente ao importar conteúdo do WordPress ou Contentful que contém markup que o EmDash não pode converter em blocos Portable Text nativos.
Para permitir iframes de provedores adicionais, substitua o componente htmlBlock na sua renderização Portable Text:
---
// src/components/MyHtmlBlock.astro
import sanitizeHtml from "sanitize-html";
const { node } = Astro.props;
if (!node?.html) {
return null;
}
const sanitized = sanitizeHtml(node.html, {
allowedTags: [...sanitizeHtml.defaults.allowedTags, "img", "span", "iframe"],
allowedAttributes: {
...sanitizeHtml.defaults.allowedAttributes,
"*": ["class", "id", "data-*", "style"],
iframe: ["src", "width", "height", "frameborder", "allow", "allowfullscreen"],
img: ["src", "srcset", "alt", "title", "width", "height", "loading"],
},
allowedIframeHostnames: [
"www.youtube.com",
"player.vimeo.com",
"iframe.videodelivery.net", // Cloudflare Stream
// Adicione seus provedores aqui
],
});
---
<div class="html-block" set:html={sanitized} />
Então passe para <PortableText>:
---
import { PortableText } from "emdash/ui";
import MyHtmlBlock from "../components/MyHtmlBlock.astro";
---
<PortableText
value={post.data.content}
components={{ type: { htmlBlock: MyHtmlBlock } }}
/>
Editando conteúdo
-
Navegue até a collection que contém o conteúdo
-
Clique na entrada que deseja editar
-
Faça suas alterações
-
Clique em Salvar
Alterações em conteúdo publicado aparecem imediatamente no seu site.
Histórico de revisões
O EmDash rastreia alterações no conteúdo. Acesse o histórico de revisões pela barra lateral do editor:
-
Clique em Revisions na barra lateral do editor
-
Veja a lista de versões anteriores com timestamps
-
Clique em uma revisão para previsualizá-la
-
Clique em Restaurar para reverter para essa versão
Restaurar uma revisão cria uma nova revisão com o conteúdo restaurado. O histórico de revisões original é preservado.
Operações em lote
Execute ações em múltiplas entradas de uma vez:
-
Use as caixas de seleção para selecionar entradas na lista de conteúdo
-
Clique no dropdown Ações em lote
-
Selecione uma ação:
- Publicar - Definir todos os selecionados como publicados
- Arquivar - Definir todos os selecionados como arquivados
- Excluir - Remover permanentemente os selecionados
-
Confirme a ação
Busca e filtragem
Busca
Use a caixa de busca para encontrar conteúdo por título ou conteúdo. A busca não diferencia maiúsculas/minúsculas e corresponde a palavras parciais.
Filtros
Filtre a lista de conteúdo por:
- Status - Rascunho, Publicado, Arquivado
- Intervalo de datas - Datas de criação ou modificação
- Autor - Quem criou o conteúdo
- Taxonomia - Atribuições de categoria ou tag
Clique em Limpar filtros para resetar.
Agendando conteúdo
Agende conteúdo para publicação em uma data futura:
-
Crie ou edite conteúdo
-
Defina o status como Rascunho
-
Defina a Data de publicação para uma data e hora futuras
-
Clique em Salvar
Quando a data de publicação chegar, o conteúdo é automaticamente publicado.
Excluindo conteúdo
Exclua conteúdo da tela de edição ou da lista de conteúdo:
Do editor
-
Abra o conteúdo que deseja excluir
-
Clique em Excluir na barra de ferramentas
-
Confirme a exclusão
Da lista
-
Selecione entradas usando caixas de seleção
-
Clique em Ações em lote > Excluir
-
Confirme a exclusão
API de conteúdo
Para acesso programático, use a API de administração do EmDash.
Criar conteúdo
A seguinte requisição cria um post rascunho:
POST /_emdash/api/content/posts
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "Meu novo post",
"slug": "meu-novo-post",
"content": "<p>Conteúdo do post aqui</p>",
"status": "draft"
}
Atualizar conteúdo
A seguinte requisição atualiza um post existente e o publica:
PUT /_emdash/api/content/posts/meu-novo-post
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "Título atualizado",
"status": "published"
}
Excluir conteúdo
A seguinte requisição exclui permanentemente um post:
DELETE /_emdash/api/content/posts/meu-novo-post
Authorization: Bearer YOUR_API_TOKEN
Traduzindo conteúdo
Quando i18n está habilitado, você pode criar traduções de qualquer entrada de conteúdo.
Criando uma tradução
-
Abra a entrada de conteúdo que deseja traduzir
-
Na barra lateral do editor, encontre o painel Translations
-
Clique em Traduzir ao lado do idioma alvo
-
Edite o conteúdo pré-preenchido — ajuste o título, slug e corpo para o novo idioma
-
Clique em Salvar
A nova tradução é vinculada à entrada original e começa como rascunho. Publique-a independentemente quando a tradução estiver pronta.
Alternando entre traduções
O painel Traduções mostra todos os idiomas configurados. Clique em Editar ao lado de qualquer tradução existente para navegar diretamente. O idioma atual é marcado com um checkmark.
Filtro de idioma
Na lista de conteúdo, use o dropdown de idioma na barra de ferramentas para filtrar entradas por idioma. Cada entrada mostra seu idioma em uma coluna dedicada.
Cada tradução tem seu próprio slug, status e histórico de revisões. Publique, agende e gerencie traduções independentemente.
Veja o guia de Internacionalização para detalhes completos sobre configuração, consultas e o seletor de idioma.
Próximos passos
- Consultando conteúdo - Recuperar conteúdo nos seus templates
- Biblioteca de mídia - Upload e gerenciar arquivos
- Taxonomias - Organizar conteúdo com categorias e tags
- Internacionalização - Conteúdo multilíngue e traduções