Un modello di contenuto descrive le informazioni che il tuo sito memorizza. In EmDash, il modello è composto da collezioni e campi. Il database memorizza quel modello, e il pannello di amministrazione lo usa per costruire i moduli con cui lavorano i redattori.
Collezioni, campi e voci
Una collezione è un tipo di contenuto, come Articoli, Prodotti o Autori. Un campo è un’informazione su quel contenuto, come un titolo, corpo, prezzo o riferimento all’autore. Una voce è un elemento salvato in una collezione.
Per esempio, una collezione Articoli potrebbe avere questi campi:
Posts
├── Title testo breve, obbligatorio
├── Excerpt testo lungo, opzionale
├── Content testo ricco, opzionale
└── Featured image immagine, opzionale
EmDash gestisce anche le informazioni di cui ogni voce ha bisogno, inclusi il suo ID, lo slug pubblico, lo stato di pubblicazione, l’autore, i tempi di creazione e aggiornamento, la lingua e i riferimenti alle revisioni. I risultati delle query espongono queste informazioni standard insieme ai campi definiti per la collezione.
L’eliminazione di una voce la sposta nel cestino impostando il suo timestamp di eliminazione. Un amministratore può ripristinarla fino a quando qualcuno la elimina permanentemente dal cestino. Questo flusso di lavoro delle voci è diverso dall’eliminazione di un campo o di una collezione, che modifica lo schema e rimuove i dati memorizzati.
Un modello, due modi per gestirlo
Gli amministratori possono creare e modificare le collezioni sotto Tipi di contenuto nel pannello di amministrazione. EmDash aggiorna lo schema del database, e l’editor di contenuto utilizza la modifica al prossimo caricamento della collezione.
Un file seed descrive un modello iniziale in JSON. I template usano i seed per creare collezioni e altri dati del sito durante la configurazione. I team possono anche mantenere un seed nel controllo di versione e applicarlo quando creano un altro ambiente. Il pannello di amministrazione e un seed non creano modelli separati; entrambi modificano il modello memorizzato nel database di destinazione.
Il seguente frammento di seed definisce i quattro campi personalizzati nell’esempio Articoli:
{
"version": "1",
"collections": [
{
"slug": "posts",
"label": "Posts",
"labelSingular": "Post",
"fields": [
{
"slug": "title",
"label": "Title",
"type": "string",
"required": true
},
{ "slug": "excerpt", "label": "Excerpt", "type": "text" },
{ "slug": "content", "label": "Content", "type": "portableText" },
{ "slug": "featured_image", "label": "Featured Image", "type": "image" }
]
}
]
}
Il riferimento dei file seed copre la gestione dei conflitti e gli altri oggetti che un seed può contenere, incluse impostazioni, tassonomie, menu, aree widget, reindirizzamenti e contenuti di esempio.
Modificare un modello con contenuto esistente
Aggiungere una collezione crea uno spazio vuoto per nuove voci. Aggiungere un campo opzionale aggiunge quel campo a ogni voce, ma le voci esistenti non hanno valore fino a quando un redattore o una migrazione ne fornisce uno. Un valore predefinito può fornire il valore iniziale quando il campo viene aggiunto.
Etichette, descrizioni, regole di validazione, impostazioni di ricerca e ordine dei campi possono essere aggiornati senza sostituire il campo. Gli slug di collezione e campo sono identificatori stabili: il pannello di amministrazione li imposta alla creazione e non offre la rinomina successivamente.
Leggi Evolvere lo schema di un sito distribuito prima di modificare un modello usato in produzione.
Dichiarazioni TypeScript
EmDash può generare dichiarazioni TypeScript dal modello nel database. Le dichiarazioni aggiungono i nomi delle tue collezioni e le forme dei campi alle funzioni di query pubbliche, in modo che una query per posts restituisca voci i cui data.title, data.content e altri campi sono noti a TypeScript.
Durante lo sviluppo locale, l’integrazione Astro scrive emdash-env.d.ts e lo aggiorna dopo le modifiche allo schema. Il file è output generato; modifica il modello di contenuto piuttosto che la dichiarazione. I flussi di lavoro remoti possono eseguire emdash types per scrivere .emdash/types.ts dal sito EmDash selezionato. Rigenera quel file dopo aver modificato il modello che rappresenta.
I tipi generati aiutano il codice a corrispondere allo schema corrente, ma non migrano il contenuto memorizzato. Una modifica del modello e qualsiasi migrazione di contenuto richiesta rimangono operazioni separate.
Concetti correlati
Leggi Collezioni e campi per le funzionalità delle collezioni e le scelte dei campi. Leggi Pannello di amministrazione per il modello di editor e permessi.