Zum Inhalt springen
Blume
Esc
↑↓navigieren↵öffnen⌘Jvorschau

Payload

Lies eine Payload-Collection mit der payload()-Quelle über ihre REST-API ein und wandle Lexical-Rich-Text-Inhalte in Markdown um. Du musst dafür nichts installieren.

Der integrierte payload()-Adapter liest eine Collection über die Payload-REST-API (/api/<collection>) und wandelt den Lexical-Body jedes Dokuments in Markdown um: Absätze, Überschriften, Aufzählungs-, nummerierte und Checklisten, Zitate, Links, Uploads und horizontale Linien. Ein Body in einem Textfeld wird unverändert als Markdown übernommen. Nur bei einem Link, der keine Web-, Mail-, Telefon- oder relative Adresse ist, bleibt allein die Beschriftung erhalten. Du musst nichts installieren.

import { defineConfig } from "blume";
import { filesystem, payload } from "blume/sources";

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      payload({
        prefix: "handbook",
        url: "https://cms.example.com",
        collection: "docs",
        // Field paths default to title / description / slug / content / updatedAt
        fields: { body: "richText" },
        // Extra query parameters: where[...], sort
        params: { sort: "title" },
      }),
    ],
  },
});

Der API-Schlüssel kommt aus der Umgebungsvariable PAYLOAD_API_KEY und wird als users API-Key <key> gesendet. Setze authCollection, wenn der Schlüssel zu einer anderen Collection mit aktivierter Authentifizierung gehört. Importiert werden nur veröffentlichte Dokumente. Mit --preview werden auch Entwürfe abgefragt und mit draft: true bereitgestellt. Dokumente werden mit depth: 1 abgerufen, damit Uploads ihre URLs mitbringen. Ein relativer Upload-Pfad (/media/x.png) wird relativ zu url aufgelöst. Ein block- oder inlineBlock-Knoten wird über die serializers-Option der Engine einer Blume-Komponente zugeordnet. Der Schlüssel dafür ist blockType. Das funktioniert, wenn du payloadSource direkt erstellst und an custom() übergibst. Wenn du serializers setzt, werden die Seiten der Quelle als MDX geschrieben, damit die zurückgegebenen Komponenten gerendert werden. Ein Body in einem Markdown-Textfeld bleibt Markdown.

Zuletzt aktualisiert am 28. September 2026

War diese Seite hilfreich?