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

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. Um corpo guardado em um campo de string em Markdown passa adiante como foi escrito. A exceção são os links que não sejam um endereço web, de e-mail, de telefone ou relativo (uma URL javascript:, por exemplo), que ficam só com o rótulo. 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. O adaptador declara essa variável, então blume dev e blume build avisam quando ela não está definida; um dataset público funciona sem ela. Sem token, o Sanity responde à consulta de um dataset privado com nenhum documento em vez de um erro. Por isso, quando uma consulta não encontra nada e o token não está definido, a fonte adiciona um aviso BLUME_MISSING_SECRET dizendo isso. Com --preview, o adaptador lê rascunhos com a perspectiva previewDrafts, que o @sanity/client 8 informa ter sido renomeada para drafts; o nome antigo ainda funciona, e o @sanity/client 6 aceita só o antigo. 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.

Use o Sanity como CMS para documentação de desenvolvedores mostra o processo de ponta a ponta: editores escrevendo no Sanity Studio enquanto os desenvolvedores mantêm o Markdown no Git, com rascunhos só em pré-visualizações protegidas.

Última atualização a

Esta página foi útil?