Mit Inhalten arbeiten

Auf dieser Seite

Verwenden Sie den EmDash-Admin, um einen Eintrag vom ersten Entwurf bis zur veröffentlichten Seite zu führen. Der Editor hält Entwurfsänderungen getrennt von der Version, die Besucher sehen können, sodass Speichern und Veröffentlichen zwei getrennte Aktionen sind.

Eine Collection öffnen

Öffnen Sie /_emdash/admin auf Ihrer Website und melden Sie sich an. Wählen Sie in der Seitenleiste eine Collection aus, etwa Posts oder Pages.

Die Collection-Seite listet ihre Einträge auf. Von hier aus können Sie:

  • Add New wählen, um einen Eintrag zu erstellen;
  • nach Eintragstitel, Slug und als durchsuchbar markierten Feldern suchen;
  • nach Veröffentlichungsstatus, Autor, Byline, Datum und Locale filtern;
  • zwischen den Seiten der Einträge wechseln und wählen, ob eine Seite 20, 50 oder 100 Einträge zeigt;
  • Einträge für das gesammelte Veröffentlichen, das Zurücksetzen auf Entwurf oder das Verschieben in den Papierkorb auswählen; und
  • Trash öffnen, um einen Eintrag wiederherzustellen oder endgültig zu löschen.

Die im Editor verfügbaren Felder und Veröffentlichungsfunktionen hängen vom Inhaltsmodell der Collection ab. Eine Collection kann zum Beispiel Revisionen, Vorschauen, Taxonomien oder die Suche unterstützen.

Einen Eintrag erstellen und veröffentlichen

  1. Wählen Sie auf der Collection-Seite Add New.

  2. Füllen Sie die Pflichtfelder aus. Hat die Collection ein Titelfeld, schlägt EmDash daraus einen Slug vor. Sie können den Slug vor dem Veröffentlichen bearbeiten.

  3. Fügen Sie den Haupttext und unterstützende Felder hinzu, etwa einen Auszug, ein Beitragsbild, eine Byline, Kategorien oder Tags.

  4. Wählen Sie Save. Das erste Speichern legt den Eintrag als Entwurf an und öffnet dessen dauerhafte Editor-URL.

  5. Prüfen Sie den Entwurf. Unterstützt die Collection Vorschauen, wählen Sie Preview, um die gerenderte Seite vor dem Veröffentlichen zu sehen.

  6. Wählen Sie Publish now und bestätigen Sie. Der gespeicherte Entwurf wird die Live-Version, die öffentliche Inhaltsabfragen zurückgeben.

Der Eintrag hat eine stabile Inhalts-ID und einen separaten Slug. Die ID identifiziert weiterhin denselben Eintrag, wenn sich sein Slug ändert. Templates verwenden normalerweise den URL-seitigen Bezeichner, den getEmDashCollection() zurückgibt; der Leitfaden zum Abfragen von Inhalten erklärt beide Werte.

Rich Text schreiben

Portable-Text-Felder bieten einen Block-Editor für Überschriften, Absätze, Zitate, Listen, Links, Bilder, Videos, Galerien, Codeblöcke, Tabellen, HTML-Blöcke und wiederverwendbare Abschnitte. Installierte Plugins können weitere Blöcke hinzufügen.

Verwenden Sie die Werkzeugleiste, um den ausgewählten Text zu formatieren. Um einen Block einzufügen, wählen Sie das Steuerelement zum Hinzufügen von Blöcken neben einem Absatz oder tippen Sie / und suchen Sie einen Block nach Namen. Bild- und Galerieblöcke öffnen dieselbe Medienauswahl, die auch Bildfelder verwenden.

Sie können Bild- und Videodateien auch in den Editor ziehen oder ein kopiertes Bild oder einen Screenshot einfügen. Jede Datei wird in die Mediathek hochgeladen und erscheint nach Abschluss des Uploads zwischen den umgebenden Blöcken. Schlägt ein Upload fehl, erscheint der Grund dort, wo die Datei gestanden hätte.

Wenn Sie einen Bildblock auswählen, erscheint darüber eine Werkzeugleiste. Damit können Sie das Bild ersetzen, seinen Alt- Text bearbeiten, es ausrichten, einen Link oder eine Bildunterschrift hinzufügen oder den Block löschen. Die Schaltfläche Alt text wird hervorgehoben, sobald das Bild eine Beschreibung hat, und beim Darüberfahren wird die Beschreibung angezeigt. Alt-Text, der nur dem Dateinamen eines Mediathek- Bildes entspricht, zählt nicht. Um dem Bild eine Bildunterschrift zu geben, wählen Sie Add caption und geben Sie den Text in das Feld ein, das sich unter dem Bild öffnet; drücken Sie dann die Eingabetaste, um darunter weiterzuschreiben. Das Bildunterschriftenfeld bleibt verborgen, solange ein Bild keine Bildunterschrift hat. Von einem ausgewählten Bild aus springt die Tabulatortaste zur Bildunterschrift und dann zur Werkzeugleiste.

Image settings in der Werkzeugleiste öffnet alle Einstellungen für diese Verwendung des Bildes, einschließlich seiner Anzeigegröße und eines optionalen Tooltips. Edit asset öffnet dort das zugrunde liegende Mediathek-Element, bei dem das Ändern oder Ersetzen des Assets andere Einträge betreffen kann, die es verwenden. Siehe Mediathek für diesen Unterschied.

Ein Video hinzufügen

Tippen Sie /video und wählen Sie dann ein Video aus der Mediathek oder laden Sie in der sich öffnenden Auswahl eines hoch. Der Videoblock wird hinzugefügt, sobald Sie ein Video ausgewählt haben. Sie können eine Videodatei auch an beliebiger Stelle im Text ablegen.

Das Video wird im Editor so abgespielt, wie es auf Ihrer Website erscheint, in der Breite des Textes.

Bewegen Sie den Mauszeiger über ein Video oder wählen Sie es aus, damit Replace video, Add caption und Delete video in seiner Ecke erscheinen. Add caption öffnet unter dem Video ein Feld für die Beschriftung; drücken Sie dort die Eingabetaste, um darunter weiterzuschreiben. Von einem ausgewählten Video aus springt die Tabulatortaste zum Player, wo die Leertaste die Wiedergabe startet, und dann zur Beschriftung und zu den drei Schaltflächen. Escape kehrt zum Block zurück.

Uploads unterliegen dem Größenlimit der Mediathek, maxUploadSize, das 50 MiB beträgt, sofern Sie es nicht erhöhen.

HTML, CSS und JavaScript hinzufügen

Ein HTML-Block enthält Code, den die anderen Blöcke nicht ausdrücken können, etwa eine Einbettung, ein Registrierungsformular oder ein kleines Widget. Seine Tabs heißen HTML, CSS, JS und Preview. Jeder Code-Tab ist ein Code-Editor, in dem die Tabulatortaste einrückt; drücken Sie Escape, um zum umgebenden Text zurückzukehren. Die Tabs CSS und JS sind optional: Sie können auch ein ganzes Snippet samt seinen <style>- und <script>-Elementen in den Tab HTML einfügen.

Preview zeigt den Block so, wie Ihre Website ihn rendert. Wenn Sie einen Eintrag öffnen, wartet ein Block, der JavaScript ausführt, bis Sie Run preview wählen, damit ein fehlerhaftes Skript den Editor nicht einfrieren lassen kann.

Das Menü des Blocks legt fest, wie Ihre Website ihn rendert:

  • Isolated frame führt das HTML, CSS und JavaScript des Blocks in einem Frame mit Sandbox aus, der mit seinem Inhalt wächst. Der Frame kann weder die Cookies, den Speicher noch die Seiten Ihrer Website lesen, und die Styles Ihrer Website erreichen ihn nicht. Relative Links werden vom Stammverzeichnis Ihrer Website aus aufgelöst. Nachdem ein Besucher in den Frame geklickt hat, kann dieser andere Seiten im Tab des Besuchers oder in einem neuen Tab öffnen. Neue HTML-Blöcke verwenden diesen Modus, aus einer anderen Website oder einem anderen Browser-Tab eingefügte Blöcke dagegen nicht. Richten Sie die Größe von Inhalten nicht am Viewport des Frames aus, etwa mit height: 100vh: Der Frame wächst, um den Inhalt aufzunehmen, wodurch der Inhalt wieder höher wird, bis der Frame 20.000 Pixel erreicht.
  • Inline fügt das HTML in die Seite ein, wo es die Styles Ihrer Website verwendet. Ihre Website behält Textformatierung, Links, Listen, Tabellen, Bilder und iframes bei und entfernt anderes Markup, etwa Skripte, <style>-Elemente, style-Attribute, Medien und Formularelemente. iframes von anderen Websites als YouTube und Vimeo werden geleert. Ein Inline-Block hat keinen Tab CSS oder JS.

Suchmaschinen behandeln Text in einem isolierten Frame möglicherweise nicht als Teil der Seite. Setzen Sie für die Suche wichtigen Text in Absätze oder in einen Inline-Block.

Eine Seite einer anderen Website einbetten

Ein iframe-Block zeigt eine Seite einer anderen Website, etwa ein Video, eine Karte oder ein Formular. Tippen Sie /iframe und fügen Sie dann den Einbettungscode oder einen Link der Website in den Tab Code ein. YouTube- und Vimeo-Links werden zu ihren Playern, und jeder andere https-Link wird unverändert eingebettet. Preview zeigt die eingebettete Seite. Wenn Sie einen Eintrag öffnen, wartet ein gespeicherter Block, bis Sie Load preview wählen, sodass der Admin die Seiten anderer Websites erst lädt, wenn Sie es verlangen. Iframe-Blöcke, die aus einer anderen Website oder einem anderen Browser-Tab eingefügt werden, kommen leer an.

Es können nur https-Seiten eingebettet werden, und der Block behält nur die Teile eines Einbettungscodes, die er braucht: die Adresse, den Titel, die Größe, die Vollbildunterstützung und die Berechtigungen, die Player verwenden. Manche Websites weigern sich, innerhalb der Seite einer anderen Website zu erscheinen; ihre Vorschau bleibt dann leer oder zeigt einen Fehler dieser Website.

Ein Einbettungscode, der ein Skript statt eines iframes ausführt, etwa manche Social-Media-Beiträge, gehört in einen HTML-Block.

Entwurfsänderungen speichern

Nach dem ersten Speichern speichert der Editor Änderungen automatisch zwei Sekunden, nachdem Sie aufgehört haben zu tippen. Die Schaltfläche Save wechselt über Saving… zu Saved, damit Sie bestätigen können, dass der Server den Entwurf akzeptiert hat. Das automatische Speichern ersetzt die aktuelle Autosave-Revision, statt den Revisionsverlauf mit einem Kontrollpunkt für jede Pause zu füllen.

Wählen Sie Save, wenn ein Punkt der Bearbeitungsfolge im Revisionsverlauf erhalten bleiben soll. Schlägt ein Speichern fehl, behält der Editor die ungespeicherten Felder bei und zeigt den Fehler an. Verlassen Sie die Seite nicht, bis die Schaltfläche zu Saved zurückkehrt oder Sie die ungespeicherte Arbeit anderweitig kopiert haben.

Bei einem veröffentlichten Eintrag aktualisiert das Speichern nur den Entwurf. Besucher erhalten weiterhin die vorherige Live-Revision. Verwenden Sie Preview draft, um die ausstehende Version zu prüfen, Live View, um die öffentliche Version zu prüfen, und Publish changes, wenn der Entwurf bereit ist, sie zu ersetzen.

Das Ändern des Slugs eines veröffentlichten Eintrags folgt demselben Entwurfsablauf. Die öffentliche URL ändert sich, wenn Sie den Entwurf veröffentlichen, nicht wenn das automatische Speichern läuft.

Mit einem anderen Redakteur arbeiten

Das Öffnen eines Eintrags setzt eine Bearbeitungssperre für diesen Eintrag und diese Locale. Hat eine andere Person ihn bereits geöffnet, benennt EmDash den Inhaber der Sperre und bietet zwei Möglichkeiten:

  • Open read-only zeigt den Eintrag ohne Bearbeitung an, sodass Sie keine Arbeit eintippen, die verworfen würde.
  • Take over übergibt Ihnen die Sperre. Die andere Person behält, was sie getippt hat, aber innerhalb von zwei Minuten meldet ihr Editor, dass Sie den Eintrag halten. Ihr nächstes Speichern wird abgelehnt.

Die Sperre wird erneuert, solange der Eintrag geöffnet ist, und freigegeben, wenn Sie den Editor verlassen oder den Tab schließen. Schließt sich der Browser oder der Computer, ohne sie freizugeben, läuft die Sperre sieben Minuten nach ihrer letzten Erneuerung ab.

Sperren sind für jede Locale unabhängig, sodass zwei Personen verschiedene Übersetzungen desselben Eintrags bearbeiten können. Ein Skript, API-Client oder MCP-Client wird ebenfalls abgelehnt, solange ein anderer Redakteur die Sperre hält, es sei denn, er verwendet die dokumentierte Überschreibung. Siehe Eintrags-Bearbeitungssperre für das vollständige API-Verhalten und Inhaltslebenszyklus und Bylines für die MCP- Tools.

Ein Administrator kann die Sperre für eine Collection unter Content Types, dann der Collection, dann Edit locking ausschalten.

Änderungen veröffentlichen oder planen

Veröffentlichen und Planen verwenden getrennte Steuerelemente:

  • Publish now schaltet einen neuen Entwurf nach Bestätigung live.
  • Publish changes schaltet ausstehende Änderungen an einem veröffentlichten Eintrag nach Bestätigung live.
  • Schedule legt fest, wann ein neuer Eintrag oder ausstehende Änderungen live gehen.
  • Change schedule aktualisiert einen bestehenden Zeitplan.
  • Remove schedule bricht einen bestehenden Zeitplan ab.
  • Unpublish entfernt die Live-Revision aus öffentlichen Abfragen, bricht jeden Zeitplan ab und behält einen bearbeitbaren Entwurf.

Um einen Eintrag zu planen, speichern Sie ihn zuerst, wählen Sie Schedule unter der Veröffentlichungsübersicht und wählen Sie ein zukünftiges Datum und eine Uhrzeit. Der Editor zeigt die für den Zeitplan verwendete Zeitzone an. Bis zu diesem Zeitpunkt bleibt die aktuelle Live-Revision öffentlich; bei einem neuen Eintrag ist noch nichts öffentlich.

Node.js-Bereitstellungen führen den Durchlauf für die geplante Veröffentlichung automatisch aus. Cloudflare Workers benötigen einen Cron-Trigger. Die Cloudflare-Starter-Templates enthalten ihn; bestehende Bereitstellungen können Geplantes Veröffentlichen folgen, um den Trigger zu prüfen.

Den Veröffentlichungskalender prüfen

Der Kalender zeigt, was veröffentlicht wurde und was in Ihren Collections geplant ist. Contributors und höhere Rollen können Calendar über die Seitenleiste oder die Befehlspalette öffnen. Ist etwas geplant, verlinkt auch die Anzeige Scheduled des Dashboards darauf.

Der Kalender hat zwei Ansichten:

  • Month zeigt ein Raster von Tagen. Veröffentlichte Einträge erscheinen als einfache Zeilen und geplante Einträge als Karten. Fahren Sie mit der Maus über einen Eintrag oder fokussieren Sie ihn, um seinen vollständigen Titel, Status, Zeit und seine Collection zu sehen. Hat ein Tag mehr Einträge, als hineinpassen, wählen Sie +N more, um sie alle aufzulisten.
  • Agenda listet den Monat nach Tagen auf, mit der Zeit jedes Eintrags. Im aktuellen Monat sind Tage vor heute eingeklappt, es sei denn, einer davon hat einen überfälligen Eintrag, und eine rote Linie markiert die Gegenwart.

Auf einem Smartphone oder einem anderen schmalen Bildschirm öffnet sich der Kalender in Agenda, und Month zeigt eine Datumsauswahl mit Punkten an den Tagen, die Einträge haben. Wählen Sie einen Tag, um seine Einträge aufzulisten.

Wählen Sie einen Eintrag, um seine Details in einem Seitenbereich zu öffnen, oder klicken Sie mit Strg (Cmd unter macOS), um ihn in einem neuen Tab im Editor zu öffnen. Das Panel zeigt Status, Zeit, Collection, Locale und Übersetzungen, Bylines des Eintrags und wann er zuletzt bearbeitet wurde. Vom Panel aus können Sie den Eintrag im Editor öffnen, geplante Änderungen in der Vorschau ansehen oder einen veröffentlichten Eintrag auf der Website anzeigen. Wenn Sie den Eintrag veröffentlichen dürfen (Authors für ihre eigenen Einträge sowie Editors und höhere Rollen für jeden Eintrag), können Sie ihn auch neu planen, seinen Zeitplan entfernen oder einen überfälligen Eintrag sofort veröffentlichen. Auf einem Smartphone öffnet sich das Panel als Sheet am unteren Bildschirmrand.

Mit Filter schränken Sie beide Ansichten nach Collection und Status ein, auf mehrsprachigen Websites außerdem nach Locale. Die Filter, die Ansicht, der Monat und der geöffnete Eintrag werden in der Seiten-URL gespeichert, sodass Sie sie als Lesezeichen speichern oder teilen können.

Einträge werden in der Zeitzone der Website auf Tage verteilt, die der Kalender neben dem Monat nennt. Verwendet Ihr Browser eine andere Zeitzone, weist der Kalender darauf hin, und Eintragszeiten erscheinen auch in Ihrer eigenen Zeitzone.

Der Kalender zeigt:

  • veröffentlichte Einträge an dem Datum, an dem sie veröffentlicht wurden;
  • geplante Einträge an ihrem geplanten Datum; und
  • geplante Änderungen an einem veröffentlichten Eintrag an ihrem geplanten Datum, markiert mit Update. Sobald die Änderungen live gehen, erscheint der Eintrag nur noch an seinem ursprünglichen Veröffentlichungsdatum.

Ein Zeitplan, dessen Zeitpunkt mehr als zwei Minuten überschritten ist, wird mit Overdue markiert. Das bedeutet meist, dass der Durchlauf für die geplante Veröffentlichung nicht läuft; siehe Änderungen veröffentlichen oder planen.

Der Kalender lässt Entwürfe ohne Zeitplan, Einträge im Papierkorb und in der Seitenleiste ausgeblendete Collections aus. Die Anzeige Scheduled des Dashboards umfasst jeden Monat und schließt ausgeblendete Collections ein, daher kann sie höher sein als das, was der Kalender für einen Monat zeigt.

Der Kalender lädt höchstens 1.000 Einträge für einen Monat, einschließlich der Tage aus benachbarten Monaten, die das Raster anzeigt. Sind es mehr, gibt er an, an welchem Tag die geladenen Einträge enden, und markiert die späteren Tage als nicht geladen.

Revisionen prüfen und wiederherstellen

Collections mit Revisionsunterstützung zeigen Revisions im Einstellungsbereich. Klappen Sie ihn auf, um die gespeicherten Versionen des Eintrags zu sehen, nach Tagen gruppiert und mit Uhrzeit und der Person, die jede Version gespeichert hat. Current version markiert die Version im Editor, und Published markiert die Version, die Besucher sehen. Die Liste zeigt die 20 neuesten Versionen; wählen Sie Show older versions, um die übrigen zu sehen.

Wählen Sie eine Version, um sie schreibgeschützt im Editor anzuzeigen:

  • Hinzugefügter Text wird hervorgehoben und entfernter Text durchgestrichen, jeweils in der Farbe der Person, die die Version gespeichert hat. Der Punkt neben ihrem Namen in der Liste zeigt diese Farbe.
  • Der Listeneintrag der Version beschreibt jede Änderung, zum Beispiel “Changed the title” oder “Edited “Most teams plan posts in…””. Wählen Sie eine Änderung, um zu ihr zu scrollen.
  • Schalten Sie Show changes aus, um die Version ohne Hervorhebungen zu lesen.

Save und Publish sind pausiert, solange eine Version geöffnet ist, und Ihre ungespeicherten Änderungen bleiben im Editor. Wählen Sie das × in der Leiste (Back to editing) oder drücken Sie Esc, um zu ihnen zurückzukehren. Wählen Sie auf einem Smartphone eine Version im Einstellungsbereich und wechseln Sie dann mit den Pfeilen in der Leiste am unteren Rand des Editors zwischen den Versionen.

Um eine Version erneut zu verwenden, wählen Sie in dieser Leiste Restore. Beim Wiederherstellen wird die Version als neuer Entwurf oben in die Liste kopiert. Ihr bisheriger Entwurf bleibt in der Liste, und Besucher sehen weiterhin die veröffentlichte Version, bis Sie veröffentlichen. Ist der Eintrag geplant, geht die wiederhergestellte Version zum geplanten Zeitpunkt live.

Eine Version, deren Inhalt mit einer früheren übereinstimmt, ist mit “Restored from” und dem Datum dieser Version markiert. Eine Version, die mit der aktuellen übereinstimmt, zeigt statt Restore die Angabe Same as current version.

Einen Eintrag übersetzen

Wenn Internationalisierung aktiviert ist, zeigt das Panel Translations die konfigurierten Locales für den aktuellen Eintrag.

  1. Öffnen Sie den Quelleintrag und suchen Sie Translations im Einstellungsbereich.

  2. Wählen Sie Translate für eine Locale, die noch keinen Eintrag hat.

  3. Bearbeiten Sie den kopierten Titel, den Slug, den Haupttext und andere übersetzbare Felder.

  4. Wählen Sie Save und veröffentlichen oder planen Sie dann die Übersetzung, wenn sie bereit ist.

Jede Übersetzung hat ihren eigenen Slug, Veröffentlichungsstatus, Zeitplan und Revisionsverlauf. Verwenden Sie die Locale- Auswahl auf der Collection-Seite, um jeweils eine Sprache anzuzeigen.

Inhalte in den Papierkorb verschieben

Öffnen Sie die Aktionen eines Eintrags oder wählen Sie auf der Collection-Seite eine oder mehrere Zeilen aus und wählen Sie dann Move to Trash. Einträge im Papierkorb erscheinen nicht mehr in gewöhnlichen Inhaltsabfragen, bleiben aber auf dem Tab Trash der Collection verfügbar.

Wählen Sie in Trash Restore, um einen Eintrag in die Collection zurückzubringen. Ein wiederhergestellter Eintrag kommt als Entwurf ohne Zeitplan zurück. Veröffentlichen Sie ihn, um ihn öffentlich zu machen.

Inhaltsarbeit automatisieren

Die REST-API und die EmDash-CLI unterstützen denselben Entwurfs- und Veröffentlichungsworkflow. Collection-Felder gehören in das data-Objekt der Anfrage. Ein Update speichert eine Entwurfsrevision; das Veröffentlichen ist eine separate Aktion. Übergeben Sie beim Aktualisieren oder Veröffentlichen den neuesten _rev-Wert, damit der Server einen veralteten Schreibvorgang ablehnt, statt neuere Arbeit zu ersetzen.

Verwenden Sie die Referenz zum Inhaltslebenszyklus für Statusübergänge, Berechtigungen, Konflikte und Hooks. Die REST-API-Referenz definiert Anfrage- und Antwortkörper, und die CLI-Referenz behandelt entsprechende Terminal- Befehle.

Fahren Sie mit Inhalte abfragen fort, um veröffentlichte Einträge auf einer Astro- Website zu rendern, oder mit der Mediathek, um wiederverwendbare Dateien hinzuzufügen und zu verwalten.