该模板为了解决某些“总出演人员一定,但每期出演人员都不固定”的节目的出演人员展示问题。
该模板是一个元模板(meta-template),请您使用该模板创建子模板后,再应用到具体的页面。
对于“总出演人员一定,但每期出演人员都不固定”的节目,您可能想要以“出演人员图标”的形式来表示每期具体出演情况。
这种情况请用该模板创建子模板(可以先在链入页面寻找一下,是否有别人先创建过),并用子模板修饰表格。 如果没有找到现有的子模板,请创建“Template:模板名”的页面。一个建议的模板名是“(某团体)出演列表”。
您可以复制粘贴并修改以下代码,或者从别人创建的子模板复制代码。 您也许会希望删掉模板中“<!-- 注释内容 -->”这样的块注释。
请注意不要在模板里保留换行,特别是在“{{#fornumargs:”和“{{出演列表”之间。如果为了美观一定要换行,请在上一行尾使用“<!--”,下一行首使用“-->”将换行注释掉,保证换行符不会意外输出。
| 示例子模板代码 |
|---|
<includeonly>{{#fornumargs:num|name|{{#vardefine:出演列表_{{#var:name}}_apply|1}}}}<!--
!-- 请不要修改此行内容。将传入的匿名参数转换为{{#vardefine:出演列表_xxx_apply|1}}的形式,以供元模板使用
-->{{出演列表
<!-- 匿名参数,定义出演人员的标识及顺序 -->
|aya|hina|chisato|maya|eve
<!-- ^ 出演人员分别标识为aya、hina、chisato、maya、eve -->
<!-- 针对每个出演人员的参数 -->
<!-- 第一个出演者 -->
|aya=丸山彩
<!-- ^ 标识为“aya”的出演者名字为“丸山彩” -->
|aya_image=Aya_icon.png
<!-- ^ “aya”的小头像为“https://commons.moegirl.org.cn/File:Aya_icon.png”。只需要填“File:”后面的内容 -->
|aya_link=丸山彩
<!-- ^ “aya”的页面名为“丸山彩”,点击后可以打开页面。如果不希望点击后打开页面,请删掉这一行 -->
<!-- 第一个出演者完 -->
<!-- 第二个出演者 -->
|hina=冰川日菜
|hina_image=Hina_icon.png
|hina_link=冰川日菜
<!-- 第三个出演者 -->
|chisato=白鹭千圣
|chisato_image=Chisato_icon.png
|chisato_link=白鹭千圣
<!-- 第四个出演者 -->
|maya=大和麻弥
|maya_image=Maya_icon.png
|maya_link=大和麻弥
<!-- 第五个出演者 -->
|eve=若宫伊芙
|eve_image=Eve_icon.png
|eve_link=若宫伊芙
<!-- 针对每个出演人员的参数完 -->
<!-- 整个模板的参数 -->
|size={{{size|30}}}
<!-- ^ 每个小头像的大小,单位为px(像素)。这里的意思是如果传入size则使用size参数,不传入则默认30px -->
|split={{{split|、}}}
<!-- ^ 复制纯文本时,用来分隔出演者的符号。同上,不传入则默认为顿号“、” -->
|empty={{{empty|(无)}}}
<!-- ^ 不指定出演者时的显示效果。同上,不传入则默认为“(无)” -->
<!-- 整个模板的参数完 -->
}}{{#fornumargs:num|name|{{#vardefine:出演列表_{{#var:name}}_apply|}}}}<!--
!-- 请不要修改此行内容。将定义的变量“出演列表_xxx_apply”清空,方便下一次调用
--></includeonly><noinclude>使用方法详见[[Template:出演列表]]<noinclude>
|
详细解释:
匿名参数定义了各个项目(即:每一个出演人员)的名称及顺序。[1]
针对每一个项目(如:每一个出演人员),有以下参数:
针对整个模板,有以下参数:(为了避免对输出参数进行双重检查、提高性能,模板内没有预置默认值,故以下参数均为必填)
对于整个模板的参数,建议按上面示例从子模板的调用处传入,这样会更加灵活。
假设您的子模板名为“PastelPalettes出演列表”,如果您按上方示例创建了模板,请按以下方式调用:
{{PastelPalettes出演列表|aya|hina|chisato|maya|eve}}(全员出演)
{{PastelPalettes出演列表|aya|eve}}(部分人员出演)
{{PastelPalettes出演列表|eve|aya}}(出演人员的顺序不重要,输出的顺序一定是定义的顺序)
{{PastelPalettes出演列表|aya|eve|size=50|split=,|empty=没有人}}(带命名参数调用)
{{PastelPalettes出演列表}}(没有出演人员)
{{PastelPalettes出演列表|empty=没有人}}(没有出演人员,且自定义了显示效果)
其中匿名参数(即没有用“参数名=”标示参数名的参数,或名字为数字的参数),用来传递出演人员的名称。该名称与模板定义中“def_名字”中的“名字”相同。
命名参数(size=、split=、empty=)详见上述#创建子模板章节,一般可以不传入,使用默认值。
| 情况 | 图标 | 说明 |
|---|---|---|
| 全员出演 | Template:PastelPalettes出演列表 | |
| 彩和伊芙出演 | Template:PastelPalettes出演列表 | 没有出演的人员为空,保证每人位置不变 |
| 千圣和麻弥出演 | Template:PastelPalettes出演列表 | 同上,首尾为空也能正常排列显示 |
| 没有人出演 | Template:PastelPalettes出演列表 | 没有出演显示默认文字“(无)”,可调 |
| 表格的源代码 |
|---|
{| class="wikitable"
|-
! 情况 !! 图标 !! 说明
|-
| 全员出演 || {{PastelPalettes出演列表|aya|hina|chisato|maya|eve}} ||
|-
| 彩和伊芙出演 || {{PastelPalettes出演列表|aya|eve}} || 没有出演的人员为空,保证每人位置不变
|-
| 千圣和麻弥出演 || {{PastelPalettes出演列表|chisato|maya}} || 同上,首尾为空也能正常排列显示
|-
| 没有人出演 || {{PastelPalettes出演列表}} || 没有出演显示默认文字“(无)”,可调
|}
|
可尝试将上述表格复制到记事本中,可以发现图标部分的文字正常显示,各出演人员之间用顿号分隔。
模板内的源代码为了节约空间,删除了注释。以下为未处理前的源代码:
| 源代码 |
|---|
<!--
先扫一遍所有项目,确定最后一个非空项目,保证最后一个项目后不加split符号(顿号)
-->{{#vardefine:last_item|}}<!--
-->{{#fornumargs:num|name|<!--
-->{{#ifeq:{{#var:出演列表_{{#var:name}}_apply|}}|1|<!--
-->{{#vardefine:last_item|{{#var:name}}}}|<!--
-->}}<!--
-->}}<!--
应用模板,输出结果
-->{{#if:{{#var:last_item}}|<!--
有出演者
-->{{#fornumargs:num|name|<!--
-->{{#ifeq:{{#var:出演列表_{{#var:name}}_apply|}}|1|<!--
有出演 -->[[File:{{{{{#var:name}}_image}}}|{{{size}}}px|link={{{{{#var:name}}_link|}}}|alt={{{{{#var:name}}|}}}{{#ifeq:{{#var:name}}|{{#var:last_item}}||{{{split}}}}}]]|<!--
未出演 --><img width={{{size}}}px/><!--
-->}}<!--
(不必在这里清除"出演列表_xxx_apply"变量,而是在子模板处理。因为这里无法考虑到传入的未定义参数)
-->}}|<!--
无出演者
-->{{{empty}}}<!--
-->}}
|