帮助:模板

模板(英语:Template)是维基百科的系统中的一项功能,类似于计算机语言中的子程序。本文提供在MediaWiki创建模板的技术指南;维基百科使用MediaWiki并对模板有一定的规范。另外也可参考:

什么是模板,为什么要用模板

模板是您在条目的上方看到各种各样的条条框框,比如“本条目需要清理”、“本条目应避免有陈列杂项、琐碎资料的部分。”等。有时候条目右侧也能看到一个灰色的框,里面写着有关这个条目的基本信息,比如一位艺人的“生日”、“出生地”、“国籍”等。条目最下方有时候也会见到一个大方框,里面陈列着和这个条目相关的内容(称为“导航模板”,比如这个)。这些都是“模板”。模板的形式还有很多很多,有的是直接镶嵌在条目正文里面的,有的虽然看不到但是却依然影响到条目显示的内容(比如字词转换模板)。但是如果你翻阅这些条目的源代码,就会发现这些模板都长成类似“{{模板名字|模板参数}}”这样子,用一对双大括号将模板的内容扩起来。

为什么会有这些模板?有时候,一段内容会在多个条目中反复出现,这时候如果一遍一遍复制那些内容,一遍遍粘贴到各个条目里面可能不太方便,而且大段大段的对阅读也有影响;而且,万一日后内容有变动,又要进到各个条目里面把这些内容一个个全改一遍,这会产生大量的重复劳动。模板就是为了这样的目的:只需要给重复的部分放到一个模板里、起个名字,以后需要用到这些内容的时候直接调用模板就行了。需要更改内容的时候,也只需要在模板里改动,那些调用了模板的条目也会随着模板自动变更,增加了工作效率。

所有的模板都会放在一个叫“Template”的命名空间,即“模板命名空间”,标题名称是“Template:模板名字”、“模板:模板名字”这样。在写作条目时,只需要在合适的位置放上“{{模板名字}}”,模板就会在合适的地方显示出来了。有时候对于同一个模板,虽然显示的内容稍有差异,但大体的框架是一致的,这个时候就会用到“模板参数”,即“{{模板名字|模板参数}}”的形式,具体的用法请见下文。

需要注意的一点是,维基百科的系统——MediaWiki本身并不会自动为条目挂上模板。因此,当看到条目里面显示了“本条目需要补充更多来源”等文字时,是其他维基人人工将模板挂上去。在模板所述问题修正之后,可以自行将模板从源代码中删除,这段提示文字将自动消失。

调用模板

调用模板就是把模板内容嵌入到调用方页面。

在Template命名空间里的页面才是模板,所以模板都由Template:开头,在中文维基,以模板:开头同样有效。调用时必须使用模板标签,即{{Template:模板名}}的形式,“Template:”可以在无歧义的情况下省略。如Template:tc是一个模板,内容为“in”。如果把{{tc}}加入某个页面,则{{tc}}的内容会在此页面显示,即{{tlc|...}}

如果“Template:模板名”不存在,{{模板名}}的作用就与[[Template:模板名]]相同,提供一个连接到不存在页面的链接:Template:模板名

模板可以被重定向。例如Template:请求来源被重定向到Template:Citation needed,所以{{请求来源}}效果等同于{{Citation needed}}。有时移动模板并建立重定向后,原调用重定向的页面可能会出错,只要过一段时间(几小时)等服务器刷新缓存即可。

设定参数

在模板名后可用管道符(即竖线)追加参数(这种做法称为传参)。参数有编号参数和命名参数两种。在模板的说明文档里一般会列出该模板的所有参数。

例如,{{fact|1=维基百科的编者大部分是男性|time=2024-11-30}}得到“维基百科的编者大部分是男性[来源请求]”。

“维基百科的编者大部分是男性”的参数名为1。“2024-11-30”的参数名为time。参数名为数字就是编号参数,否则就是命名参数

编号参数的参数名(1、2、3、4等)和等号可以省略。上例的效果和{{fact|维基百科的编者大部分是男性|time=2024-11-30}}是一样的。注意,以省略形式赋值的第一个编号参数的参数名是1,而不是很多编程语言习惯的0。

调用 效果
{{catnav|页面分类|地理|大洲|亚洲|亚洲国家}}
{{catnav|0=页面分类|1=地理|2=大洲|3=亚洲|4=亚洲国家}}
地理 > 大洲 > 亚洲 > 亚洲国家 > 模板
{{catnav|1=页面分类|2=地理|3=大洲|4=亚洲|5=亚洲国家}}
{{catnav|5=亚洲国家|4=亚洲|3=大洲|2=地理|1=页面分类}}
{{catnav|1=页面分类|2=地理|大洲|4=亚洲|亚洲国家}}

要么不省略编号参数名,要么全都省略,否则极易出错。

可以理解为参数1第一次赋值为“页面分类”,然后“大洲”作为隐藏的参数1第二次赋值覆盖了第一次赋值的内容。

如此类推。

在编辑预览中会警示这种重复赋值问题。

大洲 > 亚洲国家 > 亚洲 > 模板

需要转义的参数

  • 如果参数值中含有等号(=),传参时则必须使用参数名,即使是编号参数也要使用。也可以使用{{=}}代替[1]
  • 如果参数值中含有两个连续的右大括号(}}),调用参数时必须将其放入nowiki标记中,例如<nowiki>}}</nowiki>
  • 如果参数值中含有竖线(|),调用参数时必须将其放入nowiki标记中,例如<nowiki>|</nowiki>,或用{{!}}代替[1][2]
  • 参数值中可以包含一对双方括号(即两个左方括号,两个右方括号),用于链接一个条目,或是其他命名空间的页面,但不能先写右双方括号,然后再接左双方括号。例如Template:数数1中的内容是:
[[一二{{{1}}}六七]]
{{数数1|三]]四[[五}}会造成模板调用失败,显示为:
{{数数1|三]]四[[五}}
而不是你所期望的
一二三五六七
不过可以使用{{!((}}([[)及{{))!}}(]])来让这个结果成真,因此:
{{数数1|三{{))!}}四{{((!}}五}}

会变成:

 一二三五六七

替换引用

另见分类:应被替换引用的模板

放置修饰符“subst:”(substitute,替代)位于模板标签的“{{”之后,模板名之前,即可替换引用。它能在调用方页面保存时,将所调模板展开,而不是每次显示页面的时候读取有关模板。这样可以按模板当前的形式编辑条目,并使条目免受模板变化的影响,并减轻服务器负担。所以对模板的替换引用不会显示在页面历史和模板的链入页面中。

例如{{fact/auto}}和{{未签名}}都是应被替换引用的模板。

嵌入页面

模板标签不仅可以调用模板,也可以调用(嵌入)其他页面,就是像模板一样把被调页面的内容加入到调用方页面。

这样一来,所有页面都可以当作是模板。但是,使用在模板命名空间的页面(即真正的模板)有以下独特的好处:

  • 所有被页面使用的模板都在页面编辑页显示出来。
  • 当模板改变时,所有使用模板页面的服务器缓存(相对于浏览器缓存)自动被清空;而位于其他命名空间的页面,服务器缓存往往要手工清空。

而模板命名空间以外的页面一般在如下情况下被嵌入其他页面:

  • 引用维基百科命名空间的界面消息。
  • 将一个长页面(可以属于主条目命名空间,假设名字就叫做“长页面”,例子)拆分为较短页面时,可以将短页面命名为“长页面/第一部分”、“长页面/第二部分”等,然后使用{{/第一部分}}<br />{{/第二部分}}来拼成长页面。Wikipedia:互助客栈 (全部)就是一个好例子。

一个模板可以调用另一个模板,它也可以调用它自己,但自我调用只有一层有效。例如:Template:模板1的内容是“一次,{{模板1}}”,在Template:模板1中将显示:“一次,一次,{{模板1}}”,如果其他条目调用该模板,所加入的文字将是

一次,检测到模板循环:Template:模板1

在2010年前,如果把其他模板重定向至某模板,该模板又引用重定向,且多次自我调用均为不同重定向,则该模板可以实现多次自我调用。MediaWiki后来取消此功能。如{{RR|7}}的结果为RR-检测到模板循环:Template:RR7

模板中变量在调用模板的地方被赋值。因此,如果一个模板中含有{{PAGENAME}},该模板被某页面调用,相应的位置显示的将是调用方的名称,而不是被调模板的名称。

一个页面所调用的所有模板都在该页编辑页面中列出,并提供相应的链接,而且:

  • 一个段落的编辑页面不会列出任何模板;
  • 编辑旧版本的页面,这个列表仍然是当前最新的;
  • 可加入模板扩展语法#if, #ifeq, #ifexist, #ifexpr, 或 #switch;
  • 如果不真正提交编辑,仅仅在预览中使用的模板不被列出。
  • 如果模板名里面嵌套另一个模板,如{{{{tc}}{{CURRENTDAY}}}},则会得到{{{{tlc|...}}30}};编辑页面里会显示[[Template:{{tlc|...}}30]]。
  • 模板名#后的内容会忽略。

请注意,如果页面结尾没有换行,编辑页面中总是在结尾添加一个换行,但这并不影响模板的某些效果,即这个换行不真正起作用。例如:

{{编号演示}}{{编号演示}}
{{编号演示}}

的结果是:

  1. 北京
  2. 上海
  3. 北京
  4. 上海
  1. 北京
  2. 上海

创建并编辑模板

维基百科现存大量模板供编者使用,如果有现存模板可以完成您的任务,则应该调用现有模板,而不是另建新模板。

您在新建模板前,请先搜索相应的模板名称,如“Template:维基百科模板”。新建模板后,请在Wikipedia:模板消息内添加您新建的模板的信息,并请对模板进行分类。模板分类的方法请参考Category:维基百科模板以及Category talk:维基百科模板中的相关内容。

当您在模板中需要使用图标时,建议使用维基共享资源水晶风格图标库中提供的图标。

模板页面会自动调用这个模板本身,实际上相当于一次没有参数赋值的模板调用,因此如果参数有默认值,将被显示。例如:模板Template:数一数的内容是

一二三{{{1|四五六}}}七八九

模板页面的内容是

一二三四五六七八九

读取参数

在模板页面中,用三个大括号可以读取参数,例如:{{{参数1|参数1的默认值}}}可以读取参数1,如果在模板调用中参数1没有赋值,则使用参数1的默认值作为参数1的赋值。另见Help:默认参数

注意:参数默认值和参数赋空值是不同的。

例1:含有命名参数的模板

例如:Template:姓名的模板,内容为:

我是{{{姓}}}{{{名}}}。

如果用{{姓名}}调用这个模板,将会看到:

我是{{{姓}}}{{{名}}}。

如果用{{姓名|姓=张|名=飞}},我们则看到:

我是张飞。

例2:含有编号参数的模板

再来一个例子,说明一个编号参数的定义和调用:我们还是先要定义一个带参数的模板,例如模板Template:数数的内容是

一二三{{{1|四五六}}}七八九

赋值调用{{数数|六五四}}的结果是:

一二三六五四七八九

赋空值调用{{数数|}}的结果是:

一二三七八九

未赋值调用,就会调用默认值,{{数数}}的结果是:

一二三四五六七八九

编号参数还是命名参数?

编号参数的优点

  • 调用模板时参数名和等号可以省略,从而节约打字时间和存储空间。参见#设定参数
  • 阿拉伯数字是世界性的,翻译时较为简单,也可以被不懂中文的人理解。

命名参数的优点

  • 参数的顺序可以变化,模板的参数可以任意添加和修改,而不会对调用模板的页面产生致命影响。
  • 参数的意义容易理解。
  • 当模板具有大量缺省参数时,命名参数使语法更为清晰
  • 一些特殊的技巧利用这样一个特性:在一次模板调用中允许对同一个参数多次赋值,这导致最后一次赋值的内容生效;这种做法隐式保证了在本次模板调用中该参数至少被赋值一次

未赋值且没有默认值的参数

例如:模板Template:再数数的内容是

一-{{{1}}}-三-{{{2}}}-五

{{再数数||}}的结果是

一--三--五

{{再数数|二|}}的结果是

一-二-三--五

{{再数数||二}}的结果是

一--三-二-五

{{再数数|二|{{{1}}}}}的结果是

一-二-三{{1}}五

{{再数数|{{{1}}}|四}}的结果是

一{{1}}三-四-五

{{再数数|{{{1}}}|{{{2}}}}}的结果是

一{{1}}三{{2}}五

例4:参数赋值中包含参数

如果一个参数未赋值,则在三个大括号中的参数名在模板调用时不起参数的作用。如果要它起作用,一定要赋值。

{{再数数|二}}
{{数数A|四}}的结果是:
一-二-三{{2}}五
{{再数数|二|{{{1}}}}}
调用{{数数B|四}}的结果是:
一-二-三-四-五
{{再数数|二|2={{{1}}}}}
调用{{数数C|四}}的结果是:
一-二-三-四-五


例5:参数迭代

当模板需要隔层叫用时(例如有一个父模板,然后建立许多子模板,子模板使用父模板的功能)要让底层(A模板叫用B模板,B模板为A模板的底层)层使用上层参数时,则需要参数迭代。

最简单的参数迭代办法就是在模板中用同样的参数名。

例如:Template:姓名国籍

{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{国籍}}}人。
我现在叫用“{{姓名国籍|姓=王|名=小奇|国籍=火星}}
结果为“我是王小奇。火星人。”

您可能会认为,Template:姓名模板也有包含{{{姓}}}{{{名}}}参数。

因此我们可以试著将Template:姓名国籍改成

{{姓名}}{{{国籍}}}人。
此时叫用“{{姓名国籍|姓=王|名=小奇|国籍=火星}}
结果为“我是{{{姓}}}{{{名}}}。火星人。”

这是因为在Template:姓名模板中,无法读取到Template:姓名国籍中传递的“|姓=王|名=小奇|国籍=火星”参数

由于每一层模板呼叫参数都互不相关,因此要让参数能一层一层传递下去,则每层都需要迭代一次参数。

进一步

{{再数数||四}}这样的调用将空值赋给参数1,而不是没有赋值,所以结果是

一--三-四-五

如果我们希望参数1不赋值,则应该将参数2用命名参数形式赋值,如

{{再数数|2=四}}

结果则是

一{{1}}三-四-五

如果这样的参数值被赋给如<font size>这样的标记,会使编码错误,但这些错误会被系统(MediaWiki)忽略,而不产生奇怪的结果。请参看英文的例子:字体大小

参数“02”和参数“2”是不同的,例如模板Template:例5的内容是

{{{1}}}{{{2}}}{{{02}}}

调用{{例5|3|4|5|6}}的结果是

34{{{02}}}

注意:维基系统命名空间的参数名是不同的,它们是$1, $2, ...,参见WP:命名空间Special:所有消息MediaWiki:Blockedtext

参数及模板命名

参数命名可以调用其他参数,如Template:XYZ内容为{{{{{{XYZ}}}}}},则调用{{XYZ|XYZ=SDF|SDF=789}}会把参数XYZ的值SDF作为参数名,显示参数SDF的值,即789。MediaWiki会把{{{{{{XYZ}}}}}}解析为{{{ {{{XYZ}}} }}}而不是{{ {{ {{XYZ}} }} }}(结果是{{ {{ {{{{{{XYZ}}}}}} }} }})。这里空格是敏感的。另外,调用其他参数仅可调用1层。如Template:XYZ2内容为{{{{{{{{{XYZ}}}}}}}}},则{{XYZ2|XYZ=SDF|SDF=ABC|ABC=789}}结果为789。

又如,Template:1a2b内容为{{{第一个|第一个未定}}}-{{{第二个|第二个未定}}},Template:nanb内容为{{1a2b|{{{1|第一个}}} = {{{1|第一个}}}已定}},则{{nanb}}结果为第一个已定-第二个未定,{{nanb|第一个}}结果为第一个已定-第二个未定,{{nanb|第二个}}结果为第一个未定-第二个已定,{{nanb|第三个}}<结果为第一个未定-第二个未定。

又如,Template:testif内容为{{{test{{{test|}}}|{{{then}}}}}},则{{testif|test=11|test11=233}}结果为233,{{testif|test=11|then=255}}结果为255,{{testif|then=333}}结果为333,{{testif|test=|then=335}}结果为。

另外,如果模板名为参数,如Template:Sample2内容为{{{{{tc}}}}},则调用{{Sample2|tc=!}}相当于{{!}},显示为|。这里,{{{{{tc}}}}}解析为{{ {{{tc}}} }}而不是{{{ {{tc}} }}}。如果Template:Sample3内容为{{{ {{tc}} }}},{{tc}}内容为in,则{{Sample3|in=11}}显示为{{{ {{tlc|...}} }}}。

模板调用时,模板名可以是解析器函数。如{{{{NAMESPACE}}1}}相当于{{help1}},结果为这是{{Help1}}的内容。。

模板名可以是另一个模板。如Template:tctc内容为{{tc}},{{{{tctc}}}}相当于{{tc}},结果为{{{{tctc}}}}。

可以使用参数选择模板名。如Template:Hist3内容为{{{{{2}}}x|{{{1}}}}}-{{{{{3}}}x|{{{1}}}}}-{{{{{4}}}x|{{{1}}}}},Template:1x内容为{{{1}}},Template:2x内容为{{{1}}}{{{1}}},Template:3x内容为{{{1}}}{{{1}}}{{{1}}},则{{Hist3|4|3|2|1}}结果为444-44-4。又如Template:a2b2c2d内容为{{{{{1}}}|a{{{2}}}b{{{2}}}c{{{2}}}d}},Template:t2内容为start_{{{1}}}_middle_{{{2}}}_end,{{a2b2c2d|t2|V}}相当于{{t2|aVbVcVd}},即start_aVbVcVd_middle_{{{2}}}_end。

模板可以多次嵌套。如{{3x|{{2x|{{3x|{{1x|{{2x|{{tc}}}}}}}}}}}}结果是{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}

模板分类

模板也要进行分类,目的是为了更好的整理模板,以便更好的使用和管理模板。模板的分类同条目的分类相似,可以参阅有关条目分类的帮助文件,如Help:分类等,不同之处在于对于模板的分类需要使用<noinclude>标识,如果不加<noinclude>标识,则不仅模板被分类,所有使用该模板的条目也被分入同一类。

所有模板的根目录(即分类)是Category:维基百科模板,所有模板分类名最后一定要含有“模板”二字,以区别于普通条目的分类。

例7:模板分类方法

将例1中的模板Template:姓名分为Category:人物模板,需要加入:

我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</noinclude>

标识

注意:以下内容只限于模板中使用的情况,在其他命名空间使用的情况请参考相关帮助文挡。

<noinclude>、<includeonly>和<onlyinclude>

<noinclude>标识的作用是将<noinclude></noinclude>之间的文本加入所在的模板页中,而不加入调用模板的条目或模板中,针对模板的说明、分类都可以置于该标识之间。

<includeonly>标识的作用跟<noinclude>标识的作用正好相反,是将<includeonly></includeonly>之间的文本加入所在的模板页中,而加入调用模板的页面中。

<onlyinclude>标识不常用,其作用是只有被<onlyinclude></onlyinclude>包含的文本才出现在调用模板的页面中,模板的其他内容不出现在调用模板的页面中。

原始码 原始页面看到的 其他页面看到的
<noinclude> text1 </noinclude> text2 text1 text2 text2
<onlyinclude> text1 </onlyinclude> text2 text1 text2 text1
<includeonly> text1 </includeonly> text2 text2 text1 text2

subst与preload过程中的noinclude、includeonly和IncludeOnly

以下部分行为是错误的,是旧版本软件的缺陷,并将随MediaWiki 1.17的部署被修正bugzilla:5210)。
解释与传递
模板源码 includeonly noinclude includeonly noinclude include<includeonly></includeonly>only
模板显示 interpret interpret interpret 同noinclude 解释内层,传递外层
嵌入过程 interpret interpret interpret 解释内层,传递外层
subst过程 interpret 传递 interpret 成为includeonly
preload过程 interpret 传递 传递 成为includeonly
嵌套
模板源码 includeonly pair中的includeonly pair noinclude pair中的includeonly pair
模板显示 错乱[1]
嵌入过程 /
subst过程 /
preload过程 正常 /

Nowiki

注意:以下内容只限于模板中使用的情况,在其他命名空间使用的情况请参考相关帮助文挡。

对于一些模板,我们不希望模板参数的Wikitext语法被识别。比如:我们希望传入文档的参数以其原本的状态居中显示。

如果我们写Template:居中Nowiki,内容为:

<div style="text-align:center"><nowiki>{{{1}}}</nowiki></div>

那么用{{居中Nowiki|'''居中的内容'''}}调用此模板返回的结果会是:

{{{1}}}

因为<nowiki>...</nowiki>会在模板的源代码页面就发挥作用,所以<nowiki>{{{1}}}</nowiki>在模板中并非代表传入的参数,而代表的是“{{{1}}}”这串字符本身。因此,此时需要用到另一个方式来达成此目的。我们写Template:居中Nowiki1,内容为:

<div style="text-align:center">{{#tag:nowiki | {{{1}}}}}</div>

那么用{{居中Nowiki1|'''居中的内容'''}}调用此模板返回的结果会是:

'''居中的内容'''

简而言之,<nowiki>内容</nowiki>{{#tag:nowiki | 内容}}的区别是:前者在模板的源代码页面起作用,而后者会在使用模板的页面起作用。

特殊的模板引用

  • 子页面引用
    • 格式:{{/子页面}}
示例
模板源码 includeonly noinclude IncludeOnly NoInclude include<includeonly></includeonly>only
模板显示 interpret interpret interpret 同noinclude 解释内层,传递外层
嵌入过程 interpret interpret interpret 解释内层,传递外层
subst过程 interpret 传递 interpret 成为includeonly
preload过程 interpret 传递 传递 成为includeonly
嵌套
模板源码 includeonly pair中的includeonly pair noinclude pair中的includeonly pair
模板显示 错乱[2]
嵌入过程 /
subst过程 /
preload过程 正常 /
  • 引用过程中“子页面”的意义是引用模板的页面的子页面,而非被引用的模板的子页面。
  • 其它命名空间的模板引用
    • 格式:{{命名空间:子页面}}如{{Template talk:!}}

一般用法

模板的一般用法有:

提及模板

在某些情况下,我们可能需要提及某一个模板(而非调用它)。提及模板可用nowiki标签,但是已经有热心的用户建立了专门的模板,用于提及模板。

您所输入的 您所看到的
请您不要再随意删除{{afd}}模板。 请您不要再随意删除模板。
请您不要再随意删除<nowiki>{{afd}}</nowiki>模板。 请您不要再随意删除{{afd}}模板。
请您不要再随意删除{{tl|afd}}模板。 请您不要再随意删除{{afd}}模板。
欢迎新用户可以使用{{tls|welcome}}语法,但不要使用{{tl|welcome}}语法。 欢迎新用户可以使用{{subst:welcome}}语法,但不要使用{{welcome}}语法。
[[:Template:nosign]]的用法如下:
{{tlx|nosign|用户留言时间|用户名}}
Template:nosign的用法如下:
{{nosign|用户留言时间|用户名}}
{{tnull|nosign|用户留言时间|用户名}}用于补签名。 {{nosign|用户留言时间|用户名}}用于补签名。

类似语法

{{CURRENTYEAR}}、{{DISPLAYTITLE:}}等等为魔术字。魔术字可以返回关于当前页面、wiki站点或日期的信息,也可以设置数据。参见Help:魔术字#变量

调用解析器函数的语法是{{#xxx:}}。如{{#ifeq:{{{lang}}}|zh|我使用中文|I<ins> don't</ins> use Chinese}}给出I don't use Chinese。

读取模板参数是三个大括号,形如{{{1|}}}、{{{date}}}。详见#读取参数

常见问题

我可以在多个语言维基百科中使用同一个模板吗?

不能。如果你要这么做,只能在各个维基百科中分别创建该模板。

开头是“Template:”,“template:”,还是“模板:”?

都行。英文不区分大小写,中文会繁简自动转换。一定要用英文半角冒号。

我可以使用参数吗?

可以。请参阅此页上方

一个页面中最多可以使用多少模板?

2MB。参见Wikipedia:模板限制

我已经修改了模板,但为什么页面不更新呢?

有很多原因。第一、你可能没有刷新页面。在你的浏览器里使用刷新(Refresh)功能。第二、系统可能存在缓存漏洞(bug)。一种解决方法是编辑使用模板的页面,然后什么也不修改就保存,这样你就强制该页面进行刷新了。这一操作不会在历史中留下记录。

我可以修改模板的名字吗?

可以。移动模板跟移动普通页面一样。模板也可以重定向。

我可以在一个模板中使用另一个模板吗?

可以。当然可以在一个模板的内容中调用另一个模板。但如果使用诸如{{一个模板{{另一个模板}}}}这样的语句,假设{{另一个模板}}的内容为“123”,则实际上是{{一个模板123}}。

参考资料

  1. ^ 1.0 1.1 Help:魔术字#其他特殊符號. 2015-08-02. 
  2. ^ MediaWiki更新记录. 2015-08-02. 

参见

中文

英文