コンテンツにスキップ
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; order (no default) sets the sidebar order
        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 を基準に解決されます。アップロードはダウンロードされず、その URL のまま参照されます。この URL は Notion のものとは異なり有効期限が切れないため、読者のブラウザは Payload サーバーまたはそのストレージから直接読み込みます。代わりにビルド時に Blume でダウンロードして最適化したい場合は、image.domains でそのホストを許可してください。payloadSource を直接構築して custom() に渡す場合は、エンジンの serializers オプションを使って、block または inlineBlock ノードを blockType をキーとして Blume コンポーネントにマッピングできます。serializers を設定すると、返されたコンポーネントがレンダリングされるように、ソースのページは MDX として書き出されます。なお、Markdown テキストフィールドに格納された本文は Markdown のままです。Markdown に相当するものがないノードや、シリアライザーが設定されていないブロックはコメントとして除外され、ソースはそのノードとページ名を示す BLUME_SOURCE_UNSUPPORTED_NODE 警告を出します。

Payload CMS でドキュメント Web サイトを構築するでは、一連の流れを最初から最後まで解説しています。コレクションを検索可能なドキュメントサイトとして公開し、下書きのプレビューを利用できるようにして、編集者が公開するたびに再ビルドされるようにします。

最終更新

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