Uma coleção define um tipo de conteúdo e o formulário que os editores usam para criá-lo. Seus campos definem os valores que cada entrada pode conter. Por exemplo, uma coleção de Produtos poderia conter um título, preço, descrição, imagem do produto e uma referência a uma entrada de Marca.
Os administradores gerenciam coleções em Tipos de conteúdo. Arquivos seed podem definir as mesmas configurações de coleção quando um site ou ambiente é configurado a partir da configuração.
Identidade da coleção
Toda coleção tem um rótulo plural, um rótulo singular opcional e um slug. Os rótulos aparecem no painel de administração. O slug identifica a coleção em consultas, rotas de API, arquivos seed e no banco de dados.
Por exemplo, uma coleção rotulada como Publicações do Blog pode usar Publicação do Blog como rótulo singular e posts como slug. O código Astro então a consulta por esse slug:
import { getEmDashCollection } from "emdash";
const { entries: posts } = await getEmDashCollection("posts");
Escolha o slug antes de criar a coleção. O painel de administração não renomeia slugs de coleção ou slugs de campo depois porque consultas existentes e colunas armazenadas dependem deles. Slugs começam com uma letra minúscula, contêm apenas letras minúsculas, números e underscores, e têm no máximo 63 caracteres. O EmDash também rejeita nomes reservados usados por suas próprias rotas e dados de entrada.
Comportamento da coleção
As configurações da coleção controlam como os editores e as páginas públicas usam as entradas:
- Roteável requer um slug público antes que uma entrada possa ser publicada. Um padrão de URL pode combinar o slug ou ID da entrada com sua data de publicação para produzir o caminho público.
- Rascunhos permite que os editores salvem trabalho antes de publicar.
- Revisões mantém snapshots do histórico de conteúdo.
- Pré-visualização fornece URLs de pré-visualização assinadas para conteúdo não publicado.
- Busca habilita a busca de texto completo para campos marcados como buscáveis.
- SEO adiciona campos de metadados de título, descrição e imagem e inclui a coleção no sitemap.
- Bloqueio de edição retém uma entrada enquanto um editor está trabalhando e recusa outros escritores até o bloqueio ser liberado.
- Comentários podem ser habilitados por coleção, com configurações de moderação e fechamento automático.
- Grupo coloca a coleção em uma pasta recolhível da barra lateral. Coleções com o mesmo grupo compartilham uma pasta, posicionada onde a primeira delas apareceria. Uma taxonomia se junta à pasta quando cada coleção à qual está atribuída é exibida nessa pasta.
Habilite o comportamento que o site realmente usa. Por exemplo, ativar Pré-visualização fornece URLs de pré-visualização, mas a página Astro ainda deve renderizar a entrada e seu estado de pré-visualização corretamente. Veja Modo de pré-visualização para o fluxo completo.
Tipos de campos
Escolha um tipo de campo para o valor que os editores inserem e a forma como o código da aplicação o recebe. O EmDash suporta 16 tipos de campos:
| Necessidade de conteúdo | Tipos de campo | Com o que os editores trabalham |
|---|---|---|
| Texto curto ou longo | string, text, slug, url | Entradas de texto, áreas de texto e valores URL |
| Números | number, integer | Entradas decimais ou inteiras |
| Estado e tempo | boolean, datetime | Um interruptor ou seletor de data e hora |
| Escolhas fixas | select, multiSelect | Uma ou várias escolhas das opções configuradas |
| Dados ricos ou estruturados | portableText, json, repeater | Texto rico, JSON ou um grupo repetido de subcampos |
| Mídia | image, file | Um item selecionado da biblioteca de mídia |
| Relacionamentos | reference | Uma entrada selecionada de outra coleção |
O tipo é mais do que um controle do editor. Ele também determina como o EmDash armazena e valida o valor e como as declarações TypeScript geradas o descrevem. A referência de tipos de campo lista a forma do valor e as opções de cada tipo.
Regras de campos
Todo campo personalizado tem um rótulo e um slug. As seguintes opções descrevem ainda mais seu comportamento:
- Obrigatório impede salvar uma entrada sem um valor.
- Único impede que duas entradas na coleção usem o mesmo valor.
- Valor padrão fornece um valor inicial quando apropriado.
- Validação pode limitar comprimento de texto, faixas numéricas, padrões, escolhas, tipos de arquivo ou comprimento de repetidor de acordo com o tipo de campo.
- Buscável inclui campos de texto suportados no índice de busca de texto completo da coleção.
- Indexado cria um índice de banco de dados para ordenação ou filtragem em um campo suportado.
- Traduzível controla se cada localidade tem seu próprio valor. Um valor não traduzível é compartilhado entre as traduções da mesma entrada.
Ative Indexado quando uma consulta ordena ou filtra por esse campo personalizado. O índice ajuda o banco de dados a encontrar entradas correspondentes ou ordenadas, mas usa armazenamento adicional e adiciona trabalho sempre que conteúdo é criado ou atualizado. Não indexe um campo apenas porque uma página o exibe.
Os índices estão disponíveis para campos string, url, number, integer, boolean, datetime, select, reference e slug. Texto rico, JSON, repetidores e valores de múltipla escolha contêm dados mais complexos e não podem usar esse tipo de índice.
As referências armazenam o ID da entrada alvo. Configure uma referência com a coleção alvo e habilite valores múltiplos apenas quando o campo deve conter vários IDs de entrada. Uma referência permite que o código carregue ou identifique conteúdo relacionado; ela não copia a entrada alvo para a entrada fonte.
Alterando campos posteriormente
Rótulos, validação, configurações de busca, índices, opções de widget e ordem de exibição podem mudar sem substituir o campo. Adicionar um campo mantém cada entrada existente, embora essas entradas precisem de um valor para o novo campo se o site esperar um.
A migração deve converter valores existentes, atualizar o modelo e manter o código antigo e novo da aplicação compatíveis durante a implantação. Siga Evoluir o esquema de um site implantado antes de fazer uma dessas mudanças.
Tarefas relacionadas
Use Trabalhar com conteúdo para criar e publicar entradas. Use Consultar conteúdo para filtrá-las e ordená-las. Leia Modelo de conteúdo para tipos gerados e arquivos seed.