Sanity
Puxe documentos de um dataset do Sanity com a fonte sanity() — uma consulta GROQ seleciona os documentos, e os corpos em Portable Text deles viram Markdown.
O adaptador nativo sanity() executa uma consulta GROQ e mapeia os campos de cada documento para o frontmatter e o corpo em Portable Text para Markdown. O adaptador declara @sanity/client como dependência de runtime — uma peer opcional, então instale-a só se você usar essa fonte.
import { defineConfig } from "blume";
import { filesystem, sanity } from "blume/sources";
export default defineConfig({
content: {
sources: [
filesystem({ root: "docs" }),
sanity({
prefix: "guides",
projectId: "abc123",
dataset: "production",
query: `*[_type == "guide"]`,
// Field paths default to title / slug.current / body / _updatedAt
fields: { slug: "slug.current", body: "content" },
}),
],
},
});
Um token de leitura para um dataset privado vem da variável de ambiente SANITY_TOKEN, que o adaptador declara. Tipos de bloco personalizados do Portable Text são mapeados para componentes do Blume pela opção serializers do engine, disponível quando você constrói sanitySource diretamente e o passa para custom(). Definir serializers faz com que as páginas da fonte sejam escritas como MDX, então um componente ou diretiva retornado por um serializer é renderizado.