置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

模板:.../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}}中讀取參數並應用於模板的模板;支持位置參數,但不提供參數混合功能。