portable-text-conversion

tarafından sanity-io

HTML ve Markdown içeriğini Sanity için Portable Text bloklarına dönüştürün. Eski CMS'lerden içerik taşırken, HTML veya Markdown'ı Sanity'ye aktarırken kullanın.

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.

sanity-io tarafından daha fazla skill

tdd
sanity-io
Kırmızı-yeşil-yeniden düzenleme döngüsüyle test odaklı geliştirme. Kullanıcı TDD kullanarak özellikler geliştirmek veya hataları düzeltmek istediğinde, "kırmızı-yeşil-yeniden düzenleme"den bahsettiğinde, istediğinde…
performance-optimization
sanity-io
Uygulama performansını optimize eder. Performans gereksinimleri olduğunda, performans düşüşlerinden şüphelendiğinizde veya Core Web Vitals ya da yükleme süreleri…
content-experimentation-best-practices
sanity-io
Dönüşüm ve etkileşimi artırmak için içerik deneyleri tasarlama, yürütme ve analiz etme konusunda yapılandırılmış rehberlik. Hipotez çerçeveleri, metrik seçimi, örneklem büyüklüğü hesaplama ve A/B ile çok değişkenli deneylerde istatistiksel anlamlılık testini kapsar. Sonuçları yorumlamak için p-değerleri, güven aralıkları, güç analizi ve Bayes yöntemleri hakkında ayrıntılı kaynaklar sunar. Varyantları alan düzeyinde yönetmek ve harici bağlantı kurmak için CMS entegrasyon modelleri sağlar...
content-modeling-best-practices
sanity-io
Yapılandırılmış içerik modelleme rehberliği: şema tasarımı, yeniden kullanılabilirlik ve çok kanallı dağıtım için. Temel prensipleri kapsar: içeriği sayfa yerine veri olarak ele almak, tek doğruluk kaynağını korumak, gelecekteki kanallar için tasarlamak ve editör iş akışlarını optimize etmek. Referanslar ile gömülü nesneler arasında karar çerçeveleri, endişelerin ayrıştırılması ve içerik yeniden kullanım desenleri sunar. Düz, hiyerarşik ve yönlü yaklaşımlar için taksonomi ve sınıflandırma rehberliği sağlar. Şunlar için geçerlidir...
portable-text-serialization
sanity-io
Portable Text'i React, Svelte, Vue, Astro, HTML, Markdown ve düz metne dönüştürüp serileştirin. Herhangi bir ön uçta Portable Text işleme uygularken kullanın…
sanity-best-practices
sanity-io
Sanity CMS geliştirme için çerçeveler ve konular arasında kapsamlı en iyi uygulamalar ve entegrasyon kılavuzları. Next.js, Nuxt, Astro, Remix, SvelteKit ve Angular dahil olmak üzere 10'dan fazla çerçeve entegrasyonunu, çerçeveye özel desenler ve kurulum rehberliği ile kapsar. Şema tasarımı, GROQ sorgu optimizasyonu, Görsel Düzenleme, Portable Text, görseller, TypeGen, yerelleştirme ve içerik taşımaları için konu kılavuzları içerir. Görev türüne göre yalnızca ilgili kılavuzları yüklemek için hızlı başvuru yapısı sağlar,...
sanity-migration
sanity-io
Diğer CMS ve içerik sistemlerinden Sanity’ye geçişleri planlar, uygular ve gözden geçirir. AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, Markdown/MDX/frontmatter dosyaları, WXR/XML dışa aktarımları, CMS API’leri, veritabanı dökümleri, statik HTML’den Sanity’ye geçiş veya platform değişikliği yaparken ya da çıkarma, dönüştürme, Portable Text çevirisi, varlık geçişi, yönlendirmeler, doğrulama ve kesinti iş akışları tasarlarken kullanın.
data-analysisdatabasedevelopment
seo-aeo-best-practices
sanity-io
Kapsamlı SEO ve AEO optimizasyon rehberi; meta veri, yapılandırılmış veri, EEAT ve yapay zeka uyumluluğunu kapsar. Google, ChatGPT, Perplexity ve benzeri platformlarda hem geleneksel arama motoru optimizasyonunu (SEO) hem de yapay zeka cevap motoru optimizasyonunu (AEO) ele alır. Teknik SEO temellerini içerir: meta veri, Open Graph etiketleri, site haritaları, robots.txt, hreflang ve uluslararası SEO yapılandırması. Makale, SSS, Ekmek Kırıntısı ve Ürün şemaları için JSON-LD yapılandırılmış veri desenleri sağlar. Uygular...