開發者

版面歸 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 的身分與授權規則。