Sammlungen und Felder

Auf dieser Seite

Eine Sammlung definiert eine Art von Inhalt und das Formular, das Redakteure zur Erstellung verwenden. Ihre Felder definieren die Werte, die jeder Eintrag enthalten kann. Beispielsweise könnte eine Produkte-Sammlung einen Titel, Preis, eine Beschreibung, ein Produktbild und eine Referenz zu einem Marken-Eintrag enthalten.

Administratoren verwalten Sammlungen unter Inhaltstypen. Seed-Dateien können die gleichen Sammlungseinstellungen definieren, wenn eine Site oder Umgebung aus der Konfiguration aufgesetzt wird.

Sammlungsidentität

Jede Sammlung hat eine Pluralbezeichnung, eine optionale Singularbezeichnung und einen Slug. Bezeichnungen erscheinen im Admin-Panel. Der Slug identifiziert die Sammlung in Abfragen, API-Routen, Seed-Dateien und der Datenbank.

Beispielsweise kann eine Sammlung mit der Bezeichnung Blog-Beiträge Blog-Beitrag als Singularbezeichnung und posts als Slug verwenden. Astro-Code fragt sie dann über diesen Slug ab:

import { getEmDashCollection } from "emdash";

const { entries: posts } = await getEmDashCollection("posts");

Wählen Sie den Slug, bevor Sie die Sammlung erstellen. Das Admin-Panel benennt Sammlungs-Slugs oder Feld-Slugs nachträglich nicht um, da bestehende Abfragen und gespeicherte Spalten von ihnen abhängen. Slugs beginnen mit einem Kleinbuchstaben, enthalten nur Kleinbuchstaben, Ziffern und Unterstriche und haben maximal 63 Zeichen. EmDash lehnt auch reservierte Namen ab, die von seinen eigenen Routen und Eintragsdaten verwendet werden.

Sammlungsverhalten

Sammlungseinstellungen steuern, wie Redakteure und öffentliche Seiten die Einträge verwenden:

  • Routbar erfordert einen öffentlichen Slug, bevor ein Eintrag veröffentlicht werden kann. Ein URL-Muster kann den Eintrags-Slug oder die ID mit dem Veröffentlichungsdatum kombinieren, um den öffentlichen Pfad zu erzeugen.
  • Entwürfe ermöglicht es Redakteuren, Arbeit vor der Veröffentlichung zu speichern.
  • Revisionen bewahrt Snapshots der Inhaltshistorie auf.
  • Vorschau bietet signierte Vorschau-URLs für unveröffentlichte Inhalte.
  • Suche aktiviert die Volltextsuche für als durchsuchbar markierte Felder.
  • SEO fügt Titel-, Beschreibungs- und Bild-Metadatenfelder hinzu und nimmt die Sammlung in die Sitemap auf.
  • Bearbeitungssperre hält einen Eintrag, während ein Redakteur daran arbeitet, und verweigert andere Autoren, bis die Sperre aufgehoben wird.
  • Kommentare können pro Sammlung aktiviert werden, mit Moderations- und automatischen Schließungseinstellungen.
  • Gruppe platziert die Sammlung in einem einklappbaren Seitenleistenordner. Sammlungen mit der gleichen Gruppe teilen sich einen Ordner, positioniert dort, wo die erste von ihnen erscheinen würde. Eine Taxonomie wird dem Ordner hinzugefügt, wenn jede Sammlung, der sie zugewiesen ist, in diesem Ordner angezeigt wird.

Aktivieren Sie das Verhalten, das die Site tatsächlich nutzt. Zum Beispiel stellt das Einschalten von Vorschau Vorschau-URLs bereit, aber die Astro-Seite muss den Eintrag und seinen Vorschaustatus trotzdem korrekt rendern. Siehe Vorschaumodus für den vollständigen Ablauf.

Feldtypen

Wählen Sie einen Feldtyp für den Wert, den Redakteure eingeben, und die Art, wie Anwendungscode ihn empfängt. EmDash unterstützt 16 Feldtypen:

InhaltsbedarfFeldtypenWomit Redakteure arbeiten
Kurzer oder langer Textstring, text, slug, urlTexteingaben, Textbereiche und URL-Werte
Zahlennumber, integerDezimal- oder Ganzzahleingaben
Zustand und Zeitboolean, datetimeEin Schalter oder Datum-und-Zeit-Auswahl
Feste Auswahlselect, multiSelectEine oder mehrere Auswahlmöglichkeiten aus konfigurierten Optionen
Reicher oder strukturierter InhaltportableText, json, repeaterRich Text, JSON oder eine wiederholte Gruppe von Unterfeldern
Medienimage, fileEin aus der Medienbibliothek ausgewähltes Element
BeziehungenreferenceEin aus einer anderen Sammlung ausgewählter Eintrag

Der Typ ist mehr als eine Editor-Kontrolle. Er bestimmt auch, wie EmDash den Wert speichert und validiert und wie generierte TypeScript-Deklarationen ihn beschreiben. Die Feldtypen-Referenz listet die Wertform und Optionen jedes Typs auf.

Feldregeln

Jedes benutzerdefinierte Feld hat eine Bezeichnung und einen Slug. Die folgenden Optionen beschreiben sein Verhalten weiter:

  • Erforderlich verhindert, dass ein Eintrag ohne Wert gespeichert wird.
  • Einzigartig verhindert, dass zwei Einträge in der Sammlung denselben Wert verwenden.
  • Standardwert liefert einen Startwert, wenn angemessen.
  • Validierung kann je nach Feldtyp Textlänge, Zahlenbereiche, Muster, Auswahlmöglichkeiten, Dateitypen oder Repeater-Länge begrenzen.
  • Durchsuchbar nimmt unterstützte Textfelder in den Volltextsuchindex der Sammlung auf.
  • Indiziert erstellt einen Datenbankindex für das Sortieren oder Filtern nach einem unterstützten Feld.
  • Übersetzbar steuert, ob jede Sprache ihren eigenen Wert hat. Ein nicht übersetzbarer Wert wird über Übersetzungen desselben Eintrags geteilt.

Aktivieren Sie Indiziert, wenn eine Abfrage nach diesem benutzerdefinierten Feld sortiert oder filtert. Der Index hilft der Datenbank, passende oder sortierte Einträge zu finden, verwendet aber zusätzlichen Speicher und verursacht Mehraufwand, wenn Inhalte erstellt oder aktualisiert werden. Indizieren Sie ein Feld nicht nur, weil eine Seite es anzeigt.

Indizes sind verfügbar für string-, url-, number-, integer-, boolean-, datetime-, select-, reference- und slug-Felder. Rich Text, JSON, Repeater und Mehrfachauswahl-Werte enthalten komplexere Daten und können diese Art von Index nicht verwenden.

Referenzen speichern die ID des Zieleintrags. Konfigurieren Sie eine Referenz mit der Zielsammlung und aktivieren Sie Mehrfachwerte nur, wenn das Feld mehrere Eintrags-IDs enthalten soll. Eine Referenz ermöglicht dem Code das Laden oder Identifizieren verwandter Inhalte; sie kopiert den Zieleintrag nicht in den Quelleintrag.

Felder nachträglich ändern

Bezeichnungen, Validierung, Sucheinstellungen, Indizes, Widget-Optionen und Anzeigereihenfolge können ohne Ersetzung des Feldes geändert werden. Das Hinzufügen eines Feldes behält jeden bestehenden Eintrag bei, obwohl diese Einträge einen Wert für das neue Feld benötigen, wenn die Site einen erwartet.

Die Migration muss bestehende Werte konvertieren, das Modell aktualisieren und alten und neuen Anwendungscode während des Deployments kompatibel halten. Folgen Sie Schema einer deploiten Site weiterentwickeln, bevor Sie eine dieser Änderungen vornehmen.

Verwandte Aufgaben

Verwenden Sie Mit Inhalten arbeiten, um Einträge zu erstellen und zu veröffentlichen. Verwenden Sie Inhalte abfragen, um sie zu filtern und zu sortieren. Lesen Sie Inhaltsmodell für generierte Typen und Seed-Dateien.