Coleções e campos

Nesta página

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údoTipos de campoCom o que os editores trabalham
Texto curto ou longostring, text, slug, urlEntradas de texto, áreas de texto e valores URL
Númerosnumber, integerEntradas decimais ou inteiras
Estado e tempoboolean, datetimeUm interruptor ou seletor de data e hora
Escolhas fixasselect, multiSelectUma ou várias escolhas das opções configuradas
Dados ricos ou estruturadosportableText, json, repeaterTexto rico, JSON ou um grupo repetido de subcampos
Mídiaimage, fileUm item selecionado da biblioteca de mídia
RelacionamentosreferenceUma 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.