contentstack-utils

作者: contentstack

Public API—ContentstackUtils, Option/Renderable, RTE/JSON, GQL, variants, errors; no bundled 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

來自 contentstack 的更多技能

brand-kit-assistant
contentstack
就 Contentstack Brand Kit 的概念、設定、治理與品牌一致性 AI 生成提供使用者建議。將 API 特定任務導向正確的 Brand Kit 功能或…
official
cms-assets
contentstack
為開發人員提供有關在Contentstack中組織、交付和轉換資產的建議。涵蓋資料夾結構、Image Delivery API轉換、發佈……
official
cms-branches-aliases
contentstack
Advise developers on using Contentstack branches for isolated content development and aliases for zero-downtime content deployments. Cover branch strategy,…
official
cms-data-modeling-best-practices
contentstack
Guide developers to model content in Contentstack using the simplest reusable structure. The skill explains when to use content types, references, global…
official
cms-entries
contentstack
Advise developers on querying, localizing, versioning, publishing, and structuring Contentstack entries for efficient delivery. Focus on CDA usage, reference…
official
cms-environments-publishing
contentstack
為開發人員提供關於配置環境、發佈內容、使用傳遞與預覽令牌、運用 Sync API,以及了解 CDN 和…的建議。
official
cms-live-preview-visual-builder-support-assistant
contentstack
Diagnose and guide Contentstack Live Preview and Visual Builder implementations. Trace preview context, identify the broken contract, and recommend the…
official
cms-localization
contentstack
為開發人員提供Contentstack本地化建議:語言設定、備援鏈、本地化與非本地化條目、不可本地化欄位,以及多語言環境…
official