master
IsekaiWidgets 扩展
MediaWiki 扩展,为异世界百科提供一系列自定义组件。
目录
- createpage — 创建页面
- discoverbox — 发现框
- feedlist — 动态列表
- previewcard — 页面预览卡片
- previewpagelist — 页面列表预览
- buttonlink — 按钮链接
- tilegroup — 磁贴容器
- tile — 磁贴
- fontface — 字体导入
- exfont — 应用字体
- details / summary — 折叠块
- information — 信息框
- masonry — 瀑布流容器
- masonryitem — 瀑布流子项
- veval — 透传渲染
createpage — 创建页面
显示一个创建页面的交互组件,可配置允许创建的页面类型。
<createpage />
页面类型通过 LocalSettings.php 中的 $wgIsekaiCreatePageTypes 配置。
discoverbox — 发现框
显示一个内容发现模块,用于推荐或展示相关内容。
<discoverbox />
feedlist — 动态列表
显示一个内容动态/订阅列表模块。
<feedlist />
previewcard — 页面预览卡片
显示一个页面预览卡片,会异步加载页面摘要信息。text 为页面完整标题,最后一段(以 / 分割)作为显示标题,其余作为路径显示。
<previewcard>角色/爱丽丝</previewcard>
渲染后显示标题为 爱丽丝,路径为 角色。
previewpagelist — 页面列表预览
显示一组页面的预览卡片列表,支持手动指定页面或从分类中自动加载。
手动指定页面
<previewpagelist>
角色/爱丽丝
角色/鲍勃
</previewpagelist>
从分类加载
<previewpagelist loader="category" category="角色" />
参数
| 参数名 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
| loader | pages | category |
有内容时为 pages |
数据来源类型 |
| category | 分类名 | — | loader=category 时必填,指定分类名称 |
| autofocus | true | false |
true |
是否自动聚焦第一项 |
| lazyload | true | false |
true |
是否懒加载 |
buttonlink — 按钮链接
渲染一个 OOUI 风格的按钮,可链接到内部页面或外部 URL。
<buttonlink page="首页">返回首页</buttonlink>
<buttonlink href="https://example.com" target="_blank">外部链接</buttonlink>
参数
| 参数名 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
| page | 页面名称 | — | 链接到 wiki 内部页面(与 href 二选一) |
| href | URL | # |
直接指定链接地址 |
| target | _self | _blank 等 |
_self |
链接打开方式 |
| type | progressive | default | secondary |
progressive |
按钮风格 |
| destructive | true |
— | 添加危险操作样式(红色) |
| frameless | true |
— | 使用无边框样式 |
tilegroup — 磁贴容器
将多个磁贴组合在一起的容器,可设置整体大小和标题。
<tilegroup title="快速导航" size="md-6 lg-4">
<tile href="[[首页]]">首页</tile>
<tile href="[[分类]]">分类</tile>
</tilegroup>
参数
| 参数名 | 可选值 | 说明 |
|---|---|---|
| title | 文本 | 这一组磁贴的标题 |
| size | xs-N sm-N md-N lg-N xl-N xxl-N(N 为 1–12) |
响应式宽度,参考 Bootstrap col |
| class | CSS 类名 | 附加 CSS 类 |
tile — 磁贴
显示一个矩形磁贴,支持图标、徽章、背景色、链接等。内容文本自动作为磁贴标题。
<tile size="medium" href="[[首页]]" color="#3498db" icon="fa fa-home">首页</tile>
参数
| 参数名 | 可选值 | 说明 |
|---|---|---|
| size | app | small | medium | wide | large |
磁贴尺寸,默认 medium |
| href | [[页面名]] 或 URL |
点击跳转链接,支持 [[]] 内部链接语法 |
| icon | CSS 类(如 fa fa-star)或图片路径 |
磁贴图标 |
| badge | 数字或文本 | 左上角徽章内容(如未读数) |
| color | #RRGGBB | rgb(r,g,b) | CSS 类名 |
背景颜色 |
| grid | <列> <行>(如 2 1) |
在 CSS Grid 中的位置 |
fontface — 字体导入
将 wiki 中的文件(字体文件)注册为可用的自定义字体,供 <exfont> 使用。字体名只允许字母、数字、连字符和下划线。
<fontface name="myfont" src="MyFont.woff2" />
参数
| 参数名 | 说明 |
|---|---|
| name | 字体标识名(字母/数字/-/_) |
| src | wiki 文件名(File: 命名空间下的字体文件) |
exfont — 应用字体
将已通过 <fontface> 导入的字体应用到包裹的文本内容上。
<fontface name="myfont" src="MyFont.woff2" />
<exfont name="myfont">使用自定义字体的文字</exfont>
参数
| 参数名 | 说明 |
|---|---|
| name | 对应 <fontface> 中定义的字体名 |
details / summary — 折叠块
渲染 HTML5 原生 <details> 折叠组件,<summary> 为折叠标题,内容默认折叠。
<details>
<summary>点击展开</summary>
这里是折叠的内容。
</details>
参数(details 和 summary 均支持)
| 参数名 | 说明 |
|---|---|
| class | 附加 CSS 类名 |
information — 信息框
渲染结构化的键值信息,支持文本模式和信息框(infobox)模式。
内容块语法
<information type="infobox" picture="Character.png" float="right">
标题行(第一行无分隔符时作为标题)
基本信息
种族:人类
年龄:18
职业:冒险者
</information>
- 以
:或:分隔的行作为键值对 - 以
=分隔可引用标签属性中定义的动态值 - 无分隔符的行作为分组标题(banner)
- 第一行无分隔符时作为信息框整体标题
属性键值语法
<information type="infobox" 种族="人类" 年龄="18" />
参数
| 参数名 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
| type | infobox | text |
infobox |
渲染模式 |
| float | left | right | none |
right(infobox 模式) |
浮动方向 |
| picture | 文件名(如 Character.png) |
— | 信息框顶部图片 |
| title_key | 属性键名 | — | 指定哪个属性作为标题 |
masonry — 瀑布流容器
瀑布流布局容器,子项使用 <masonryitem> 填充。
<masonry cols="3" gutter="16" md-cols="2" sm-cols="1">
<masonryitem>内容一</masonryitem>
<masonryitem>内容二</masonryitem>
</masonry>
参数
| 参数名 | 说明 | 默认值 |
|---|---|---|
| cols | 列数 | 2 |
| gutter | 列间距(px) | 10 |
| xs-cols | 极小屏幕列数(< 576px) | — |
| sm-cols | 小屏幕列数(≥ 768px) | — |
| md-cols | 中等屏幕列数(≥ 992px) | — |
| lg-cols | 大屏幕列数(≥ 1200px) | — |
| xl-cols | 超大屏幕列数(≥ 1400px) | — |
masonryitem — 瀑布流子项
瀑布流中的单个卡片,必须放置在 <masonry> 内部。支持按断点设置跨列数,full 表示占满全部列数。
<masonry cols="3">
<masonryitem col="1" md-col="full">内容</masonryitem>
</masonry>
参数
| 参数名 | 说明 |
|---|---|
| col | 默认跨列数,或 full |
| xs-col | 极小屏幕跨列数 |
| sm-col | 小屏幕跨列数 |
| md-col | 中等屏幕跨列数 |
| lg-col | 大屏幕跨列数 |
| xl-col | 超大屏幕跨列数 |
veval — 透传渲染
将内容经过 wiki 解析器处理后原样输出,不做额外包裹。可用于在特定场景下强制解析 wikitext。
<veval>{{模板名}}</veval>
Languages
JavaScript
31.5%
Less
26.3%
PHP
20.8%
CSS
12.8%
Vue
7.7%
Other
0.9%