前言

本页面介绍模板的功能以及使用方法。由于编者水平有限,以下内容仅可作粗略参考。

本页面不是专门针对某个模板的使用说明,或是对本站的模板进行汇总归类的地方。要寻找模板页面可以使用特殊:未分类模板,或者根据被其他页面引用次数排序的特殊:最多嵌入页面

另外,要查看一个页面使用了哪些模板,可以在电脑版编辑模式下网页的底端查看,会有一个列表名为“该页面使用的模板”;要查看某个模板被哪些页面使用,可以在模板页面中打开左侧边栏最下方“工具”栏中的“链入页面”查看。

模板的原理

模板页面是一类专门用于服务其他页面的功能性页面,其本身并没有多大的观赏价值,只有当模板嵌入其他页面(被引用)时才会发挥效果。

实际上,嵌入页面功能的适用范围并不仅限于名字带有“模板”的页面。任何页面都可以被当作模板嵌入其他页面,例如接下来内容是将本站站长的个人页面引用至此,所使用的代码为:

<center>{{用户:代代勇}}</center>

具体效果如下:

==自我介绍==

我的百度贴吧&新浪微博的昵称是“Duke代代勇Pang”,一般叫我代代勇就好。我的舰nUID是236959

http://jp.zjsnrwiki.com/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

发现的mediawiki页面


链接 说明 链接 说明
MediaWiki:Anonnotice ??? MediaWiki:Explainconflict 编辑冲突
MediaWiki:allnotice 示例 MediaWiki:Edittools 编辑工具
mediawiki:Copyright 示例 MediaWiki:Edittext ?!?
MediaWiki:Createaccount-title 创建账户标题 MediaWiki:Edittools-upload 上传界面编辑工具
MediaWiki:Copyrightwarning 版权警示 MediaWiki:Spam-blacklist ???
MediaWiki:Confirmemail body ??? MediaWiki:sitenotice 全站顶部示语
MediaWiki:Editnotice 编辑示语 MediaWiki:Sidebar 侧边栏
MediaWiki:Newarticletext 新建页面示语 MediaWiki:Summary 编辑摘要
MediaWiki:Titleblacklist 标题黑名单 MediaWiki:uploadtext 上传文件界面的告示

模板:姐妹舰数据库

距离你萌乙烷还有 23小时59分59秒

模板的原理(接上段)

上方的内容搬运自用户:代代勇页面。为了方便区分,引用来的内容使用了居中标签。简而言之,模板功能就是一个套用其他页面的内容的指令,其目的是为了简化重复使用同一段代码的过程。

对于一个模板页面,只需要使用双大括号{{模板名称}}便能把指定页面的有效内容复制过来。模板名称即{{模板:模板名称}}中的高亮部分。要将一般的内容页面作为模板引用时,需要在页面名称之前写上半角双引号,例如{{:新手入门}}会引用新手入门页面的所有有效内容。如果要引用特殊页面(例如上面的用户页面),只需要在双大括号中填上页面的全称。

如果源页面的内容变动了,引用来的内容会一同变动,也就是说如果用户:代代勇这个页面被清空,那么上面就不会有任何居中的内容;如果用户:代代勇的页面里只有一个滑稽表情,那么上方也只会显示一个滑稽表情。

模板的用途

为了更好地说明模板的使用方法,本段将引用模板:黑幕。黑幕是一个被经常使用的模板,其代码如下:

<includeonly><span title="你知道得太多了|v0" class="heimu">{{{1|}}}</span></includeonly>

让我们忽略掉<includeonly>(在最后会讲),来看代码实际生效的部分。<span>标签是一个css/html语言标签,其效果大致是给之后的文字指定样式(颜色、字体、排版等),其效果止于</span>标签。将其中的内容拆分开来,可以看出这个模板有两个同时生效的效果:

<span title="你知道得太多了|v0" class="heimu">

  1. 从结果推导,title="你知道得太多了|v0"的效果是使鼠标放在被修饰的文字上时冒出这段信息“你知道得太多了|v0”。
  2. class="heimu"则改变了文字的样式,具体来说是把文字的背景变成了黑色,从而产生黑幕的效果。

以下两种实现黑幕的方式分别是使用黑幕模板和不使用模板的纯代码:

{{黑幕|被黑幕的文字}}
<span title="你知道得太多了|v0" class="heimu">被黑幕的文字</span>

效果分别如下:

被黑幕的文字

被黑幕的文字

可以看出,直接打出代码而不使用模板的话,可以和使用模板达到相同的效果(毕竟模板就是用了这段代码)。但是:

  1. 直接打代码涉及一些网页设计语言的运用,对于不懂行的编辑来说相当不友好,不知道哪里该写什么。模板可以简化代码,只保留需要的变量,还可以使用汉字定义代码。
  2. 模板比纯代码明显更短更方便使用。这适用于大部分情况。
  3. 模板方便批量操作。当需要更改模板的效果时,只需要改变模板页面的内容,就能使链入模板的页面的内容一同更改。比方说,要把“你知道得太多了|v0”改成“0v|你知道得太多了”的话,只需要在模板:黑幕中更改,改动就会反映在所有引用了模板:黑幕的页面中。若是用纯代码的话,要更新黑幕的效果就必须去每一个页面中更改代码,因为每一个页面的代码都是独立的而非引用自同一个页面。

简单变量

如果仅仅是复制其他页面的话,只需要ctrl+c-ctrl+v。模板的关键不仅在于它有什么,也在于它缺什么。

假设上文中的黑幕模板变成了如下内容:

<span title="你知道得太多了|v0 class="heimu">昆西</span>

那么当黑幕模板被引用时,只会显示出如下的固定内容:

昆西

这是因为上面这段代码不缺东西,span标签之间的内容是“昆西”,所以被黑幕的文字已经钦定是“昆西”了。

现在再将原本的黑幕模板代码拿出来对比一下:

<span title="你知道得太多了|v0" class="heimu">{{{1|}}}</span>

可以看出,黑幕模板的神奇之处在于,它的span标签指定的不是“昆西”,而是{{{1|}}}这个奇怪玩意,它的名字大概叫做变量。

变量(数学名词)是指没有固定的值,可以改变的数。——百度百科

这个{{{1|}}}并不是任何确定的内容,而是使用黑幕模板的用户在特定的位置输入的文字,如下可见:

{{黑幕|这个位置}}

可以理解为模板是函数f(x),{{{1|}}}是因变量x,高亮的“这个位置”就是由编辑者填入的x值。

“{{黑幕”后面的第一个竖线|的之后的内容就是会在模板中自动替代{{{1|}}}的内容。所以写入{{黑幕|青叶}}时,模板所转写出来的内容会变成:

<span title="你知道得太多了|v0" class="heimu">青叶</span>

反映在引用页上的效果就是被黑幕的“青叶”:青叶

结论:模板的代码中在特定的地方使用变量,让模板的用户在使用模板的时候可以自由更改这部分的内容。

变量用三个大括号包起来,并在括号中按顺序写上数字和竖线|表示这是第几个变量。{{{1|}}}即变量1,在{{模板名称|内容1|内容2|内容3}}会被“模板名称”后的第一个竖线后方的“内容1”自动替代;如果有变量{{{1|}}}则会被第二个竖线后方写入的“内容2”自动代替。

变量的排序

有多个变量时一般用数字排序,这样在引用模板时必须将写入的内容一同排序。

假如有一模板名为模板:身份信息,内容为:

我叫{{{1|}}},{{{2|}}}岁,是{{{3|}}}。

那么当嵌入这个模板时,必须按顺序在三个竖线后分别写入名称、年龄和职业。例如:

{{身份信息|阿玮|24|学生}}

才会输出理想的结果:

我叫阿玮,24岁,是学生。

如果填入的内容不能对应各个变量的话,可能会出现各种错误,例如:

{{身份信息|阿玮|学生|24}}

会输出:

我叫阿玮,学生岁,是24。

所以在有多个变量的模板中,可以给变量命名以方便使用。

变量的命名

以下代码摘自模板:隐藏

<table class="mw-collapsible {{#if:{{{show|}}}||mw-collapsed}} wikitable"><tr><th>{{{标题}}}</th></tr><tr><td>{{{内容}}}</td></tr></table>

隐藏模板的使用方法为:

{{隐藏|标题=标题文字|内容=内容文字}}

可以看得出来,隐藏模板没有给变量标注数字写成{{{1|}}},而是在三个大括号中写上了有含义的文字“标题”、“内容”,这就相当于是给变量命名了。在模板中填入信息时,应填在“|标题=”、“|内容=”的后面,这样也能清楚地确定填入的信息会转变成哪一个变量:上面的“标题文字”会替代模板代码中的{{{标题}}},“内容文字”会替代模板代码中的{{{内容}}}。因此使用隐藏模板{{隐藏|标题=标题文字|内容=内容文字}}时的最终效果等同于使用了如下代码:

<table class="mw-collapsible {{#if:{{{show|}}}||mw-collapsed}} wikitable"><tr><th>标题文字</th></tr><tr><td>内容文字</td></tr></table>
  • 与数字排序的变量相比,有命名的变量不需要后跟一个竖线|。例如{{{标题}}}的“标题”后面没有竖线。
  • 给变量命名的情况下,在套用模板的代码中改变变量标题的顺序不会影响结果。下面的两种写法会产生同样的效果:
{{隐藏|标题=标题文字|内容=内容文字}}
{{隐藏|内容=内容文字|标题=标题文字}}

限定嵌入内容

在默认条件下,一个模板嵌入其他页面时,整个模板页面的内容都会被引用。但这并不是绝对的。

模板:外链图片页面除了模板本身,还有一整个版面作为其模板的使用说明和使用范例,但是在使用外链图片模板时,并不会将这些说明文字和范例图片一同引用进来。这是因为这个模板页面使用了限定嵌入内容的标签。这类标签共有如下三种:

<onlyinclude>内容1</onlyinclude>

<includeonly>内容2</includeonly>

<noinclude>内容3</noinclude>

<onlyinclude>用于将未包含的内容剔除出嵌入内容,也就是说作为嵌入页面时,只有“内容1”这一段文本会被引用。模板页面的视觉效果不会改变。

<includeonly>用于在阅读模式下隐藏其包含的内容。用于模板页面时,“内容2”在模板页面上是看不见的,但是当模板嵌入其他页面时,“内容2”仍会随模板一起被引用。因此<includeonly>一般用于隐藏模板页面的嵌入内容/有效代码(因为大部分有效代码各种意义上难看)。

<noinclude>用于将其包含的内容剔除出嵌入内容,即当模板嵌入其他页面时,“内容3”这一段被指定为不会被引用。模板页面的视觉效果不会改变。

以上三种标签可以组合使用,一般用于在模板页面将有效但是没有观赏意义的代码隐藏起来,并在不影响嵌入内容(模板的有效内容)的条件下为模板页面添加使用说明。

建议的使用方法为:

  1. 将嵌入内容放在模板页面开头:<includeonly>嵌入内容</includeonly><noinclude>非嵌入内容
  2. 将嵌入代码放在模板页面结尾:非嵌入内容<includeonly><onlyinclude>嵌入内容</onlyinclude>

模板:帮助/模板