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

Strapi

Lies einen Strapi-Content-Type über seine REST-API mit der strapi()-Quelle ein und wandle Blocks-Inhalte sowohl unter Strapi 4 als auch unter Strapi 5 in Markdown um.

Der integrierte strapi()-Adapter liest einen Content-Type über die Strapi-REST-API (/api/<pluralApiId>) und wandelt den Blocks-Inhalt jedes Eintrags in Markdown um: Absätze, Überschriften, Listen, Zitate, Codeblöcke, Bilder und Links. Ein Markdown-Rich-Text-Feld wird unverändert übernommen. Die einzige Ausnahme sind Links, die weder auf eine Web-, Mail- oder Telefonadresse noch auf eine relative Adresse verweisen. Von ihnen bleibt nur die Beschriftung erhalten. Antworten von Strapi 5 werden direkt gelesen, und die attributes-Hülle von Strapi 4 wird aufgelöst, sodass dieselben Feldpfade gelten. Du musst nichts installieren.

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

export default defineConfig({
  content: {
    sources: [
      filesystem({ root: "docs" }),
      strapi({
        prefix: "guides",
        url: "https://cms.example.com",
        contentType: "guides",
        // locale: "en"
        // Field paths default to title / description / slug / content / updatedAt
        fields: { body: "body" },
        // Extra query parameters: filters[...], sort
        params: { "filters[section][$eq]": "sdk" },
      }),
    ],
  },
});

Das API-Token stammt aus der Umgebungsvariable STRAPI_API_TOKEN und wird als Bearer-Token gesendet. Einträge werden mit populate=* abgerufen, damit Bilder ihre URLs mitbringen (setze populate, um das einzuschränken). Ein relativer Upload-Pfad (/uploads/x.png) wird relativ zu url aufgelöst. Importiert werden nur veröffentlichte Einträge. Mit --preview werden Entwürfe angefragt (status=draft unter Strapi 5, publicationState=preview unter Strapi 4). Jedes Dokument, das noch nie veröffentlicht wurde, wird dabei mit draft: true bereitgestellt. Bei einem veröffentlichten Dokument siehst du in der Vorschau seinen neuesten Entwurf.

Zuletzt aktualisiert am 28. September 2026

War diese Seite hilfreich?