# 內容與發佈

> Collections, blog posts, pages and site-wide navigation, with drafts, review, scheduling and redirects.

> Markdown version of https://kanorio.com/zh-Hant/developers/products/content. Append `.md` to any developer docs URL for this format. Index: https://kanorio.com/llms.txt · MCP: https://app.kanorio.com/api/mcp
>
> Translated from the English original: https://kanorio.com/en/developers/products/content.md

Status: **Available**

內容是網站發佈的一切資訊：您自訂的結構化集合、網誌、由區塊組成的頁面，以及每個頁面共用的頁首、頁尾與設定。相同的內容可同時服務於 Kanorio 託管的網站以及您自行開發的前端。

## 核心物件

- **集合與項目**：您可以定義集合的欄位，例如文字、RTF 文字、數字、日期、媒體以及對其他集合的參照，而項目則用於儲存資料。集合可將特定欄位限制為僅限會員或買家存取。
- **文章**：網誌是一組內建的集合：文章、分類、標籤與作者。文章支援發佈前的審核與預約發佈功能。
- **頁面與區塊**：每個頁面都是一系列已定義類型的區塊。託管網站會渲染這些區塊；無頭前端（headless front end）則讀取相同的資料。
- **全域設定**：頁首、頁尾與網站設定，例如行動呼籲（CTA）按鈕與社群連結。
- **重新導向與修訂**：重新命名頁面會自動建立重新導向，且可還原內容的舊版本。
- **匯入**：從其他平台遷移文章，並保留圖片、分類與原始日期。

## API 的運作方式

- 使用 Management API 進行寫入。對頁面、全域設定與文章的寫入在執行發佈操作前均為草稿。除非您要求建立草稿，否則集合項目會立即發佈。
- 使用 Content Delivery API 讀取已發佈的內容。它是匿名、邊緣快取且對瀏覽器安全的，且每個回應都會在一個 `assets` 對應表中解析媒體。
- 監聽 `collections.item.*`、`content.page.*` 與 `content.translation.*` Webhooks，其 `cacheTags` 可讓您精確重新整理已變更的頁面與語言環境。

## What the APIs expose

| Capability | Status | API | Elements | Hosted site | Webhooks |
| --- | --- | --- | --- | --- | --- |
| Collections (structured content) | Available | Management API `collections.*` (typed fields including references, media and `json`; field-level `accessPolicy`), `items.*`; Delivery `GET /collections/*` (`filter[f][op]`, `filter[any]`, relative dates `now-30d`, `sort`, `total=false`, `assets` map, `expand` full `fieldData`, `has_slug` / `eq_slug`, `access` summary & `Bearer knr_cat_` gating); CLI `kanorio types` | — | `/data` workbench; collection list / detail pages | `collections.item.*`, `collections.items.bulkChanged`, `collections.schema.changed` |
| Blog (system collections) | Available | Management API `posts.*`, `blog_categories.list`, `blog_tags.list`; Delivery `GET /collections/blog/items` (`?formats=markdown,html,plaintext`, `segments[]`, `toc[]`, `primary_author`, `primary_category`), `GET /feed` (RSS 2.0) & `GET /feed.atom` | — | `/posts` editor, `/data/blog`; hosted `/blog`, `/blog/:slug` | `collections.item.*` |
| Pages, globals (header/footer) & redirects | Available | Management API `pages.*`, `globals.*`, `site.publish`; Delivery `GET /pages`, `GET /pages/:slug`, `GET /globals/headers/:key`, `GET /globals/footer`, `GET /redirects` | — | `/editor` visual builder | `content.page.*`, `content.site.published` (with `previousSlug` & `cacheTags`) |
| Draft preview tokens (`knr_pv_`) | Available | Management API `site.create_preview_token`; Delivery `X-Kanorio-Preview: knr_pv_...` (edge HMAC verified, bypasses cache); SDK `@kanorio/sdk/preview` (`createPreviewRouteHandler`, `previewHeaders`, `tokenFromCookieHeader`) | — | `/settings/developer` preview token manager; `/console` Preview button | — |
| GraphQL API | Not offered | — | — | — | — |
| Multi-environment / schema branching & content staging environments | Not offered | — | — | — | — |
| Scheduled publishing for posts & collection items | Available | `posts.publish` / `items.publish` accept optional `scheduledAt` (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.unschedule` to cancel | — | `/posts` and `/data` publish button (schedule picker, badge, cancel, "Scheduled" quick filter) | — |
| Batch release packages & multi-step approval workflows (assigned reviewers, comment threads) | Not offered | — | — | — | — |
| Per-item revision history, trash, optimistic concurrency & edit/publish separation for custom Collections and blog posts | Available | Management API `revisions.*` (`subject: CONTENT_ITEM` or `BLOG_POST`, up to 50 revisions/item, 30-day retention); `items.list_archived`, `items.restore`, `items.purge`; `items.update` / `items.bulk_update` / `posts.update` accept `ifUnmodifiedSince` and return `CONFLICT` with the current `updatedAt` instead of silently overwriting; `collections:publish` / `blog:publish` scopes are separate from `collections:manage` / `blog:manage` | — | `/data` workbench record panel (version history tab, trash view, conflict banner); `/posts` article editor (conflict banner) | — |
| `items.bulk_delete` & Import/Export REST API | Not offered | — | — | — | — |
| Visual click-to-edit overlays (Content Source Maps / stega) on external storefronts | Not offered | — | — | — | — |

## API reference

- Management API: [Sections](https://kanorio.com/en/developers/management-api/sections) (1 operations)
- Management API: [Globals](https://kanorio.com/en/developers/management-api/globals) (7 operations)
- Management API: [Pages](https://kanorio.com/en/developers/management-api/pages) (7 operations)
- Management API: [Posts](https://kanorio.com/en/developers/management-api/posts) (9 operations)
- Management API: [Imports](https://kanorio.com/en/developers/management-api/imports) (7 operations)
- Management API: [Blog categories](https://kanorio.com/en/developers/management-api/blog_categories) (2 operations)
- Management API: [Blog tags](https://kanorio.com/en/developers/management-api/blog_tags) (2 operations)
- Management API: [Authors](https://kanorio.com/en/developers/management-api/authors) (3 operations)
- Management API: [Collections](https://kanorio.com/en/developers/management-api/collections) (5 operations)
- Management API: [Items](https://kanorio.com/en/developers/management-api/items) (15 operations)
- Management API: [Revisions](https://kanorio.com/en/developers/management-api/revisions) (3 operations)
- Content Delivery API: [Redirects](https://kanorio.com/en/developers/delivery-api/redirects) (1 operations)
- Content Delivery API: [Pages](https://kanorio.com/en/developers/delivery-api/pages) (2 operations)
- Content Delivery API: [Globals](https://kanorio.com/en/developers/delivery-api/globals) (2 operations)
- Content Delivery API: [Collections](https://kanorio.com/en/developers/delivery-api/collections) (1 operations)
- Content Delivery API: [Items](https://kanorio.com/en/developers/delivery-api/items) (2 operations)
- Content Delivery API: [Feed](https://kanorio.com/en/developers/delivery-api/feed) (2 operations)

## Webhook events

- `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.

Payloads: https://kanorio.com/en/developers/webhooks/events

## Guides

- [讀取頁面、文章與集合](https://kanorio.com/zh-Hant/developers/guides/read-content): 透過 Content Delivery API 載入網站導覽、頁面、網誌文章、集合與搜尋結果，並支援圖片解析與型別產生。

## Recent changes

- 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

Full changelog: https://kanorio.com/en/developers/changelog

## For site owners

Dashboard help: https://kanorio.com/zh-Hant/help/data-workbench
