帮助:模板
什么是模板
“模板”名字空间
- 主条目:帮助:名字空间
模板是做什么的
就像模具可以用于生产同一款产品一样,模板用于制作页面中一些大同小异的部分——比如每个MOD页面都有的一个MOD介绍框。
在Wiki中,模板一般是指放在“模板:”名字空间里的页面。编辑者可以用{{模板名}}
的方式调用这个模板,或者说,把模板页面里面的东西显示在其他页面里。
- 其实最准确的写法是:
{{页面名}}
——任何页面的内容都可以以这种形式显示在其他页面。- 有兴趣的话,可以看看沙盒的代码。(调用了沙盒/handler页面的内容作为版头,一般不建议这么做)
- 拆分长页面时,可能会使用到这种技巧。
虽然任何页面的内容都可以显示在其他页面,但一般来讲,“模板:”名字空间的页面才是“真正的模板”。
- 当这个名字空间的模板改变时,服务器会清理缓存,刷新所有用到这个模板的页面。
- 一个页面使用的模板会在页面的编辑界面一一显示。
{{页面名}}
调用主名字空间的页面时,需要在最前面加“:”
使用模板的优点
- 模板可以复用,调用时只需要写
{{模板名}}
即可。 - 当代码改变时,仅需修改模板,调用模板的页面会自动更新。
- 模板可以隐藏大量重复使用的代码,提高代码可读性。
- 模板可以接受参数,提供一定范围内的自定义效果。
模板名
- 主条目:project:格式规范#模板
- 模板命名有一定的规则,实在想不出叫什么名字的话,可以去群里问问。
参数
{{模板|A=1|B=2|C=3}}
其中,“A”“B”和“C”是“参数名”,“1”“2”和“3”是参数的值,参数名与参数值之间用“=”分割。
模板内获取参数值的时候这么写:{{{A}}}
、{{{B}}}
。
匿名参数
调用模板时,有时会这么写:{{color|darkred|深红色的文字}}
,其中“darkred”和“深红色的文字”都是“color”模板的“参数”。
直接跟在管道符“|”(就是一个竖线)后面、没有“=”规定参数名的参数,就是匿名参数。
- 匿名参数并非没有参数名,参数名是“1”“2”“3”“4”...
{{color|darkred|深红色的文字}}
其实等价于{{color|1=darkred|2=深红色的文字}}
。
模板内调用时这么写:{{{1}}}{{{2}}}{{{3}}}{{{4}}}分别对应参数名“1”“2”“3”“4”(第1、2、3、4个匿名参数)。
- 即使写了“6=abc”而没有前5个匿名参数的话,{{{6}}}依旧可以使用。
命名参数
命名参数前文已经介绍过了,模板内调用时只需要写{{{参数名}}}。
参数混用
假设现在有个模板:{{我是}}
里面内容是:我是{{{姓}}}{{{名}}}
现在调用这个模板:{{我是|姓=盐|名=酱}}
-->我是盐酱
那么问题来了:我不想写“姓=”“名=”这些参数名,我该怎么做?
将内容改为:我是{{{1}}}{{{2}}}
现在调用模板是这样的:{{我是|盐|酱}}
-->我是盐酱
又有问题出现了:我想让写命名参数和匿名参数都起效,我该怎么做?
将内容改为:我是{{{1|{{{姓}}}}}}{{{2|{{{名}}}}}}
{{{参数名1|备用内容}}}
:当参数名1不存在的时候,显示备用内容。{{{参数名1|{{{参数名2}}}}}}
:当参数名1不存在的时候,显示参数名2的内容。- 参数名2可以继续套娃。
现在,无论是{{我是|姓=盐|名=酱}}
还是{{我是|盐|酱}}
都会正常显示我是盐酱
。
参数的限制
- 如果值里面含有“=”,如“众所周知,1+1=2”,那么无论是否为匿名参数,都需要按照命名参数的写法来写。
- 如果值里面含有“}}”,则必须使用
<nowiki></nowiki>
包裹,如<nowiki>}}</nowiki>
- 如果值里面含有“|”,则必须使用
<nowiki></nowiki>
包裹,如<nowiki>|</nowiki>
- 如果这个“|”是要在下一级起效果的,如
{{模板|[[页面名|代称]]}}
,则需要将“|”替换为{{!}}。
- 如果这个“|”是要在下一级起效果的,如
- 模板值里的方括号必须匹配。
参数的分配
{{模板|A=盐|B=酱|可|爱}}
请问:参数“A”“B”“1”“2”各是什么? |
---|
A:盐 B:酱 1:可 2:爱 |
{{模板|3=盐|1=酱|可|爱}}
请问:参数“1”“2”“3”“4”各是什么? |
---|
1:可 2:爱 3:盐 没有“4”。 首先忽略“命名参数”,匿名参数的分配是“1=可”“2=爱”。 所以这几个参数是: “1”被赋值了两次,取最后一次赋值。 |
{{模板|1=盐|2=酱|||可|爱}}
请问:参数“1”“2”“3”“4”各是什么? |
---|
1: 2: 3:可 4:爱 “1”和“2”均为空(和没有是两码事)。 {{模板|1=盐|2=酱|1=|2=|3=可|4=爱}} |
标识
includeonly与noinclude标识
- includeonly意思是:这里的代码不属于这个页面,而属于调用这个模板的页面。
- noinclude意思是:这里的代码不属于调用这个模板的页面,而属于这个页面。
可能语言描述不太好理解,这里用图片演示一下:
模板页的代码:
▮▮▮▮▮▮▮▮▮▮
<includeonly> ▮▮▮▮▮▮▮▮▮▮ </includeonly>
<noinclude> ▮▮▮▮▮▮▮▮▮▮ </noinclude>
模板页的显示:
▮▮▮▮▮▮▮▮▮▮
▮▮▮▮▮▮▮▮▮▮
这一行是保证格式用的
调用模板的页面的代码:
{{模板|参数}}
▮▮▮▮▮▮▮▮▮▮
这一行是保证格式用的
调用模板的页面显示:
▮▮▮▮▮▮▮▮▮▮
▮▮▮▮▮▮▮▮▮▮
▮▮▮▮▮▮▮▮▮▮
- 没有标识的内容( ▮ )会出现在模板页和调用页里。(一般不会出现这种内容)
- includeonly标识里的内容( ▮ )没有出现在模板页,但出现在了调用页。
- noinclude标识里的内容( ▮ )没有出现在调用页,但出现在了模板页。
一般来讲,模板会这么写(注意</includeonly><noinclude>之间什么都没有,换行都没有):
<includeonly>模板的内容</includeonly><noinclude>模板的文档、分类</noinclude>
onlyinclude标识
- onlyinclude标识内的内容同“includeonly”,以外的内容同“noinclude”。
- onlyinclude标识存在时,“includeonly”和“noinclude”均会被忽略。
- 会降低代码的可读性,因此不建议使用。
示例
参数使用示例
接受参数“颜色”“color”,默认值为“#000”:
{{{颜色|{{{color|#000}}}}}}
参数“颜色1”“颜色2”,覆盖整体设置参数“颜色”,默认值为“#000”:
{{{颜色1|{{{颜色|#000}}}}}}{{{颜色2|{{{颜色|#000}}}}}}
简单示例
给文字添加背景色:
<span style="background:{{{1}}}">{{{2}}}</span>
调用:{{模板名|pink|文字}}
-->文字
给站内链接添加颜色:
[[{{{1}}}|{{color|{{{颜色|{{{3}}}}}}|{{{2}}}}}]]
调用:{{模板名|首页|文字|DeepSkyBlue}}
或{{模板名|首页|文字|颜色=DeepSkyBlue}}
-->文字
显示完整的页面名(参看系统变量):
{{FULLPAGENAME}}
调用:{{模板名}}
-->帮助:模板