2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Template:.../stringify

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模板文档  [查看] [编辑] [历史] [刷新]

简介

该模板通过传入一个表示数个命名参数的序列化字符串,实现类似JavaScript中展开运算符的功能(该模板的命名也源于这个语法),以便于对模板传入一组可复用的参数。

用法

{{...
|__tl= <!-- 要使用的模板名 -->
|__args= <!-- 要传入的序列化参数字符串,不支持匿名(数字)参数 -->
<!-- 可以继续传入参数,无论是匿名还是命名,当与args中的参数名重复时,将依据参数序列化时定义的混合模式进行混合 -->
}}

参数序列化

该模板提供了一个用于序列化的方法,注意不支持匿名(数字)参数

{{.../stringify
|__blendModes= 参数名:混合模式, 参数名:混合模式
|参数名=参数值
|参数名=参数值
}}

其中,__blendModes参数为设置各个参数的混合模式,以使stringify中的参数和模板使用时的参数发生重复时,能更好地工作。该参数不是必须的。

混合模式共有4种类型:

  • rewrite:重写,使用时的参数将覆盖stringify的参数,这是默认值。
  • begin:添加到stringify参数值的开头。
  • end:添加到stringify参数值的结尾。
  • middle:添加到stringify中魔术字符串${__arg}的位置。

示例

示例1

{{...
|__tl= bilibiliVideo
|__args= {{.../stringify|id=7610055}}
}}
效果
宽屏模式显示视频

示例2

这里将演示一个更加典型的用法。

仔细观察可以发现,该模板中有多个参数是重复的(实际上大多数样式简单navbox模板都是这个模式)。虽然我们可以通过对其再次封装一次达到只传一次颜色,但{{navbox}}模板还有相当数量的其他参数,如果不在封装的模板中写出将导致无法使用,这里使用该模板达到参数复用的目的。

{{navbox
|name=来自风平浪静的明天
|title={{coloredlink|#00AECF|来自风平浪静的明天}}

|titlestyle = background:white; color:#00AECF;
|abovestyle = background:#00AECF;
|groupstyle = background:#00AECF; color:white;
|oddstyle = background:{{ColorOps|-90|#00AECF}};
|evenstyle = background:white;

|above = <div style="height:2px;"></div>

|group1=主要角色
|list1=先岛光 • 向井户爱花

|group2=其他角色
|list2=鳞大人• 先岛灯
}}

假设新建模板:navboxPlainStyles:

{{.../stringify
|__blendModes=
  titlestyle:middle,
  abovestyle:end,
  groupstyle:end,
  oddstyle:end,
  evenstyle:end
|titlestyle = background:white; ${__arg}; color:{{{1}}};
|abovestyle = background:{{{1}}};
|groupstyle = background:{{{1}}}; color:white;
|oddstyle = background:{{ColorOps|-90|{{{1}}}}};
|evenstyle = background:white;

|above = <div style="height:2px;"></div>

|title= {{coloredlink|{{{1}}}|{{{title}}}}}
|name={{{title}}}
}}


使用该模板:

{{...|__tl= navbox
|__args= {{navboxPlainStyles|#00AECF|title=来自风平浪静的明天}}

|groupstyle = color:orange;  <!-- 由于设置了该参数的混合模式为“end”,这里的样式被添加到了navboxPlainStyles模板中定义的样式的后面,覆盖了其中设置的白色文字颜色 -->
|titlestyle = background:#ccc; color:grange;  <!-- 设置的混合模式为“middle”,将${__arg}放在了background和color的中间,导致只有背景颜色被覆盖 -->

|group1=主要角色
|list1=先岛光 • 向井户爱花

|group2=其他角色
|list2=鳞大人• 先岛灯
}}

相关模板

  • {{ApplyToArray}}:从{{Array}}中读取参数并应用于模板的模板;支持位置参数,但不提供参数混合功能。