帮助:解析函数/arraymaptemplate
Arraymaptemplate是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
arraymaptemplate
分割字符串,用指定模板逐一输出。出自扩展 Page Forms。
具体来说,按分隔符切分字符串,并把每个片段作为参数{{{1}}}
传给指定模板,再用“输出分隔符”连接结果。行为类似 #arraymap
,但把“格式化逻辑”下放到模板中处理。
当每个元素需要较复杂的渲染(多行结构、带条件判断、包含链接/图标/样式等)时,优先使用本函数,以避免在 #arraymap
中堆叠复杂 wikitext,造成“嵌套地狱”。
语法
{{#arraymaptemplate: 字符串 | 模板名 | 分隔符 | 输出分隔符 }}
参数:
- 字符串:要拆分的原始文本。
- 模板名:用于渲染每个片段的模板。片段作为
{{{1}}}
(即参数1
)传入模板。 - 分隔符:用来切分字符串(非正则)。留空时改为“逐字符切分”。
- 输出分隔符(可选):连接各次模板输出的文本,默认为
,
(英文逗号+空格)。
示例
比如模板 "ListLine"内容如下:
* {{{1}}}
调用:
{{#arraymaptemplate:托奇、环理、辰纱|ListLine|、|\n}}
效果:
- 托奇
- 环理
- 辰纱
底层代码
代码逻辑简述:
- 解析参数,并将分隔符、输出分隔符中的
\n
转为真实换行;对分隔符做nowiki
反转义(unstripNoWiki)。 - 拆分字符串。如果分隔符为空就逐字符分割
- 对每个非空字符串片段,构造
{{模板名|1=片段}}
并展开。 - 用
new_delimiter
连接展开结果;默认,
。
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
- 模板:抽卡结果 - 白夜极光
- 模板:道具图鉴 - 白夜极光
- 模板:道具图鉴/行 - 白夜极光
- 模板:活动兑换商店 - 深空之眼
- 模板:活动消耗计算器表格 - 深空之眼
- 模板:道具 - 千年之旅
- 模板:卡池一览 - 复苏的魔女
- 模板:抽卡结果 - 复苏的魔女
- 模板:抽卡结果-武器 - 复苏的魔女
- 模板:通用抽卡模拟器/文档 - 复苏的魔女
- 模板:英雄/推荐技能 - 梦幻模拟战
- 模板:英雄/推荐技能/列 - 梦幻模拟战
- 模板:英雄/推荐技能/技能图标 - 梦幻模拟战
- 模板:通用配装/列 - 梦幻模拟战
- 模板:攻略展示 - 赛尔计划
- 模板:卡池一览 - 尘白禁区
- 模板:攻略展示 - 崩坏:星穹铁道
- 模板:商贩 - Starfield
- 模板:剧情补充篇 - 食物语-档案馆
- 模板:抽卡图标 - 食物语-档案馆
- 模板:角色技能 - 闪耀!优俊少女
- 模板:角色数据 - 东方归言录
- 模板:Specs-Avia-Armour - 战争雷霆
- 模板:Specs-Avia-Flight - 战争雷霆
- 模板:Specs-Tank-Armaments - 战争雷霆
- 模板:Specs-Tank-Armour - 战争雷霆
- 模板:Specs-Tank-Mobility - 战争雷霆
- 模板:Specs-Tank-Weapon - 战争雷霆
- 模板:Tree-Unit2 - 战争雷霆
- 模板:载具图鉴 - 战争雷霆
- 模板:彩蛋/行 - 阴阳师妖怪屋