Jump to content
切換選單
切換偏好設定選單
切換個人選單
尚未登入
如果您進行編輯,系統將會為您建立一個臨時帳戶。

此頁面為 模組:Infobox 的說明文件


致貢獻者:如果需要新增或修改頁面,不需要直接使用這個模組。

這是什麼?

Infobox 是 BenWiki 資訊欄系統的通用渲染核心。

這是資訊欄最後一道資訊流出口:前面的 Schema、Adapter 已經把資料整理好,這個模組只負責依照指定順序,把標題、圖片、區塊與欄位交給 Capiunto 畫成真正的資訊欄。

資料模型

目前支援的項目類型有:

section
資訊欄中的區塊標題。
row
一般的「標籤-值」欄位。
collection
重複資料集合,例如平台帳號或 page-local 自訂資訊。
Collection 可以具有自己的 label、key 與 interaction。
Renderer 只有在 collection 實際有內容時才建立標題與資料 row,因此空 collection 不會留下空白 section。
interaction.collapsible 可以要求前端提供 progressive disclosure;Renderer 只輸出 interaction metadata,不直接執行 JavaScript。
wikitext
通用介面,用來插入沒有適合結構化表示方式的 Wikitext。能不用就不用。

另外還支援:

  • title:資訊欄標題
  • image:主要圖片
  • bodyClass:領域專用 CSS class
  • order:項目排序值

排序

所有項目會先依 order 由小到大排列,再交給 Capiunto。

建議 Schema 使用:

  • 100
  • 200
  • 300
  • …

如此未來要在 200 與 300 中間插一個欄位時可以直接用 210 或 220。

若兩個項目的 order 相同,會保留原始輸入順序。

責任邊界

本模組應該:

  • 接受整理好的 normalized model
  • 排序
  • 呼叫 Capiunto
  • 處理通用資訊欄 primitive

本模組不應該:

  • 查詢 SMW
  • 認識創作者或任何特定領域
  • 決定某個領域有哪些欄位
  • 塞入平台名稱、作者名稱等業務邏輯

相關模組: