帮助:模板
写在前面
- 本页面涉及标点符号均为英文半角符号。
什么是模板
- 在mediawiki中,模板是一个特殊的名字空间,用于用户快捷的引用其内容到指定的页面上。通过定义参数和组合解析器函数,模板可以做到一些便捷的内容复用功能。
为什么要制作模板
- 在游戏类WIKI中会有大量的图鉴页面,这些页面因为内容结构基本一致,会有一个框架性的重复部分,通常我们会把图鉴连带其样式做成一个名字叫图鉴的模板。并将这个内容放置在“模板:图鉴”的页面。
- 模板可以复用,调用也比较简单,只需要写
{{模板名}}
即可调用模板内容到当前页面。 - 当代码改变时,仅需修改模板,调用模板的页面会自动更新。
- 模板可以隐藏大量重复使用的代码,提高代码可读性。
- 模板可以接受参数,提供一定范围内的自定义效果。
模板的制作和使用方式
简单的模板制作
- 创建一个页面,以模板:xxx(模板名)的形式。例如“模板:2233”该页面内,已经写入了内容“22是姐姐。33是妹妹。”
- 在需要的位置引入模板的话要使用这种语义“{{2233}}或{{模板:2233}}”
写法 | 效果 |
---|---|
2233是一对姐妹。{{2233}} |
2233是一对姐妹。22是姐姐。33是妹妹。 |
2233是一对姐妹。{{模板:2233}} |
2233是一对姐妹。22是姐姐。33是妹妹。 |
- 模板页面的内容是什么引入的时候就是什么,当然也可以通过函数 in only 来控制哪些内容可以引用,哪些内容可以不引用。
- 在搞清楚了模板的基本原理我们可以尝试制作一些复杂的模板。
复杂的模板制作
引入参数
- 例如,模板:今天。页面内内容相对简单,“今天是{{{1}}}”。其中这个{{{1}}}表示的就是要传入这个模板的第一个变量。同理,{{{2}}}就是这个模板要被传入的第二个变量,以此类推,一个模板里可传入的变量根据定义可以无限多。
- 因为引入了参数,模板就会变得更灵活。使用方法也相对简单。
写法 | 效果 |
---|---|
{{今天|周一}} |
今天是周一 |
{{今天|一个好日子}} |
今天是一个好日子 |
{{今天|22的生日}} |
今天是22的生日 |
- 除了顺序外还可以自定义变量的名称。例如这个模板,模板:英灵——“{{{英灵名称}}}的职阶是{{{英灵职阶}}}”
写法 | 效果 | 说明 |
---|---|---|
{{英灵|英灵名称=阿尔托莉雅・潘德拉贡|英灵职阶=Saber}} {{英灵|英灵职阶=Saber|英灵名称=阿尔托莉雅・潘德拉贡}} |
阿尔托莉雅・潘德拉贡的职阶是Saber 阿尔托莉雅・潘德拉贡的职阶是Saber |
使用“|”来间隔不同参数,同时只要是参数名称对应的正确,传入参数的顺序不会被影响。 |
{{英灵|英灵名称=阿尔托莉雅・潘德拉贡|英灵职阶=}} |
阿尔托莉雅・潘德拉贡的职阶是 | 当参数为空的时候,则该参数的位置传入的也是空。 |
{{英灵|英灵名称=阿尔托莉雅・潘德拉贡}} |
阿尔托莉雅・潘德拉贡的职阶是{{{英灵职阶}}} | 如果参数缺失,则会显示缺失的参数。 |
组合MediaWiki解析器函数
- 通过模板组合解析器函数的例子太多了这里举两个比较常见的。
模板+switch函数
- 样例,模板:变色。多用于游戏中转化稀有度和颜色的。此处的举例较粗糙,一般来说各位站长们都会配上具体的颜色数值以便在模板中调用。关于switch函数的用法,可以阅读:解析函数#switch
模板 | 写法 | 效果 |
---|---|---|
{{#switch:{{{1}}} |1星=白色 |2星=绿色 |3星=蓝色 |4星=紫色 |5星=橙色 }} |
{{变色|1星}} |
白色 |
模板+SMW
- SMW函数常用#set,#ask和#show,具体详细使用方法和原理此处不做详细说明,具体可参考 SMW 。此处仅针对使用频率最高的#ask进行举例说明。
以如下代码为例:
{{#ask:[[分类:游戏WIKI]][[列表显示::显示]] |?游戏名 |?WIKI域名 |?创建时间 |?创建人UID |?创建人昵称 |link=none |sort=创建时间 |template=游戏WIKI申请列表 |headers=hide |order=desc |format=template |limit=1000 }}
#ask 将符合条件的页面中的对应的数值,按照标记的参数顺序,依次使用 游戏WIKI申请列表这个模板进行输出。默认{{{1}}}为对应页面。其余的按照从上往下的顺序依次排列,既游戏名是第二个参数,WIKI域名是第三个以此类推。
当然,SMW也支持自定义参数名,例如:|?游戏名=游戏名称
,那么在对应的模板里就不能继续使用{{{2}}}
,而是{{{游戏名称}}}
,但是需要在输出时设定参数|named args=yes
,具体细节见帮助:SMW/Format说明#有传参名的模式
作业
- 虽然直接搬运图鉴模板看似比较省事,但是读懂其中的东西还是比较费时的。另外,如果涉及样式不一同搬运过来的话也会出现货不对板的情况。
- 如果参考BWIKI以外的站点制作图鉴请一定要遵守CC协议!
- 另外借鉴他人图鉴结构会导致大家的WIKI看起来都差不多,建议大家在理解模板原理的情况下根据实际内容自主创作。
- 请使用阅读源代码来参考这些例子
角色图鉴
- 如下例子都是未组合模块之类的需要更多代码基础的例子:
- 涉及模块等要更多代码基础的例子,初学者不建议借鉴: