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 のままです。