开发者

版面由 Zone 决定,数据和规则由平台管理。

Zone 是社区自己的站点,可以附带专属展示代码。代码只负责排版,数据由平台读取后再交给它,权限与审核也都由平台管理。

主题

先设置,再写代码

每个 Zone 都从一套默认主题开始,可以调整信息密度、页面底色和封面比例,也可以自选强调色,再安排精选、书架、热门排行和编辑推荐等模块。设置无法实现所需布局时,才需要编写代码。

一张深蓝灰色的纸折成立起的小框,框上开了一扇窗,后面立着一张浅蓝色的纸。

设置

一组主题设置

const tokens: ZoneTokens = {
  colorScheme: 'system',
  accent: '#3b4a5a',
  density: 'comfortable',
  cardRadius: 'md',
  headingFontScale: 'md',
  surfaceTint: 'subtle',
  fontPairing: 'serif',
  pageSurface: 'flat',
  coverStyle: 'portrait',
};
主题设置中的所有必填字段,类型来自 @rezics/zone-sdk。

插槽

将代码填入具名插槽

展示代码是一个软件包,可以在页眉、主视觉、搜索栏、数据面板、作品卡片、模块和页脚等具名插槽中换上自己的组件。每个插槽都会收到平台提供的组件,软件包可以在外层包装,也可以替换它。

export default defineZonePackage({
  slug: 'anime',
  css,
  catalogue: { count: 'episodes',
    formatNames: animeFormatNames
  },
  slots: {
    browseHeader:
      AnimeBrowseHeader,
    workCard: AnimeCard,
    cataloguePanel:
      AnimeCataloguePanel,
    footer: AnimeFooter,
  },
});
摘自 REZICS 动画 Zone 的软件包入口。

边界

软件包的边界

  • 不自行获取数据

    数据由平台读取后送入插槽,软件包不会发起请求。

  • 不接触凭证

    不会读取 Cookie、浏览器存储空间或任何凭证。

  • 不遮挡平台界面

    账户菜单、Zone 菜单、举报和年龄确认都在插槽之外,每部作品的“为何入选”标记也会保留。

  • 样式只影响自身

    样式仅限于这个 Zone 的范围,颜色和字体只使用平台提供的变量。

  • 限制文件大小

    gzip 压缩后的 CSS 不超过 40 KiB,JavaScript 不超过 50 KiB。

发布

从审核到发布

  • 计算哈希值

    软件包的所有文件会合并计算出一个哈希值。任何一个字节发生变化,哈希值都会不同。

  • 由他人审核

    另一个账户会检查源代码、构建文件、无障碍情况和出错时的表现,并记录决定和证据的哈希值。

  • 启用并设置到期日

    只有经过审核的版本才能启用,而且会设置到期日。恢复旧版本也不会让旧的批准重新生效。

  • 随时切回标准版面

    哈希值不匹配时会显示标准版面。读者可以关闭软件包,或在网址中添加 ?safe 进入安全模式,平台也有全站总开关。

后端只有一套,前端由你编写;AI 代理也能读取同一份数据。

新的社区站点不需要新的后端程序。展示代码只读取公开 API,不包含业务逻辑,Zone 能展示的数据也都能通过 API 读取。

用同一套 API,打造自己的工具。

让自己的程序读写作品、书架和社区数据。每次操作都遵循 REZICS 的身份与授权规则。