contentstack-utils

โดย contentstack

Public API—ContentstackUtils, Option/Renderable, RTE/JSON, GQL, variants, errors; ไม่มี HTTP client แบบรวมอยู่ในชุด

npx skills add https://github.com/contentstack/contentstack-utils-swift --skill contentstack-utils

Contentstack Utils – SDK skill

When to use

  • Implementing or changing RTE/HTML rendering, JSON RTE parsing, or variant helpers.
  • Updating README.md / CHANGELOG.md / podspec for user-visible behavior.
  • Assessing semver impact of public / open changes.

Main entry (consumer API)

  • Consumers import ContentstackUtils and use ContentstackUtils: e.g. render(content:_:), render(contents:_:), jsonToHtml(node:_:), getVariantAliases, nested GQL.jsonToHtml(rte:_:).
  • Keep the static surface small and documented; breaking changes need semver and changelog notes.

Customization

  • Subclass or extend via Option (open class) conforming to Renderable: renderItem(embeddedObject:metadata:), renderMark(markType:text:), renderNode(nodeType:node:next:).
  • Do not remove or rename open hooks without a major version.

Data model

  • RTE JSON uses Node, JSONNode / JSONNodes, MarkType, StyleType, Metadata, embedded entry/asset types (EmbeddedObject, EmbeddedEntry, etc.).
  • Preserve Codable / decoding compatibility with Contentstack Delivery and GraphQL payloads.

Errors

  • Expose domain failures with nested types where appropriate (e.g. ContentstackUtils.VariantUtilityError.invalidArgument).
  • Use throws for recoverable failures; avoid force-unwraps on public paths.

HTML and documentation

  • Rendering uses Kanna/HTML internally; keep output predictable for documented inputs.
  • Document new node types or GQL JSON shapes in README.md / CHANGELOG.md.

No network layer

  • This package does not ship HTTP clients or tokens.
  • README examples showing Stack, fetch, or Apollo are integration sketches only—do not add hard dependencies on the main Contentstack iOS SDK or Apollo in Package.swift unless product explicitly requires it.

Legacy naming

  • Some names (e.g. embdeddedItems) are entrenched; changing them is a breaking API change—coordinate with maintainers.

Docs and versioning

  • Align ContentstackUtils.podspec and git tags with releases. Follow semver for public / open changes.

References

  • Contentstack
  • skills/swift-style/SKILL.md, skills/framework/SKILL.md

Skills เพิ่มเติมจาก contentstack

cms-assets
contentstack
ให้คำแนะนำนักพัฒนาเกี่ยวกับการจัดระเบียบ การส่งมอบ และการแปลง assets ใน Contentstack ครอบคลุมโครงสร้างโฟลเดอร์ การแปลงผ่าน Image Delivery API การเผยแพร่…
cms-branches-aliases
contentstack
แนะนำนักพัฒนาเกี่ยวกับการใช้ branches ของ Contentstack สำหรับการพัฒนาคอนเทนต์แบบแยกส่วน และ aliases สำหรับการ部署คอนเทนต์โดยไม่มีการหยุดให้บริการ ครอบคลุมกลยุทธ์การจัดการ branches และ…
cms-data-modeling-best-practices
contentstack
แนะนำนักพัฒนาในการออกแบบโมเดลเนื้อหาใน Contentstack โดยใช้โครงสร้างที่เรียบง่ายที่สุดและสามารถนำกลับมาใช้ใหม่ได้ สกิลนี้อธิบายว่าควรใช้ content types, references, global… เมื่อใด
cms-live-preview-visual-builder-support-assistant
contentstack
วินิจฉัยและแนะนำการติดตั้ง Contentstack Live Preview และ Visual Builder ตรวจสอบบริบทตัวอย่าง ระบุสัญญาที่ขาด และแนะนำ…
cms-releases
contentstack
แนะนำนักพัฒนาเกี่ยวกับการใช้ Contentstack Releases สำหรับการปรับใช้เนื้อหาแบบประสานงานและเป็นอะตอมมิก ครอบคลุมการสร้างรีลีส การจัดการไอเทม การปรับใช้แบบเป็นขั้นตอน…
cms-roles-permissions
contentstack
ให้คำแนะนำนักพัฒนาเกี่ยวกับการออกแบบบทบาท สิทธิ์ ทีม และการเข้าถึงโทเค็นใน Contentstack อธิบายบทบาทในตัว บทบาทที่กำหนดเอง การรวมสิทธิ์…
cms-taxonomy
contentstack
ให้คำแนะนำนักพัฒนาเกี่ยวกับการใช้ Contentstack Taxonomy สำหรับการจำแนกเนื้อหาที่มีโครงสร้างและเป็นลำดับชั้น รวมถึงการกรองฝั่งดีลิเวอรี ครอบคลุม taxonomy เทียบกับ tags,…
cms-tokens-authentication
contentstack
แนะนำนักพัฒนาในการเลือกวิธีการรับรองความถูกต้องและประเภทโทเค็นของ Contentstack ที่เหมาะสมสำหรับกรณีการใช้งาน frontend, backend, automation และแอปพลิเคชันของบุคคลที่สาม…