模組:Infobox/doc
出自幻跡百科
更多操作
此頁面為 模組: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 classorder:項目排序值
排序
所有項目會先依 order 由小到大排列,再交給 Capiunto。
建議 Schema 使用:
- 100
- 200
- 300
- …
如此未來要在 200 與 300 中間插一個欄位時可以直接用 210 或 220。
若兩個項目的 order 相同,會保留原始輸入順序。
責任邊界
本模組應該:
- 接受整理好的 normalized model
- 排序
- 呼叫 Capiunto
- 處理通用資訊欄 primitive
本模組不應該:
- 查詢 SMW
- 認識創作者或任何特定領域
- 決定某個領域有哪些欄位
- 塞入平台名稱、作者名稱等業務邏輯
相關模組:
- 模組:Infobox/Schema-Schema 繼承與合併
- 模組:Infobox/Adapter/創作者-創作者資料轉換
- 模組:Infobox/Provider/SMWDeferred-延後執行的 SMW 查詢
- 模組:Infobox/Schema/Base-最上層空白 Schema