跳转到内容

Help:模板

维基教科书,自由的教学读本

模板是维基系统的特色。通过借助模板,能避免某些重复性的工作,还可以简化代码、便于维护,并能得到更复杂的效果。

模板的使用

[编辑]

简单模板

[编辑]

对于一些较简单的模板,输入 {{模板名}} 等类似格式的代码,即可在网页上的相应位置得到预设的内容。

例如,在用户页上展示这名用户以汉语为母语,可使用巴别模板

{{User zh}}

即得到:

zh-N
此用戶的母語中文

含参模板

[编辑]

模板并非仅能简单挪用预设的内容。通过参数,模板可根据具体需求来呈现出不同的内容。

编号参数

[编辑]

{{模板名|<1号参数>|<2号参数>|<3号参数>}}


如上所示,在竖线|后输入参数的值后,再添加|追加下一号参数,以此类推。

大多数模板都能用这种参数。如某书某章节完成了大概一半多,则可悬挂开发阶段模板来标注:

{{stage|75%}}

效果:
开发阶段:75%

命名参数

[编辑]
{{模板名|参数1=<参数值>|参数2=<参数值>|参数3=<参数值>}}

某些参数有其特定的名称,如上的例子中 {{模板名}} 模板的的三个参数从左到右依次叫“参数1,参数2,参数3”,并在参数名后加等号输入该参数的值。

{{模板名|参数2=<参数值>|参数1=<参数值>|参数3=<参数值>}}

体会它与编号参数的不同。上例与第一个例子是等效的。

事实上前面提过的编号参数也有它们的名称。顾名思义,它们的名称是编号。

{{模板名|<1号参数>|<2号参数>|<3号参数>}}

{{模板名|1=<1号参数>|2=<2号参数>|3=<3号参数>}}

也是等效的。

通過可视化编辑器使用模板

[编辑]

在可视化编辑器中使用模板很簡單,您只需在“插入”欄選擇“模板”,就會出現一個框,在裡面輸入要插入的模板名稱,點擊“添加模板”,之後會提示輸入各模板參數。全部輸入後,點擊“插入”,模板即被插入文中。

如果需要修改模板,僅需點擊模板所顯示的內容,再點擊“编辑”,之前的對話框就會再次出現,可以修改模板參數或刪除模板。

模板的编写

[编辑]

概述

[编辑]

维基百科的一名用户曾在IRC上提过他是通过观察源代码中花括号的对数而学会模板参数的用法的;所以不管怎样,通过学习其他人写的代码并加以实践总是一种有效的自学方法。要练习编写模板,请在模板:沙盒模板:沙盒2模板:沙盒3和阁下的用户页及其子页面中进行。

模板的原理是将模板页中的内容插入到引用模板的页面的相应位置中。如图所示:

模板:模板名

                  

(被引用模板的模板页内容)

→
某页面

                   {{模板名}}

                  

(引用该模板页面的源代码)

→
某页面

                                                      

(引用该模板的页面)

而事实上,在两对花括号{{ }}中加入任何页面的名称后,都能在相应位置中引用其内容。但仍不建议(或不允许)在主名字空间中创建模板性质的内容,原因是:

  • 为了方便分类与管理;

在以下条件下可以使用这种用法:

  • 略。

参数

[编辑]

前面提过,参数可使模板更具灵活性,大多数模板都使用了参数。

在模板页中,参数由三对花括号{{{}}}及其中的参数组成。使用模板时,参数的值会插入在模板中参数被定义到的位置。

模板:模板名

                  {{{参数二}}}                  {{{参数一}}}                  {{{参数三}}}                  

(被引用模板的模板页内容)

→
某页面

                  
{{模板名
|参数一=△
|参数二=□
|参数三=○
}}

(引用该模板页面的源代码)

→
某页面

                                                                                          

(引用该模板的页面)

请注意,第一个示例中参数是按“二、一、三”的顺序排列的。

当然,参数也可被定义到多个位置上:

模板:模板名

                  {{{参数一}}}                  {{{参数一}}}                  {{{参数一}}}                  

(被引用模板的模板页内容)

→
某页面

{{模板名|参数一=⊙}}

(引用该模板页面的源代码)

→
某页面

                                                                        

(引用该模版的页面)


我们在 模板的使用 那一部分说过编号参数是种特殊的命名参数,因此我们还可以这样:

模板:模板名

                  {{{1}}}                  {{{2}}}                  {{{3}}}                  

(被引用模板的模板页内容)

→
某页面

{{模板名|△|□|○}}

(引用该模板页面的源代码)

→
某页面

                                                                        

(引用该模板的页面)


默认值

[编辑]

当未给出某个参数的值时,该参数返回的值是类似于{{{参数名}}}的字符,以提醒用户补加参数,如:

模板:模板名

                  {{{1}}}                  {{{2}}}                  {{{3}}}                  

(被引用模板的模板页内容)

→
某页面

{{模板名|□}}

(引用该模板页面的源代码)

→
某页面

                                    {{{2}}}                  {{{3}}}                  

(引用该模板的页面)

我们可以通过{{{参数名|默认值}}}等类似格式的代码控制参数的默认输出值。类似之前的例子:

模板:模板名

                  {{{1|◇}}}                  {{{2|◇}}}                  {{{3|◇}}}                  

(被引用模板的模板页内容)

→
某页面

{{模板名|□}}

(引用该模板页面的源代码)

→
某页面

                                                                        

(引用该模板的页面)


常见问题

[编辑]

Q:模板参数的值可以是另一个模板吗?
A:当然可以。而且那个模板也会被正常地调用。

Q:如果参数的值中含等号=等维基模板代码使用的符号时,则会发生混乱。此时该怎么办呢?
A:我们可以使用以下模板来代表这些符号,以期得到我们想要的效果。

模板 {{((}} {{))}} {{=}}
符号 {{ }} =
或者直接用nowiki修饰。

Q:模板中可以使用其他模板吗?
A:可以。有许多模板是专门用于模板之中的,比如{{Userbox}}等;另一些模板有其子模板以完整地发挥其功能,如{{chem}}等。

Q:模板中能引用自身吗?
A:也可以。但是只会循环引用一次,而不会无限循环引用下去。

Q:模板参数的名称可以是其他模板或参数吗?
A:可以,如果花括号的对数正确的话。

Q:我有其他问题怎么办?
A:阁下可在模板:沙盒或其它上面提过的可进行测试的页面试验您的想法,或在维基教科书:互助客栈反馈您的问题。我们相信大多数维基人是热心的,但要注意您的问题不一定有答复。

高级

[编辑]

模板页

[编辑]

若模板页中的内容只有模板本身的话,维基系统生成的模板页的内容相当于调用一次没有使用过参数的模板。这方面的一个例子是{{食谱}}。

模板:食谱

{|align="right" style="border: 1px solid lightgray" width="200px" |- |align="center"|<big>'''{{{菜名}}}'''</big> |- |align="center" style="align:center;background:green;color:white"|'''菜系''' |- |align="center"|{{{菜系}}} |- |align="center" style="background: red;color: white"|'''主料''' |- |align="center"|{{{主料}}} |- |align="center" style="background:orange;color:white"|'''辅料''' |- |align="center"|{{{辅料}}} |- |align="center" style="background:gray;color:white"|'''厨具''' |- |align="center"|{{{厨具}}} |- |align="center" style="background:blue;color:white"|'''特色''' |- |align="center"|{{{特色}}} |} </div>

({{食谱}}的源代码)

模板:食谱

{{{菜名}}}
菜系
{{{菜系}}}
主料
{{{主料}}}
辅料
{{{辅料}}}
厨具
{{{厨具}}}
特色
{{{特色}}}

({{食谱}}的模板页)

对于不是太复杂的模板,这种模板页即能提供足够多的关于模板如何使用的信息。你能通过上面的学习获得{{食谱}}的用法吗?

相关扩展标签

[编辑]

相关模板

[编辑]

追踪与管理模板

[编辑]