Una collezione definisce un tipo di contenuto e il modulo che gli editor usano per crearlo. I suoi campi definiscono i valori che ogni voce può contenere. Ad esempio, una collezione Prodotti potrebbe contenere un titolo, un prezzo, una descrizione, un’immagine del prodotto e un riferimento a una voce Marca.
Gli amministratori gestiscono le collezioni sotto Tipi di contenuto. I file seed possono definire le stesse impostazioni di collezione quando un sito o un ambiente viene configurato dalla configurazione.
Identità della collezione
Ogni collezione ha un’etichetta plurale, un’etichetta singolare opzionale e uno slug. Le etichette appaiono nel pannello di amministrazione. Lo slug identifica la collezione nelle query, nelle route API, nei file seed e nel database.
Ad esempio, una collezione etichettata come Articoli del Blog può usare Articolo del Blog come etichetta singolare e posts come slug. Il codice Astro la interroga poi per quello slug:
import { getEmDashCollection } from "emdash";
const { entries: posts } = await getEmDashCollection("posts");
Scegli lo slug prima di creare la collezione. Il pannello di amministrazione non rinomina gli slug delle collezioni o dei campi successivamente perché le query esistenti e le colonne archiviate dipendono da essi. Gli slug iniziano con una lettera minuscola, contengono solo lettere minuscole, numeri e underscore, e hanno un massimo di 63 caratteri. EmDash rifiuta anche i nomi riservati utilizzati dalle proprie route e dati delle voci.
Comportamento della collezione
Le impostazioni della collezione controllano come gli editor e le pagine pubbliche usano le voci:
- Instradabile richiede uno slug pubblico prima che una voce possa essere pubblicata. Un pattern URL può combinare lo slug o l’ID della voce con la sua data di pubblicazione per produrre il percorso pubblico.
- Bozze permette agli editor di salvare il lavoro prima di pubblicarlo.
- Revisioni mantiene snapshot della cronologia dei contenuti.
- Anteprima fornisce URL di anteprima firmati per contenuti non pubblicati.
- Ricerca abilita la ricerca full-text per i campi contrassegnati come ricercabili.
- SEO aggiunge campi di metadati per titolo, descrizione e immagine e include la collezione nella sitemap.
- Blocco modifica mantiene una voce mentre un editor ci sta lavorando e rifiuta altri scrittori fino al rilascio del blocco.
- Commenti possono essere abilitati per collezione, con impostazioni di moderazione e chiusura automatica.
- Gruppo posiziona la collezione in una cartella comprimibile della barra laterale. Le collezioni con lo stesso gruppo condividono una cartella, posizionata dove la prima di esse apparirebbe. Una tassonomia si unisce alla cartella quando ogni collezione a cui è assegnata è mostrata in quella cartella.
Abilita il comportamento che il sito utilizza effettivamente. Ad esempio, attivare Anteprima fornisce URL di anteprima, ma la pagina Astro deve comunque renderizzare la voce e il suo stato di anteprima correttamente. Vedi Modalità anteprima per il flusso completo.
Tipi di campo
Scegli un tipo di campo per il valore che gli editor inseriscono e il modo in cui il codice dell’applicazione lo riceve. EmDash supporta 16 tipi di campo:
| Esigenza di contenuto | Tipi di campo | Con cosa lavorano gli editor |
|---|---|---|
| Testo breve o lungo | string, text, slug, url | Input di testo, aree di testo e valori URL |
| Numeri | number, integer | Input decimali o interi |
| Stato e tempo | boolean, datetime | Un interruttore o selettore data e ora |
| Scelte fisse | select, multiSelect | Una o più scelte dalle opzioni configurate |
| Dati ricchi o strutturati | portableText, json, repeater | Testo ricco, JSON o un gruppo ripetuto di sotto-campi |
| Media | image, file | Un elemento selezionato dalla libreria media |
| Relazioni | reference | Una voce selezionata da un’altra collezione |
Il tipo è più di un controllo dell’editor. Determina anche come EmDash archivia e valida il valore e come le dichiarazioni TypeScript generate lo descrivono. Il riferimento dei tipi di campo elenca la forma del valore e le opzioni di ogni tipo.
Regole dei campi
Ogni campo personalizzato ha un’etichetta e uno slug. Le seguenti opzioni ne descrivono ulteriormente il comportamento:
- Obbligatorio impedisce il salvataggio di una voce senza un valore.
- Unico impedisce a due voci nella collezione di usare lo stesso valore.
- Valore predefinito fornisce un valore iniziale quando appropriato.
- Validazione può limitare la lunghezza del testo, gli intervalli numerici, i pattern, le scelte, i tipi di file o la lunghezza del ripetitore in base al tipo di campo.
- Ricercabile include i campi di testo supportati nell’indice di ricerca full-text della collezione.
- Indicizzato crea un indice del database per l’ordinamento o il filtraggio su un campo supportato.
- Traducibile controlla se ogni locale ha il proprio valore. Un valore non traducibile è condiviso tra le traduzioni della stessa voce.
Attiva Indicizzato quando una query ordina o filtra per quel campo personalizzato. L’indice aiuta il database a trovare voci corrispondenti o ordinate, ma usa spazio di archiviazione aggiuntivo e aggiunge lavoro ogni volta che il contenuto viene creato o aggiornato. Non indicizzare un campo solo perché una pagina lo visualizza.
Gli indici sono disponibili per i campi string, url, number, integer, boolean, datetime, select, reference e slug. Testo ricco, JSON, ripetitori e valori a scelta multipla contengono dati più complessi e non possono usare questo tipo di indice.
I riferimenti archiviano l’ID della voce di destinazione. Configura un riferimento con la collezione di destinazione e abilita i valori multipli solo quando il campo deve contenere diversi ID di voce. Un riferimento permette al codice di caricare o identificare contenuti correlati; non copia la voce di destinazione nella voce sorgente.
Modificare i campi successivamente
Le etichette, la validazione, le impostazioni di ricerca, gli indici, le opzioni dei widget e l’ordine di visualizzazione possono cambiare senza sostituire il campo. L’aggiunta di un campo mantiene ogni voce esistente, anche se quelle voci necessitano di un valore per il nuovo campo se il sito ne prevede uno.
La migrazione deve convertire i valori esistenti, aggiornare il modello e mantenere il vecchio e il nuovo codice dell’applicazione compatibili durante la distribuzione. Segui Evolvere lo schema di un sito distribuito prima di effettuare uno di questi cambiamenti.
Attività correlate
Usa Lavorare con i contenuti per creare e pubblicare voci. Usa Interrogare i contenuti per filtrarle e ordinarle. Leggi Modello di contenuto per i tipi generati e i file seed.