コンテンツにスキップ
Blume
Esc
↑↓移動↵開く⌘Jプレビュー

Payload

payload() ソースを使って Payload コレクションを REST API 経由で読み込み、Lexical リッチテキストの本文を Markdown に変換します。インストールは不要です。

組み込みの payload() アダプターは、Payload REST API(/api/<collection>)を通じてコレクションを読み込み、各ドキュメントの Lexical 本文を Markdown に変換します。変換の対象は、段落、見出し、箇条書き・番号付きリスト・チェックリスト、引用、リンク、アップロード、水平線です。テキストフィールドに格納された本文は Markdown としてそのまま渡されます。ただし、Web、メール、電話、相対アドレスのいずれでもないリンクは、ラベルのみが残ります。インストールは不要です。

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" },
      }),
    ],
  },
});

API キーは PAYLOAD_API_KEY 環境変数から読み込まれ、users API-Key <key> として送信されます。キーが別の認証対応コレクションに属している場合は、authCollection を設定してください。インポートされるのは公開済みのドキュメントのみです。--preview を指定すると下書きをリクエストし、draft: true を付けてステージングします。ドキュメントは depth: 1 で取得されるため、アップロードには URL が含まれます。また、相対的なアップロードパス(/media/x.png)は url を基準に解決されます。payloadSource を直接構築して custom() に渡す場合は、エンジンの serializers オプションを使って、block または inlineBlock ノードを blockType をキーとして Blume コンポーネントにマッピングできます。serializers を設定すると、返されたコンポーネントがレンダリングされるように、ソースのページは MDX として書き出されます。なお、Markdown テキストフィールドに格納された本文は Markdown のままです。

最終更新 2026年9月28日

このページは役に立ちましたか?