portable-text-conversion

bởi sanity-io

Chuyển đổi nội dung HTML và Markdown thành các khối Portable Text cho Sanity. Sử dụng khi di chuyển nội dung từ các CMS cũ, nhập HTML hoặc Markdown và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.

Thêm skills từ sanity-io

sanity-migration
sanity-io
Lập kế hoạch, triển khai và xem xét việc di chuyển từ các CMS và hệ thống nội dung khác sang Sanity. Sử dụng khi di chuyển hoặc chuyển đổi nền tảng sang Sanity từ AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, tệp Markdown/MDX/frontmatter, xuất WXR/XML, API CMS, bản sao cơ sở dữ liệu, HTML tĩnh, hoặc khi thiết kế quy trình trích xuất, chuyển đổi, chuyển đổi Portable Text, di chuyển tài sản, chuyển hướng, xác thực và cắt chuyển.
officialdevelopmentdatabase
create-agent-with-sanity-context
sanity-io
Xây dựng các tác nhân AI với quyền truy cập có cấu trúc vào nội dung Sanity thông qua Agent Context. Sử dụng khi thiết lập chatbot hỗ trợ Sanity, kết nối trợ lý AI với Sanity…
official
dial-your-context
sanity-io
Phiên tương tác để tạo nội dung trường Hướng dẫn cho Sanity Agent Context MCP. Sử dụng kỹ năng này bất cứ khi nào người dùng đề cập đến việc điều chỉnh ngữ cảnh tác nhân, cải thiện…
official
optimize-agent-prompt
sanity-io
Tinh chỉnh tác nhân ngữ cảnh Sanity Agent của bạn thông qua hội thoại có hướng dẫn. Chuyển đổi dữ liệu khám phá thành hướng dẫn sẵn sàng cho sản xuất và tạo ra một lời nhắc hệ thống…
official
shape-your-agent
sanity-io
Phiên tương tác để xây dựng prompt hệ thống cho một tác nhân AI được hỗ trợ bởi Sanity Agent Context MCP. Sử dụng kỹ năng này khi người dùng muốn xác định tính cách tác nhân,…
official
content-experimentation-best-practices
sanity-io
Hướng dẫn có cấu trúc để thiết kế, thực thi và phân tích các thử nghiệm nội dung nhằm cải thiện tỷ lệ chuyển đổi và mức độ tương tác. Bao gồm các khung giả thuyết, lựa chọn chỉ số, tính toán kích thước mẫu và kiểm định ý nghĩa thống kê trong các thử nghiệm A/B và đa biến. Cung cấp tài nguyên chi tiết về giá trị p, khoảng tin cậy, phân tích lũy thừa và phương pháp Bayes để diễn giải kết quả. Cung cấp các mẫu tích hợp CMS để quản lý biến thể ở cấp trường và kết nối bên ngoài...
official
content-modeling-best-practices
sanity-io
Hướng dẫn mô hình hóa nội dung có cấu trúc cho thiết kế schema, khả năng tái sử dụng và phân phối đa kênh. Bao gồm các nguyên tắc cốt lõi: coi nội dung là dữ liệu thay vì trang, duy trì nguồn thông tin duy nhất, thiết kế cho các kênh trong tương lai và tối ưu hóa quy trình làm việc của biên tập viên. Cung cấp khung quyết định cho tham chiếu so với đối tượng nhúng, phân tách mối quan tâm và các mẫu tái sử dụng nội dung. Cung cấp hướng dẫn về phân loại và phân lớp cho các phương pháp phẳng, phân cấp và khía cạnh. Áp dụng cho...
official
portable-text-serialization
sanity-io
Kết xuất và tuần tự hóa Portable Text thành React, Svelte, Vue, Astro, HTML, Markdown và văn bản thuần. Sử dụng khi triển khai kết xuất Portable Text trong bất kỳ giao diện người dùng nào…
official