# 内容与发布

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

> Markdown version of https://kanorio.com/zh-CN/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 托管的网站以及您自行开发的前端。

## 核心对象

- **集合与项目**：您可以定义集合的字段，例如文本、富文本、数字、日期、媒体以及对其他集合的引用，而项目则用于存储数据。集合可将特定字段限制为仅限会员或买家访问。
- **文章**：博客是一组内置的集合：文章、分类、标签与作者。文章支持发布前的审核与预约发布功能。
- **页面与模块**：每个页面都是一系列已定义类型的模块。托管网站会渲染这些模块；无头前端（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-CN/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-CN/help/data-workbench
