查看“帮助:模板”的源代码
来自EVEWiki
←
帮助:模板
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于这些用户组的用户使用:
用户
、
管理员
您可以查看与复制此页面的源代码。
'''模板'''('''template''')是一类事先编辑好可以被其他页面所使用的内容。模板的名字以“<nowiki>template:</nowiki>”开头,任何使用模板的页面将在显示时自动调用模板中的内容。 用模板可以: *方便地在众多页面中显示同样的内容,并且在其后只需修改模板,所有引用页的内容也会随之更新。 :(使用这个功能,可以方便的制作侧栏、导航条等公用内容) *事先编写繁琐的样式或布局代码,简化使用。 :(比如本站的[[template:ship|舰船属性模板]]) 本站所使用的大部分模板都处于[[:category:template|模板分类]]中。 ==基础使用== 模板的基本使用很简单: #建立模板:如普通条目一样建立一个条目页面,只是这个页面的名称必须为“'''Template:XXX'''”(XXX即为模板的名称)。 #完善模板:模板中可以编写任何普通条目中的文本,没有任何限制。 #调用模板:在需要引用的条目中,加入“'''<nowiki>{{XXX}}</nowiki>'''”的文本,保存即可在相应位置看到模板中的内容。(条目中加入“'''<nowiki>[[Template:XXX]]</nowiki>'''”的文本作用相同,只是文本稍嫌繁琐) #编辑模板:在编辑某个条目时,如果该条目引用了模板,则在编辑框下方会列出清单。点击相应的模板链接,就可以找到该模板,并象普通页面一样编辑它。 ==模板与页面引用的区别== 实际上,mediawiki允许对任何页面进行页面引用(使用<nowiki>{{页面名称}}</nowiki>即可)。但使用模板有以下独特的好处: *所有被页面使用的模板都会在页面编辑时被列明,方便管理和修改。 *当模板改变时,所有使用模板页面的服务器缓存(相对于浏览器缓存)自动被刷新;而引用非模板页面的条目,其缓存往往要手工清空,否则无法预计调用页面能反应出相应变动。 ===模板引用的重名问题=== 如果“Template:模板名”不存在,<nowiki>{{模板名}}的作用就与[[Template:模板名]]</nowiki>相同,提供一个连接到不存在页面的链接。所以,一种创建模板的方法就是先放一个模板标签在页面里,然后点击它开始编辑模板。 如果一个页面不是以“Template:”开头,则不属于模板,但也可以使用模板标签,例如<nowiki>{{Help:模板入门}}</nowiki>会将[[Help:模板入门]]中的内容加入到该页来。这样一来,所有页面都可以当作是模板。但是,使用在模板名字空间的页面(即真正的模板) 一个模板可以调用另一个模板,它也可以调用它自己(自我调用),但只有一层自我调用有效。例如:<nowiki>[[Template:模板1]]</nowiki>的内容编辑内容是<nowiki>“一次,{{模板1}}”</nowiki>,在<nowiki>[[Template:模板1]]</nowiki>中将显示:<nowiki>“一次,一次,{{模板1}}”</nowiki>,如果其他条目调用该模板,所加入的文字将是<nowiki>“一次,{{模板1}}”</nowiki>。 模板中[[Help:变量|变量]]在模板被加入某页面后才被赋值,而不是之前。因此,如果一个模板中含有<nowiki>{{PAGENAME}}</nowiki>,该模板被某页面调用,相应的位置显示的将是调用页面的名称,而不是被调用模板的名称。 一个页面所调用的所有模板都在该页编辑页面中列出,并提供相应的链接,而且: *只列出以“Template:”开头的真正模板(位于模板[[Help:名字空间|名字空间]]的页面),处于其他名字空间被调用的页面则不会被列出; *一个段落的编辑页面列出的是所有被调用的模板,包括其他段落调用的模板; *编辑旧版本的页面,这个列表仍然是当前最新的; *如果不真正提交编辑,仅仅在预览中使用的模板不被列出。 请注意,如果页面结尾没有换行,编辑页面中总是在结尾添加一个换行,但这并不影响模板的某些效果,即这个换行不真正起作用。例如: :<nowiki>{{编号演示}}{{编号演示}}</nowiki> :<nowiki>{{编号演示}}</nowiki> 的结果是: <nowiki>{{编号演示}}{{编号演示}}</nowiki> <nowiki>{{编号演示}}</nowiki> ==参数== 模板可以使用参数,通过参数命名或者编号可以区分各个参数。 ===参数的定义和调用=== 在模板页面中,用三个大括号(又称花括号,就是“{”和“}”)可以调用参数,例如:<nowiki>{{{参数1|参数1的默认值}}}</nowiki>可以调用''参数1'',如果在模板调用中参数1没有赋值,则使用''参数1的默认值''作为参数1的赋值。在调用带参数的模板的时候,语法是: *如果在模板页面中参数使用是名称形式,即诸如<nowiki>{{{参数1}}}...{{{参数2}}}...,则调用是使用{{甲模板|参数1=参数1的赋值|参数2=参数2的赋值}}</nowiki>; *如果在模板页面中参数使用是编号形式,即诸如<nowiki>{{{1}}}...{{{2}}}...,则调用是使用{{甲模板|参数1的赋值|参数2的赋值}}</nowiki>。 '''注意:'''参数默认值同参数赋空值是不同的。 ====例1:含有命名参数的模板==== 我们可以创建一个名为'''姓名'''的模板,即<nowiki>[[Template:姓名]]</nowiki>,内容为: :我是<nowiki>{{{姓}}}{{{名}}}。</nowiki> 如果用<nowiki>{{姓名}}</nowiki>调用这个模板,我们会得到: :我是<nowiki>{{{姓}}}{{{名}}}。</nowiki> 如果用<nowiki>{{姓名|姓=张|名=飞}}</nowiki>,我们则得到: :我是张飞。 ====例2:含有编号参数的模板==== 再来一个例子,说明一个编号参数的定义和调用:我们还是先要定义一个带参数的模板,例如模板<nowiki>[[Template:数数]]</nowiki>的内容是 :一二三<nowiki>{{{1|四五六}}}</nowiki>七八九 赋值调用<nowiki>{{数数|六五四}}</nowiki>的结果是: :一二三六五四七八九 赋空值调用<nowiki>{{数数|}}</nowiki>的结果是: :一二三七八九 未赋值调用,即调用默认值,<nowiki>{{数数}}</nowiki>的结果是: :一二三四五六七八九 ===参数值的限制=== *如果参数值中含有等号(=),调用模板时则必须使用参数名,即使参数名只是一个编号也要使用。 *如果参数值中含有两个连续的右大括号(<nowiki>}}</nowiki>),调用参数时必须将其放入nowiki标记中,例如<nowiki><nowiki>}}</nowiki></nowiki>。 *如果参数值中含有竖线(<nowiki>|</nowiki>),调用参数时必须将其放入nowiki标记中,例如<nowiki><nowiki>|</nowiki></nowiki>。 *参数值可以很长,英文帮助中有一个长参数的例子:[http://meta.wikimedia.org/wiki/Help:Long_parameter_demo 例子]。 *参数值中可以包含一对双方括号,用于链接一个条目,但不能含有半个右双方括号,然后再接半个左双方括号。例如<nowiki>[[Template:数数]]</nowiki>中的内容是: ::<nowiki>[[一二{{{1}}}六七]]</nowiki> :调用<nowiki>{{数数|三]]四[[五}}</nowiki>的结果是: ::<nowiki>{{数数|三]]四[[五}}</nowiki> ===命名?还是编号?=== ====编号参数的优点==== #调用模板是不需要参数名和等号,从而节约打字和存储空间。 #阿拉伯数字是世界性的,在翻译的时候省事,也可以被不懂中文的人理解。 ====命名参数的优点==== *参数的顺序可以变化,模板的参数可以任意添加和修改,而不会对调用模板的页面产生致命影响。 *参数的意义容易理解。 <!---*some special techniques use the fact that multiple assignments of values to the same parameter in the same template call is allowed and results in the last value being used; this implies that at least one parameter name is specified explicitly in the template call ---> ====命名参数和编号参数混合使用==== 命名参数和编号参数可以混合使用,此时的未命名参数根据位置被编号,命名参数不被编号。 '''例3:'''模板<nowiki>[[Template:又数数]]</nowiki>的内容是 :<nowiki>{{{1}}}、{{{2}}}、{{{3}}}</nowiki> <nowiki>{{又数数|3=1|2|1=3|4|5|6|7}}</nowiki>的结果是 :3、4、5 想想为什么... ===未赋值并且没有默认值的参数=== 例如:模板<nowiki>[[Template:再数数]]</nowiki>的内容是 :<nowiki>一-{{{1}}}-三-{{{2}}}-五</nowiki> 调用<nowiki>{{再数数||}}</nowiki>的结果是 :一--三--五 调用<nowiki>{{再数数|二|}}</nowiki>的结果是 :一-二-三--五 调用<nowiki>{{再数数||二}}</nowiki>的结果是 :一--三-二-五 调用<nowiki>{{再数数|二|{{{1}}}}}</nowiki>的结果是 :一-二-三-<nowiki>{{{1}}}</nowiki>-五 调用<nowiki>{{再数数|{{{1}}}|四}}</nowiki>的结果是 :<nowiki>一-{{{1}}}-三-四-五</nowiki> 调用<nowiki>{{再数数|{{{1}}}|{{{2}}}}}</nowiki>的结果是 :<nowiki>一-{{{1}}}-三-{{{2}}}-五</nowiki> ===参数赋值中包含参数=== 如果一个参数未赋值,则在三个大括号中的参数名在模板调用是不起参数的作用。如果要它其作用,一定要赋值。 '''例4:''' *模板<nowiki>[[Template:数数1]]</nowiki>的内容是 ::<nowiki>{{再数数|二}}</nowiki> :调用<nowiki>{{数数1|四}}的结果是: ::<nowiki>一-二-三-{{{2}}}-五</nowiki> *模板<nowiki>[[Template:数数2]]</nowiki>的内容是 ::<nowiki>{{再数数|二|{{{1}}}}}</nowiki> :调用<nowiki>{{数数2|四}}的结果是: ::<nowiki>一-二-三-四-五</nowiki> *模板<nowiki>[[Template:数数3]]</nowiki>的内容是 ::<nowiki>{{再数数|二|2={{{1}}}}}</nowiki> :调用<nowiki>{{数数3|四}}的结果是: ::<nowiki>一-二-三-四-五</nowiki> 最简单的参数迭代办法就是在模板中用同样的参数名。 '''例5:'''模板<nowiki>[[Template:姓名国籍]]</nowiki>中使用 :<nowiki>{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{国籍}}}人。</nowiki> ====进一步的讨论==== 像<nowiki>{{再数数||四}}</nowiki>这样的调用将空值赋给参数1,而不是没有赋值,所以结果是 :一--三-四-五 如果我们希望参数1不赋值,则应该将参数2用命名参数形式赋值,如 :<nowiki>{{再数数|2=四}}</nowiki> 结果则是 :<nowiki>一-{{{1}}}-三-四-五</nowiki> 如果这样的参数值被赋给如<nowiki><font size></nowiki>这样的标记,会使编码错误,但这些错误会被系统(MediaWiki)忽略,而不产生奇怪的结果。请参看英文的例子:[http://meta.wikimedia.org/wiki/Template_talk:Fontsize 字体大小]。 参数“02”和参数“2”是不同的,例如模板<nowiki>[[Template:例5]]</nowiki>的内容是 :<nowiki>{{{1}}}{{{2}}}{{{02}}}</nowiki> 调用<nowiki>{{例5|3|4|5|6}}</nowiki>的结果是 :<nowiki>34{{{02}}}</nowiki> '''注意:'''维基系统名字空间的参数名是不同的,它们是<nowiki>$1,$2,...</nowiki>,参见[[Help:名字空间]]和[http://meta.wikimedia.org/wiki/Meta-Wikimedia:MediaWiki_namespace_text 英文维基系统名字空间文本帮助]。 ==模板页== 维基系统在生成模板页面时,实际上相当于一次没有参数赋值的模板调用,因此如果参数有默认值,将被显示。例如:模板<nowiki>[[Template:数一数]]</nowiki>的内容是 :<nowiki>一二三{{{1|四五六}}}七八九</nowiki> 模板页面的内容是 :一二三四五六七八九 ===讨论页=== 模板页面同其他条目页面是不同的,它的目的不是将知识传递给读者,而仅仅是为系统定义模板。因此,其讨论页跟普通条目页面的讨论页也不同,主要有两个功能: *第一部分要解释模板的作用和相关参数 **最好给出例子,调用模板的形式以及结果。 *第二部分则是普通的对模板的讨论。 ===跨语言链接=== 模板可以含有跨语言链接,但结果是所有调用模板的条目页面都含有了该跨语言链接,这通常是非常糟糕的事情。为了仅仅让模板本身拥有跨语言链接,而不包括使用模板的条目,我们必须使用<nowiki><noinclude></nowiki>标识。例如: :<nowiki><noinclude></nowiki> :<nowiki>[[en:Template:Europe]]</nowiki> :<nowiki>[[zh:Template:欧洲]]</nowiki> :<nowiki></noinclude> </nowiki> '''注意:'''在模板中使用<nowiki><noinclude></nowiki>标识时要小心!不要在<nowiki><noinclude></nowiki>之前或者<nowiki></noinclude></nowiki>之后'''加空行''',否则空行将被当作模板的一部分反映在调用模板的条目中。系统会自动忽略<nowiki></noinclude></nowiki>之后的单个空行。 ====例6:使用<nowiki><noinclude></nowiki>标识的后果==== 如果在例1中的模板<nowiki>[[Template:姓名]]</nowiki>加入跨语言链接 :<nowiki>我是{{{姓}}}{{{名}}}。</nowiki> : :<nowiki><noinclude></nowiki> :<nowiki>[[en:Template:Name]]</nowiki> :<nowiki></nocinlude></nowiki> 用<nowiki>{{姓名国籍|姓=张|名=飞|国籍=蜀国}}</nowiki>调用例5中的模板<nowiki>[[Template:姓名国籍]]</nowiki>时,结果是: :<nowiki>我是张飞。</nowiki> : :<nowiki>蜀国人。</nowiki> 如果希望得到的结果是: :<nowiki>我是张飞。蜀国人。</nowiki> 在<nowiki>[[Template:姓名]]</nowiki>加入跨语言链接应该不含有换行: :<nowiki>我是{{{姓}}}{{{名}}}。<noinclude>[[en:Template:Name]]</nocinlude></nowiki> '''注意:'''我们推荐您使用后面一种方式使用<nowiki><noinclude></nowiki>标识。 ===模板分类=== 模板也要进行分类,目的是为了更好的整理模板,以便更好的使用和管理模板。模板的分类同条目的分类相似,可以参阅有关条目分类的帮助文件,如[[Help:分类]]等,不同之处在于对于模板的分类需要使用<nowiki><noinclude></nowiki>标识,如果不加<nowiki><noinclude></nowiki>标识,则不仅模板被分类,所有使用该模板的条目也被分入同一类。 所有模板的根目录(即分类)是[[:Category:template]],所有模板分类名最后一定要含有“模板”二字,以区别于普通条目的分类。 ====例7:模板分类方法==== 将例1中的模板<nowiki>[[Template:姓名]]</nowiki>分为[[:Category:人物模板]],需要加入: :<nowiki>我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</noinclude></nowiki> ===标识=== '''注意:'''以下内容只限于模板中使用的情况,在其他名字空间使用的情况请参考相关帮助文挡。 ====<nowiki><noinclude></nowiki>==== 前面已经提到,<nowiki><noinclude></nowiki>标识的作用是将<nowiki><noinclude></nowiki>和<nowiki></noinclude></nowiki>之间的文本加入所在的模板页中,而不加入调用模板的条目或模板中,针对模板的说明、分类和跨语言连接都可以置于该标识之间。 '''例8:'''针对[[Template:ship|舰船属性]]模板的分类[[:Category:内容模板]]就可以置于<nowiki><noinclude></nowiki>和<nowiki></noinclude></nowiki>之间,而对于调用该模板条目的分类[[:Category:舰船]]可以置于标识之外: :<nowiki>[[Category:舰船]]<noinclude>[[Category:内容模板]]</noinclude></nowiki> ====<nowiki><includeonly></nowiki>==== <nowiki><includeonly></nowiki>标识的作用跟<nowiki><noinclude></nowiki>标识的作用正好相反,是将<nowiki><includeonly></nowiki>和<nowiki></includeonly></nowiki>之间的文本'''不'''加入所在的模板页中,而加入调用模板的页面中。 上面的例8中针对调用该模板的条目的分类[[:Category:舰船]]实际上应该置于<nowiki><includeonly></nowiki>和<nowiki></includeonly></nowiki>之间: :<nowiki><includeonly>[[Category:舰船]]</includeonly></nowiki> 这样,在[[:Category:舰船]]分类中就不会出现[[Template:ship|舰船属性]]模板了。 ====<nowiki>subst</nowiki>==== '''subst'''的用法是:<nowiki>{{subst:模板名}}</nowiki>。它的作用是一次性将模板内容编译成维基文挡,加入到页面中去,而不是每次显示页面的时候调用有关模板。这样可以按模板当前的形式编辑条目,并使条目免受模板变化的影响。 ==作用== 如果想将同一段文本复制到两个或者多个页面,我们可以考虑使用模板,但也并不是一定要用模板。如果使用模板,要修改这段文本时,不需要针对每一个页面进行逐个修改,而只需要修改模板的内容,所有使用该模板的页面都自动被修改。由于有参数存在,所以模板文本并不需要完全一样,对于不同页面,我们可以赋不同值,从而生成不同的文本。模板不仅仅是使用方便,它有时候还可以起到控制页面统一格式的作用。 模板的一般用法有: *[[:category:消息模板|消息模板]],例如:[[Template:未完成]]传递“未完成”的消息。 *[[:category:导航模板|导航模板]],用于给读者提供类似的条目,例如:[[Template:舰船汇总]]。 *信息框模板,用于同一类条目中提供统一格式的信息。 *提供跨语言文本。 *以上几种的组合。 ==参见== ===中文=== *[[:Category:template]] ===英文=== *[http://meta.wikimedia.org/wiki/Help:Template 元维基上的英文模板帮助] *[http://meta.wikimedia.org/wiki/Help:Advanced_templates 元维基上的英文模板高级帮助] [[分类:帮助]]
返回至
帮助:模板
。
导航菜单
视图
帮助页面
讨论
查看源代码
历史
个人工具
183.136.169.146
该IP地址的讨论
创建账户
登录
导航
首页
EVE Online
EVEWiki公告区
最近更改
新闻动态
舰船属性
技能交易
配船方案
使用帮助
搜索
工具
链入页面
相关更改
特殊页面
页面信息