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

Contentful

Lies einen Contentful-Content-Type mit der Quelle contentful() über die Delivery API und wandle Rich-Text-Inhalte in Markdown um – ganz ohne Installation.

Der eingebaute Adapter contentful() liest die Einträge eines Content Types über die Content Delivery API und wandelt den Rich-Text-Inhalt jedes Eintrags in Markdown um. Überschriften, Formatierungen, Links, Listen, Zitate, Tabellen und eingebettete Assets werden zu ihren Markdown-Entsprechungen. Steht der Inhalt in einem Markdown-Langtextfeld, wird er unverändert übernommen. Es gibt eine Ausnahme: Ist ein Link weder eine Web-, Mail- oder Telefonadresse noch eine relative Adresse (etwa eine javascript:-URL), bleibt nur sein Linktext erhalten, genau wie im Rich Text. Du musst nichts installieren, denn der Adapter spricht direkt mit der REST API.

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

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      contentful({
        prefix: "guides",
        space: "abc123",
        contentType: "guide",
        // environment: "master", locale: "en-US"
        // Field ids default to title / description / slug / body, and the
        // date to sys.updatedAt
        fields: { body: "content" },
        // Extra Delivery API query parameters
        params: { "fields.section": "sdk" },
      }),
    ],
  },
});

Das Delivery-API-Token kommt aus der Umgebungsvariable CONTENTFUL_ACCESS_TOKEN, die der Adapter deklariert. Mit --preview liest der Adapter Entwürfe über die Preview API und verwendet dabei CONTENTFUL_PREVIEW_TOKEN. Die Preview API akzeptiert keine Delivery-Tokens. Fehlt das Preview-Token, bricht --preview deshalb mit einer klaren Fehlermeldung ab und greift nicht auf CONTENTFUL_ACCESS_TOKEN zurück. Assets werden nicht heruntergeladen, sondern direkt vom CDN von Contentful eingebunden, da ihre URLs stabil sind. Du kannst einen eingebetteten Eintrag einer Blume-Komponente zuordnen, indem du contentfulSource direkt erstellst und an custom() übergibst. Die Zuordnung legst du über die Engine-Option serializers fest, jeweils anhand der Content-Type-ID. Wenn du serializers setzt, werden die Seiten der Quelle als MDX geschrieben, damit die zurückgegebenen Komponenten gerendert werden. Gibt es für einen eingebetteten Eintrag keinen Serializer, wird er in einem Kommentar vermerkt. Ein Link auf einen anderen Eintrag erscheint als reiner Text, weil es keine Route gibt, auf die er zeigen könnte.

Zuletzt aktualisiert am 28. September 2026

War diese Seite hilfreich?