商業系統
內容與發佈
包含集合、網誌文章、頁面與全站導覽,並支援草稿、審核、預約發佈與重新導向功能。
內容是網站發佈的一切資訊:您自訂的結構化集合、網誌、由區塊組成的頁面,以及每個頁面共用的頁首、頁尾與設定。相同的內容可同時服務於 Kanorio 託管的網站以及您自行開發的前端。
核心物件
- 集合與項目:您可以定義集合的欄位,例如文字、RTF 文字、數字、日期、媒體以及對其他集合的參照,而項目則用於儲存資料。集合可將特定欄位限制為僅限會員或買家存取。
- 文章:網誌是一組內建的集合:文章、分類、標籤與作者。文章支援發佈前的審核與預約發佈功能。
- 頁面與區塊:每個頁面都是一系列已定義類型的區塊。託管網站會渲染這些區塊;無頭前端(headless front end)則讀取相同的資料。
- 全域設定:頁首、頁尾與網站設定,例如行動呼籲(CTA)按鈕與社群連結。
- 重新導向與修訂:重新命名頁面會自動建立重新導向,且可還原內容的舊版本。
- 匯入:從其他平台遷移文章,並保留圖片、分類與原始日期。
API 的運作方式
- 使用 Management API 進行寫入。對頁面、全域設定與文章的寫入在執行發佈操作前均為草稿。除非您要求建立草稿,否則集合項目會立即發佈。
- 使用 Content Delivery API 讀取已發佈的內容。它是匿名、邊緣快取且對瀏覽器安全的,且每個回應都會在一個
assets對應表中解析媒體。 - 監聽
collections.item.*、content.page.*與content.translation.*Webhooks,其cacheTags可讓您精確重新整理已變更的頁面與語言環境。
API 開放的範圍
- Collections (structured content)可用
- API
- Management API
collections.*(typed fields including references, media andjson; field-levelaccessPolicy),items.*; DeliveryGET /collections/*(filter[f][op],filter[any], relative datesnow-30d,sort,total=false,assetsmap,expandfullfieldData,has_slug/eq_slug,accesssummary &Bearer knr_cat_gating); CLIkanorio types - 託管網站
/dataworkbench; collection list / detail pages- Webhooks
collections.item.*,collections.items.bulkChanged,collections.schema.changed
- Blog (system collections)可用
- API
- Management API
posts.*,blog_categories.list,blog_tags.list; DeliveryGET /collections/blog/items(?formats=markdown,html,plaintext,segments[],toc[],primary_author,primary_category),GET /feed(RSS 2.0) &GET /feed.atom - 託管網站
/postseditor,/data/blog; hosted/blog,/blog/:slug- Webhooks
collections.item.*
- Pages, globals (header/footer) & redirects可用
- API
- Management API
pages.*,globals.*,site.publish; DeliveryGET /pages,GET /pages/:slug,GET /globals/headers/:key,GET /globals/footer,GET /redirects - 託管網站
/editorvisual builder- Webhooks
content.page.*,content.site.published(withpreviousSlug&cacheTags)
- Draft preview tokens (
knr_pv_)可用- API
- Management API
site.create_preview_token; DeliveryX-Kanorio-Preview: knr_pv_...(edge HMAC verified, bypasses cache); SDK@kanorio/sdk/preview(createPreviewRouteHandler,previewHeaders,tokenFromCookieHeader) - 託管網站
/settings/developerpreview token manager;/consolePreview button
- GraphQL API不提供
- 替代做法
- Kanorio exposes a strongly typed REST + OpenAPI 3.1 Content Delivery API with
?fields=projection, 1-layer?expand=relation resolution, top-levelassetsbatch resolution, andnpx @kanorio/cli typesfor end-to-end TypeScript types without GraphQL schema maintenance.
- Multi-environment / schema branching & content staging environments不提供
- 替代做法
- Each site uses a double-buffered Draft (
fieldData) and Published (publishedFieldData) model with read-onlyknr_pv_preview tokens for staging verification. If you need a separate sandbox, create a dedicated dev site.
- Scheduled publishing for posts & collection items可用
- API
posts.publish/items.publishaccept optionalscheduledAt(freezes text content as a revision — posts: title/excerpt/contentMarkdown/showToc, items: fieldData/slug — and publishes that exact snapshot when due; taxonomy, SEO and sortOrder are not frozen);posts.unschedule/items.unscheduleto cancel- 託管網站
/postsand/datapublish button (schedule picker, badge, cancel, "Scheduled" quick filter)
- Batch release packages & multi-step approval workflows (assigned reviewers, comment threads)不提供
- 替代做法
- Blog posts and collection items support fine-grained custom RBAC roles (
collections:schema,collections:managevs.collections:publish/blog:publish, separating who can edit from who can publish) with 1-click access requests, plus a lightweight single-step review (*.request_review/*.reject_reviewwith one rejection-reason note, no assignment or comment threads). For cross-content batch releases or multi-step approval, orchestrate your own CI/cron on top ofposts.publish/items.publish.
- Per-item revision history, trash, optimistic concurrency & edit/publish separation for custom Collections and blog posts可用
- API
- Management API
revisions.*(subject: CONTENT_ITEMorBLOG_POST, up to 50 revisions/item, 30-day retention);items.list_archived,items.restore,items.purge;items.update/items.bulk_update/posts.updateacceptifUnmodifiedSinceand returnCONFLICTwith the currentupdatedAtinstead of silently overwriting;collections:publish/blog:publishscopes are separate fromcollections:manage/blog:manage - 託管網站
/dataworkbench record panel (version history tab, trash view, conflict banner);/postsarticle editor (conflict banner)
items.bulk_delete& Import/Export REST API不提供- 替代做法
- Custom Collections provide draft/published double buffering, backoffice CSV/JSON import & export (
/data), and full-site ZIP backups (collections/*.json).
- Visual click-to-edit overlays (Content Source Maps / stega) on external storefronts不提供
- 替代做法
- External storefronts use read-only
knr_pv_preview tokens (and?kp=knr_pv_...handoff from the backoffice Preview button) with@kanorio/sdk/previewrather than DOM-injected click-to-edit overlays.
API 參考
- SectionsManagement API · 1 個端點
- GlobalsManagement API · 7 個端點
- PagesManagement API · 7 個端點
- PostsManagement API · 9 個端點
- ImportsManagement API · 7 個端點
- Blog categoriesManagement API · 2 個端點
- Blog tagsManagement API · 2 個端點
- AuthorsManagement API · 3 個端點
- CollectionsManagement API · 5 個端點
- ItemsManagement API · 15 個端點
- RevisionsManagement API · 3 個端點
- RedirectsContent Delivery API · 1 個端點
- PagesContent Delivery API · 2 個端點
- GlobalsContent Delivery API · 2 個端點
- CollectionsContent Delivery API · 1 個端點
- ItemsContent Delivery API · 2 個端點
- FeedContent Delivery API · 2 個端點
Webhook 事件
- collections.item.created · Fired when a collection item is created (includes publicVersion and cacheTags).
- collections.item.updated · Fired when a collection item draft or published payload is updated.
- collections.item.published · Fired when a collection item is published and visible on the Content Delivery API.
- collections.item.unpublished · Fired when a collection item is unpublished and removed from the Content Delivery API.
- collections.item.deleted · Fired when a collection item is permanently deleted.
- collections.items.bulkChanged · Fired once per batch operation (bulkCreate, bulkUpdate, publish/unpublish batch, or CSV/JSON import).
- collections.schema.changed · Fired when a collection or its field schema is created, updated, or deleted (triggers `kanorio types` regeneration).
- content.site.published · Fired when a site is published, invalidating pages, globals, and redirects caches.
- content.page.published · Fired when a page is published on the site.
- content.page.updated · Fired when a published page's content or slug is updated (includes previousSlug when renamed).
- content.page.unpublished · Fired when a page is unpublished or hidden.
- content.page.deleted · Fired when a page is deleted.
指南
近期變更
- 2026-11-04 Localization: publishing one locale needs the record's publish permission
- 2026-11-04 Localization: each locale can have its own URL slug
- 2026-11-03 Site brand identity: one setting for hosted pages, checkout, sign-in, emails and your own front end
- 2026-11-01 Authors and instructors: one shared list for posts and deliverables
- 2026-10-31 Import posts from another site
給網站擁有者
在後台如何使用這項產品,請見說明中心。
開啟說明中心