portable-text-conversion

Converta conteúdo HTML e Markdown em blocos Portable Text para Sanity. Use ao migrar conteúdo de CMSs legados, importando HTML ou Markdown para o Sanity,…

npx skills add https://github.com/sanity-io/agent-toolkit --skill portable-text-conversion

Portable Text Conversion

Convert external content (HTML, Markdown) into Portable Text for Sanity. Three main approaches:

  1. markdownToPortableText — Convert Markdown directly using @portabletext/markdown (recommended for Markdown)
  2. htmlToBlocks — Parse HTML into PT blocks using @portabletext/block-tools (for HTML migration)
  3. Manual construction — Build PT blocks directly from any source (APIs, databases, etc.)

Portable Text Specification

Understand the target format before converting. PT is an array of blocks:

[
  {
    "_type": "block",
    "_key": "abc123",
    "style": "normal",
    "children": [
      {"_type": "span", "_key": "def456", "text": "Hello ", "marks": []},
      {"_type": "span", "_key": "ghi789", "text": "world", "marks": ["strong"]}
    ],
    "markDefs": []
  },
  {
    "_type": "block",
    "_key": "jkl012",
    "style": "h2",
    "children": [
      {"_type": "span", "_key": "mno345", "text": "A heading", "marks": []}
    ],
    "markDefs": []
  },
  {
    "_type": "image",
    "_key": "pqr678",
    "asset": {"_type": "reference", "_ref": "image-abc-200x200-png"}
  }
]

Key rules:

  • Every block and span needs _key (unique within the array)
  • _type: "block" is for text blocks; custom types use their own _type
  • markDefs holds annotation data; marks on spans reference markDefs[*]._key or are decorator strings
  • Lists use listItem ("bullet" | "number") and level (1, 2, 3...) on regular blocks

Conversion Rules

Read the rule file matching your source format:

  • Markdown → Portable Text: rules/markdown-to-pt.md@portabletext/markdown with markdownToPortableText (recommended)
  • HTML → Portable Text: rules/html-to-pt.md@portabletext/block-tools with htmlToBlocks
  • Manual PT Construction: rules/manual-construction.md — build blocks programmatically from any source

Note: @sanity/block-tools is the legacy package name. Always use @portabletext/block-tools for new projects. The API is the same.

Mais skills de sanity-io

sanity-migration
sanity-io
Planeja, implementa e revisa migrações de outros CMSs e sistemas de conteúdo para o Sanity. Use ao migrar ou replataformar para o Sanity a partir de AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, arquivos Markdown/MDX/frontmatter, exportações WXR/XML, APIs de CMS, dumps de banco de dados, HTML estático, ou ao projetar fluxos de extração, transformação, conversão de Portable Text, migração de ativos, redirecionamentos, validação e cutover.
officialdevelopmentdatabase
create-agent-with-sanity-context
sanity-io
Construa agentes de IA com acesso estruturado ao conteúdo do Sanity via Agent Context. Use ao configurar um chatbot com Sanity, conectando um assistente de IA ao Sanity…
official
dial-your-context
sanity-io
Sessão interativa para criar conteúdo do campo Instruções para um Context MCP do Sanity Agent. Use esta habilidade sempre que usuários mencionarem ajuste de contexto do agente, melhoria…
official
optimize-agent-prompt
sanity-io
Ajuste seu agente de contexto do Sanity Agent por meio de conversa guiada. Transforma dados de exploração em instruções prontas para produção e cria um prompt de sistema…
official
shape-your-agent
sanity-io
Sessão interativa para criar um prompt de sistema para um agente de IA alimentado pelo Sanity Agent Context MCP. Use esta habilidade quando os usuários quiserem definir a personalidade do agente,…
official
content-experimentation-best-practices
sanity-io
Orientação estruturada para projetar, executar e analisar experimentos de conteúdo visando melhorar conversão e engajamento. Abrange frameworks de hipóteses, seleção de métricas, cálculo de tamanho amostral e testes de significância estatística em experimentos A/B e multivariados. Inclui recursos detalhados sobre valores-p, intervalos de confiança, análise de poder e métodos bayesianos para interpretação de resultados. Fornece padrões de integração com CMS para gerenciar variantes no nível de campo e conectar sistemas externos...
official
content-modeling-best-practices
sanity-io
Orientação para modelagem de conteúdo estruturado voltada ao design de esquemas, reutilização e entrega multicanal. Aborda princípios fundamentais: tratar conteúdo como dados, e não como páginas; manter fontes únicas de verdade; projetar para canais futuros; e otimizar fluxos de trabalho editoriais. Inclui estruturas de decisão para referências versus objetos incorporados, separação de responsabilidades e padrões de reutilização de conteúdo. Oferece orientação sobre taxonomia e classificação para abordagens planas, hierárquicas e facetadas. Aplica-se a...
official
portable-text-serialization
sanity-io
Renderize e serialize Portable Text para React, Svelte, Vue, Astro, HTML, Markdown e texto simples. Use ao implementar a renderização de Portable Text em qualquer frontend…
official