Saltar para o conteúdo
Blume
Esc
↑↓navegar↵abrir⌘Jpré-visualizar

Payload

Leia uma coleção do Payload pela API REST com a fonte payload(), convertendo corpos de rich text do Lexical para Markdown sem precisar instalar nada.

O adaptador nativo payload() lê uma coleção pela API REST do Payload (/api/<collection>) e converte o corpo Lexical de cada documento para Markdown: parágrafos, títulos, listas com marcadores, numeradas e de verificação, citações, links, uploads e linhas horizontais. Um corpo armazenado em um campo de texto passa direto como Markdown. A exceção são links que não sejam endereços web, de e-mail, de telefone ou relativos, que mantêm só o rótulo. Não precisa instalar nada.

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

A chave de API vem da variável de ambiente PAYLOAD_API_KEY e é enviada como users API-Key <key>. Defina authCollection quando a chave pertencer a outra coleção com autenticação habilitada. Só documentos publicados são importados: --preview busca também os rascunhos e os inclui marcados com draft: true. Os documentos são buscados com depth: 1 para que os uploads tragam suas URLs, e um caminho de upload relativo (/media/x.png) é resolvido em relação a url. Quando você cria payloadSource diretamente e o passa para custom(), um nó block ou inlineBlock é mapeado para um componente do Blume pela opção serializers do engine, usando o blockType como chave. Definir serializers faz a fonte gravar suas páginas como MDX para que os componentes retornados sejam renderizados. Um corpo armazenado em um campo de texto Markdown continua sendo Markdown.

Última atualização a 28 de setembro de 2026

Esta página foi útil?