|
|
第1行: |
第1行: |
− | {{NoteTA
| |
− | |G1 = IT
| |
− | |G2 = MediaWiki
| |
− | }}
| |
− | {{Wikipedia how to|H:T}}
| |
− | {{Wiki markup}}
| |
− |
| |
| == 什么是模板,为什么要用模板 == | | == 什么是模板,为什么要用模板 == |
| 您在条目的上方看到各种各样的条条框框,比如“本条目需要清理”、“本条目应避免有陈列杂项、琐碎资料的部分。”等。有时候条目右侧也能看到一个灰色的框,里面写着有关这个条目的基本信息,比如一位艺人的“生日”、“出生地”、“国籍”等。条目最下方有时候也会见到一个大方框,里面陈列着和这个条目相关的内容(称为“[[WP:导航模板|导航模板]]”,[[模板:Wikipedia essays|比如这个]])。这些都是“模板”。模板的形式还有很多很多,有的是直接镶嵌在条目正文里面的,有的虽然看不到但是却依然影响到条目显示的内容(比如[[T:NoteTA|字词转换模板]])。但是如果你翻翻这些条目的源代码,就会发现这些模板都长成类似“{{Code|<nowiki>{{模板名字|模板参数}}</nowiki>}}”这样子,用一对双大括号将模板的内容扩起来。 | | 您在条目的上方看到各种各样的条条框框,比如“本条目需要清理”、“本条目应避免有陈列杂项、琐碎资料的部分。”等。有时候条目右侧也能看到一个灰色的框,里面写着有关这个条目的基本信息,比如一位艺人的“生日”、“出生地”、“国籍”等。条目最下方有时候也会见到一个大方框,里面陈列着和这个条目相关的内容(称为“[[WP:导航模板|导航模板]]”,[[模板:Wikipedia essays|比如这个]])。这些都是“模板”。模板的形式还有很多很多,有的是直接镶嵌在条目正文里面的,有的虽然看不到但是却依然影响到条目显示的内容(比如[[T:NoteTA|字词转换模板]])。但是如果你翻翻这些条目的源代码,就会发现这些模板都长成类似“{{Code|<nowiki>{{模板名字|模板参数}}</nowiki>}}”这样子,用一对双大括号将模板的内容扩起来。 |
第141行: |
第134行: |
| | | |
| '''注意:'''参数默认值和参数赋空值是不同的。 | | '''注意:'''参数默认值和参数赋空值是不同的。 |
− |
| |
− | ====例1:含有命名参数的模板====
| |
− |
| |
− | 例如:[[Template:姓名]]的模板,内容为:
| |
− | 我是{{參數|姓}}{{參數|名}}。
| |
− | 如果用<code>{{tl|姓名}}</code>调用这个模板,將会看到:
| |
− | :{{姓名}}
| |
− | 如果用<code>{{tl|姓名|<nowiki>姓=张|名=飞</nowiki>}}</code>,我们则看到:
| |
− | :{{姓名|姓=张|名=飞}}
| |
− |
| |
− | ====例2:含有编号参数的模板====
| |
− |
| |
− | 再来一个例子,说明一个编号参数的定义和调用:我们还是先要定义一个带参数的模板,例如模板[[Template:数数]]的内容是
| |
− | 一二三{{參數|1|四五六}}七八九
| |
− | 赋值调用<code>{{tl|数数|六五四}}</code>的结果是:
| |
− | :{{数数|六五四}}
| |
− | 赋空值调用<code>{{tl|数数|<nowiki></nowiki>}}</code>的结果是:
| |
− | :{{数数|}}
| |
− | 未赋值调用,就会调用默认值,<code>{{tl|数数}}</code>的结果是:
| |
− | :{{数数}}
| |
− |
| |
− | ===编号参数还是命名参数?===
| |
− |
| |
− | ====编号参数的优点====
| |
− | *调用模板时参数名和等号可以省略,从而节约打字时间和存储空间。参见[[#设定参数]]。
| |
− | *阿拉伯数字是世界性的,在翻译的时候省事,也可以被不懂中文的人理解。
| |
− |
| |
− | ====命名参数的优点====
| |
− | *参数的顺序可以变化,模板的参数可以任意添加和修改,而不会对调用模板的页面产生致命影响。
| |
− | *参数的意义容易理解。
| |
− | *当模板具有大量缺省参数时,命名参数使语法更为清晰
| |
− | *一些特殊的技巧利用这样一个特性:在一次模板调用中允许对同一个参数多次赋值,这导致最后一次赋值的内容生效;这种做法隐式保证了在本次模板调用中该参数至少被赋值一次
| |
− |
| |
− | ===未赋值且没有默认值的参数===
| |
− | 例如:模板[[Template:再数数]]的内容是
| |
− | <nowiki>一-{{{1}}}-三-{{{2}}}-五</nowiki>
| |
− | <code>{{tl|再数数|<nowiki>|</nowiki>}}</code>的结果是
| |
− | :{{再数数||}}
| |
− | <code>{{tl|再数数|<nowiki>二|</nowiki>}}</code>的结果是
| |
− | :{{再数数|二|}}
| |
− | <code>{{tl|再数数|<nowiki>|二</nowiki>}}</code>的结果是
| |
− | :{{再数数||二}}
| |
− | <code>{{tl|再数数|<nowiki>二|{{{1}}}</nowiki>}}</code>的结果是
| |
− | :{{再数数|二|{{{1}}}}}
| |
− | <code>{{tl|再数数|<nowiki>{{{1}}}|四</nowiki>}}</code>的结果是
| |
− | :{{再数数|{{{1}}}|四}}
| |
− | <code>{{tl|再数数|<nowiki>{{{1}}}|{{{2}}}</nowiki>}}</code>的结果是
| |
− | :{{再数数|{{{1}}}|{{{2}}}}}
| |
− |
| |
− | ===例4:参数赋值中包含参数===
| |
− |
| |
− | 如果一个参数未赋值,则在三个大括号中的参数名在模板调用时不起参数的作用。如果要它起作用,一定要赋值。
| |
− |
| |
− | *模板[[Template:数数A]]的内容是
| |
− | <nowiki>{{再数数|二}}</nowiki>
| |
− | :<code>{{tl|数数A|四}}</code>的结果是:
| |
− | ::{{数数A|四}}
| |
− | *模板[[Template:数数B]]的内容是
| |
− | <nowiki>{{再数数|二|{{{1}}}}}</nowiki>
| |
− | :调用<code>{{tl|数数B|四}}</code>的结果是:
| |
− | ::{{数数B|四}}
| |
− | *模板[[Template:数数C]]的内容是
| |
− | <nowiki>{{再数数|二|2={{{1}}}}}</nowiki>
| |
− | :调用<code>{{tl|数数C|四}}</code>的结果是:
| |
− | ::{{数数C|四}}
| |
− |
| |
− |
| |
− | ===例5:参数迭代===
| |
− | 當模板需要隔層叫用時(例如有一個父模板,然後建立許多子模板,子模板使用父模板的功能)要讓底層(A模板叫用B模板,B模板為A模板的底層)層使用上層參數時,則需要参数迭代。
| |
− |
| |
− | 最简单的参数迭代办法就是在模板中用同样的参数名。
| |
− |
| |
− | 例如:[[Template:姓名国籍]]
| |
− | <nowiki>{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{国籍}}}人。</nowiki>
| |
− | :我現在叫用「<code><nowiki>{{姓名国籍|姓=王|名=小奇|国籍=火星}}</nowiki></code>」
| |
− | ::結果為「{{姓名国籍|姓=王|名=小奇|国籍=火星}}」
| |
− |
| |
− | 您可能會認為,[[Template:姓名]]模板也有包含<code><nowiki>{{{姓}}}</nowiki></code>和<code><nowiki>{{{名}}}</nowiki></code>參數。
| |
− |
| |
− | 因此我們可以試著將[[Template:姓名国籍]]改成
| |
− | <nowiki>{{姓名}}{{{国籍}}}人。</nowiki>
| |
− | :此時叫用「<code><nowiki>{{姓名国籍|姓=王|名=小奇|国籍=火星}}</nowiki></code>」
| |
− | ::結果為「{{虛擬模板|delnowiki=yes|code=<nowiki>{{姓名}}{{{国籍}}}人。</nowiki>|姓=王|名=小奇|国籍=火星}}」
| |
− | 這是因為在[[Template:姓名]]模板中,無法讀取到[[Template:姓名国籍]]中傳遞的「<code><nowiki>|姓=王|名=小奇|国籍=火星</nowiki></code>」參數
| |
− |
| |
− | 有餘每一層模板呼叫參數都互不相關,因此要讓參數能一層一層傳遞下去,則每層都需要迭代一次參數。
| |
− |
| |
− | ====进一步====
| |
− |
| |
− | 像<code><nowiki>{{再数数||四}}</nowiki></code>这样的调用将空值赋给参数1,而不是没有赋值,所以结果是
| |
− | :{{再数数||四}}
| |
− | 如果我们希望参数1不赋值,则应该将参数2用命名参数形式赋值,如
| |
− | <code>{{tl|再数数|<nowiki>2=四</nowiki>}}</code>
| |
− | 结果则是
| |
− | :{{再数数|2=四}}
| |
− |
| |
− | 如果这样的参数值被赋给如<code><nowiki><font size></nowiki></code>这样的标记,会使编码错误,但这些错误会被系统(MediaWiki)忽略,而不产生奇怪的结果。请参看英文的例子:[http://meta.wikimedia.org/wiki/Template_talk:Fontsize 字体大小]。
| |
− |
| |
− | 参数“02”和参数“2”是不同的,例如模板[[Template:例5]]的内容是
| |
− | <nowiki>{{{1}}}{{{2}}}{{{02}}}</nowiki>
| |
− | 调用<code>{{tl|例5|<nowiki>3|4|5|6</nowiki>}}</code>的结果是
| |
− | :{{例5|3|4|5|6}}
| |
− |
| |
− | '''注意:'''维基系统名字空间的参数名是不同的,它们是<code><nowiki>$1, $2, ...</nowiki></code>,参见[[Help:名字空间]]、[[Special:所有消息]]和[[MediaWiki:Blockedtext]]。
| |
− |
| |
− | ===参数及模板命名===
| |
− | 参数命名可以调用其他参数,如[[Template:XYZ]]内容为<nowiki>{{{{{{XYZ}}}}}}</nowiki>,则调用<nowiki>{{XYZ|XYZ=SDF|SDF=789}}</nowiki>会把参数XYZ的值SDF作为参数名,显示参数SDF的值,即{{XYZ|XYZ=SDF|SDF=789}}。MediaWiki会把<nowiki>{{{{{{XYZ}}}}}}</nowiki>解析为<nowiki>{{{ {{{XYZ}}} }}}</nowiki>而不是<nowiki>{{ {{ {{XYZ}} }} }}</nowiki>(结果是{{ {{ {{XYZ}} }} }})。这里空格是敏感的。另外,调用其他参数仅可调用1层。如[[Template:XYZ2]]内容为<nowiki>{{{{{{{{{XYZ}}}}}}}}}</nowiki>,则<nowiki>{{XYZ2|XYZ=SDF|SDF=ABC|ABC=789}}</nowiki>结果为{{XYZ2|XYZ=SDF|SDF=ABC|ABC=789}}。
| |
− |
| |
− | 又如,[[Template:1a2b]]内容为{{-{}-{第一个|第一个未定}}-{}-}<nowiki></nowiki>-<nowiki></nowiki>{{-{}-{第二个|第二个未定}}-{}-},[[Template:nanb]]内容为<nowiki>{{</nowiki>1a2b|<nowiki>{{{</nowiki>1|第一个}}} = <nowiki>{{{</nowiki>1|第一个}}}已定}},则{{tl|nanb}}结果为{{nanb}},{{tl|nanb|第一个}}结果为{{nanb|第一个}},{{tl|nanb|第二个}}结果为{{nanb|第二个}},{{tl|nanb|第三个}}<结果为{{nanb|第三个}}。
| |
− |
| |
− | 又如,[[Template:testif]]内容为<nowiki>{{{test{{{test|}}}|{{{then}}}}}}</nowiki>,则<nowiki>{{testif|test=11|test11=233}}</nowiki>结果为{{testif|test=11|test11=233}},<nowiki>{{testif|test=11|then=255}}</nowiki>结果为{{testif|test=11|then=255}},<nowiki>{{testif|then=333}}</nowiki>结果为{{testif|then=333}},<nowiki>{{testif|test=|then=335}}</nowiki>结果为{{testif|test=|then=335}}。
| |
− |
| |
− | 另外,如果模板名为参数,如[[Template:Sample2]]内容为<nowiki>{{{{{tc}}}}}</nowiki>,则调用<nowiki>{{Sample2|tc=!}}</nowiki>相当于<nowiki>{{!}}</nowiki>,显示为{{Sample2|tc=!}}。这里,<nowiki>{{{{{tc}}}}}</nowiki>解析为<nowiki>{{ {{{tc}}} }}</nowiki>而不是<nowiki>{{{ {{tc}} }}}</nowiki>。如果[[Template:Sample3]]内容为<nowiki>{{{ {{tc}} }}}</nowiki>,{{tl|tc}}内容为in,则<nowiki>{{Sample3|in=11}}</nowiki>显示为{{Sample3|in=11}}。
| |
− |
| |
− | 模板调用时,模板名可以是解析器函数。如<nowiki>{{{{NAMESPACE}}1}}</nowiki>相当于{{tl|help1}},结果为{{ {{NAMESPACE}}1}}。
| |
− |
| |
− | 模板名可以是另一个模板。如[[Template:tctc]]内容为<nowiki>{{tc}}</nowiki>,<nowiki>{{{{tctc}}}}</nowiki>相当于<nowiki>{{tc}}</nowiki>,结果为{{{{tctc}}}}。
| |
− |
| |
− | 可以使用参数选择模板名。如[[Template:Hist3]]内容为<nowiki>{{{{{2}}}x|{{{1}}}}}-{{{{{3}}}x|{{{1}}}}}-{{{{{4}}}x|{{{1}}}}}</nowiki>,[[Template:1x]]内容为<nowiki>{{{1}}}</nowiki>,[[Template:2x]]内容为<nowiki>{{{1}}}{{{1}}}</nowiki>,[[Template:3x]]内容为<nowiki>{{{1}}}{{{1}}}</nowiki>,则<nowiki>{{Hist3|4|3|2|1}}</nowiki>结果为{{Hist3|4|3|2|1}}。又如[[Template:a2b2c2d]]内容为<nowiki>{{{{{1}}}|a{{{2}}}b{{{2}}}c{{{2}}}d}}</nowiki>,[[Template:t2]]内容为<nowiki>start_{{{1}}}_middle_{{{2}}}_end</nowiki>,<nowiki>{{a2b2c2d|t2|V}}</nowiki>相当于<nowiki>{{t2|aVbVcVd}}</nowiki>,即{{a2b2c2d|t2|V}}。
| |
− |
| |
− | 模板可以多次嵌套。如<nowiki>{{3x|{{2x|{{3x|{{1x|{{2x|{{tc}}}}}}}}}}}}</nowiki>结果是{{3x|{{2x|{{3x|{{1x|{{2x|{{tc}}}}}}}}}}}}。
| |
− |
| |
− | ===模板分类===
| |
− |
| |
− | 模板也要进行分类,目的是为了更好的整理模板,以便更好的使用和管理模板。模板的分类同条目的分类相似,可以参阅有关条目分类的帮助文件,如[[Help:分类]]等,不同之处在于对于模板的分类需要使用<code><nowiki><noinclude></nowiki></code>标识,如果不加<code><nowiki><noinclude></nowiki></code>标识,则不仅模板被分类,所有使用该模板的条目也被分入同一类。
| |
− |
| |
− | 所有模板的根目录(即分类)是[[:Category:维基百科模板]],所有模板分类名最后一定要含有“模板”二字,以区别于普通条目的分类。
| |
− |
| |
− | ====例7:模板分类方法====
| |
− | 将例1中的模板[[Template:姓名/分类|Template:姓名]]分为[[:Category:人物模板]],需要加入:
| |
− | <nowiki>我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</noinclude></nowiki>
| |
− |
| |
− | ===标识===
| |
− |
| |
− | '''注意:'''以下内容只限于模板中使用的情况,在其他名字空间使用的情况请参考相关帮助文挡。
| |
− |
| |
− | ====<nowiki><noinclude>、<includeonly>和<onlyinclude></nowiki>====
| |
− | '''注意:'''在模板中使用<code><nowiki><noinclude></nowiki></code>标识时要小心!<code><nowiki><noinclude></nowiki></code>应接在模板原始码(例如结尾双大括号}})或文字最后一列的后方,不要新起一列;也不要在<code><nowiki></noinclude></nowiki></code>之后'''加空行'''(虽然系统会自动忽略<code><nowiki></noinclude></nowiki></code>之后的单个空行)否则空行将被当作模板的一部分反映在调用模板的条目中。
| |
− | <code><nowiki><noinclude></nowiki></code>标识的作用是将<code><nowiki><noinclude></nowiki></code>和<code><nowiki></noinclude></nowiki></code>之间的文本加入所在的模板页中,而不加入调用模板的条目或模板中,针对模板的说明、分类都可以置于该标识之间。
| |
− |
| |
− | <code><nowiki><includeonly></nowiki></code>标识的作用跟<code><nowiki><noinclude></nowiki></code>标识的作用正好相反,是将<code><nowiki><includeonly></nowiki></code>和<code><nowiki></includeonly></nowiki></code>之间的文本'''不'''加入所在的模板页中,而加入调用模板的页面中。
| |
− |
| |
− | <code><nowiki><onlyinclude></nowiki></code>标识不常用,其作用是只有被<code><nowiki><onlyinclude></nowiki></code>和<code><nowiki></onlyinclude></nowiki></code>包含的文本才出现在调用模板的页面中,模板的其他内容不出现在调用模板的页面中。
| |
− | {| class="wikitable" style="text-align: center;"
| |
− | ! 原始碼
| |
− | ! 原始頁面看到的
| |
− | ! 其他頁面看到的
| |
− | |-
| |
− | |<code><nowiki><noinclude> text1 </noinclude> text2</nowiki></code>
| |
− | |<code>text1 text2</code>
| |
− | |<code>text2</code>
| |
− | |-
| |
− | |<code><nowiki><onlyinclude> text1 </onlyinclude> text2</nowiki></code>
| |
− | |<code>text1 text2</code>
| |
− | |<code>text1</code>
| |
− | |-
| |
− | |<code><nowiki><includeonly> text1 </includeonly> text2</nowiki></code>
| |
− | |<code>text2</code>
| |
− | |<code>text1 text2</code>
| |
− | |}
| |
− |
| |
− | ===={{Anchor|SPioIO}}subst与preload过程中的noinclude、includeonly和IncludeOnly====
| |
− | : ''以下部分行为是错误的,是'''旧版本软件的缺陷''',并将'''随MediaWiki 1.17的部署被修正'''([[bugzilla:5210]])。''
| |
− | ; 解释与传递
| |
− | {| class=wikitable
| |
− | |-
| |
− | | 模板源码
| |
− | | '''includeonly'''
| |
− | | '''noinclude'''
| |
− | | '''includeonly'''
| |
− | | '''noinclude'''
| |
− | | '''include<includeonly></includeonly>only'''
| |
− | |-
| |
− | | '''模板显示'''
| |
− | | interpret
| |
− | | interpret
| |
− | | interpret
| |
− | | rowspan="4" | 同noinclude
| |
− | | 解释内层,传递外层
| |
− | |-
| |
− | | '''嵌入过程'''
| |
− | | interpret
| |
− | | interpret
| |
− | | interpret
| |
− | | 解释内层,传递外层
| |
− | |-
| |
− | | '''subst过程'''
| |
− | | interpret
| |
− | | 传递
| |
− | | interpret
| |
− | | 成为includeonly
| |
− | |-
| |
− | | '''preload过程'''
| |
− | | interpret
| |
− | | 传递
| |
− | | 传递
| |
− | | 成为includeonly
| |
− | |}
| |
− | * [http://zh.wikipedia.org/w/index.php?title=User:%E8%99%9E%E6%B5%B7/doc/super&action=edit&preload=User:%E8%99%9E%E6%B5%B7/doc/preload 测试页]
| |
− | ; 嵌套
| |
− | {| class=wikitable
| |
− | |-
| |
− | | 模板源码
| |
− | | '''includeonly pair中的includeonly pair'''
| |
− | | '''noinclude pair中的includeonly pair'''
| |
− | |-
| |
− | | '''模板显示'''
| |
− | | 错乱[http://zh.wikipedia.org/w/index.php?title=Template:Documentation/preload&oldid=15532392]
| |
− | |
| |
− | |-
| |
− | | '''嵌入过程'''
| |
− | | ?
| |
− | | /<!--impossible-->
| |
− | |-
| |
− | | '''subst过程'''
| |
− | |
| |
− | | /<!--impossible-->
| |
− | |-
| |
− | | '''preload过程'''
| |
− | | 正常
| |
− | | /<!--impossible-->
| |
− | |}
| |
− |
| |
− | ==特殊的模板引用==
| |
− | * 子页面引用
| |
− | ** 格式:<nowiki>{{/子页面}}</nowiki>
| |
− |
| |
− | {{hideh|示例}}
| |
− | {{/子页面}}
| |
− | {{hidef}}
| |
− |
| |
− | ** 引用过程中“子页面”的意义是引用模板的页面的子页面,而非被引用的模板的子页面。
| |
− | * 其它名字空间的模板引用
| |
− | ** 格式:<nowiki>{{名字空间:子页面}}</nowiki>如<nowiki>{{Template talk:!}}</nowiki>
| |
− |
| |
− | == 一般用法 ==
| |
− |
| |
− | 模板的一般用法有:
| |
− | *[[Wikipedia:模板消息|模板消息]],例如:[[Template:stub]]传递“小作品”的消息。
| |
− | *[[Wikipedia:导航模板|导航模板]],用于给读者提供类似的条目,例如:[[Template:洲]]。
| |
− | *信息框模板,用于同一类条目中提供统一格式的信息,例如:[[Template:Infobox 网球]]在条目右边绘制信息框,提供网球运动员的相关信息。
| |
− | *提供跨语言文本。
| |
− | *提供合成图片,例如:围棋棋谱[http://en.wikipedia.org/wiki/Template:Game_of_Go_Position Template:Game of Go Position]和国际象棋棋谱和[http://en.wikipedia.org/wiki/Template:Chess_position Template:Chess position]。
| |
− | *以上几种的组合。
| |
− |
| |
− | ==提及模板==
| |
− | 在某些情况下,我们可能需要'''提及某一个模板(而非调用它)'''。提及模板可用[[帮助:HTML#解析器标签和扩展标签|nowiki标签]],但是已经有热心的用户建立了专门的模板,用于提及模板。
| |
− | {| class="wikitable"
| |
− | ! style="width: 50%" | 您所输入的
| |
− | ! style="width: 50%" | 您所看到的
| |
− | |-
| |
− | |请您不要再随意删除<nowiki>{{afd}}</nowiki>模板。
| |
− | |请您不要再随意删除{{delcat|{{afd}}}}模板。
| |
− | |-
| |
− | |请您不要再随意删除<nowiki><nowiki>{{afd}}</nowiki></nowiki>模板。
| |
− | |请您不要再随意删除<nowiki>{{afd}}</nowiki>模板。
| |
− | |-
| |
− | |请您不要再随意删除<nowiki>{{</nowiki>'''tl'''<nowiki>|afd}}</nowiki>模板。
| |
− | |请您不要再随意删除{{tl|afd}}模板。
| |
− | |-
| |
− | |欢迎新用户可以使用<nowiki>{{</nowiki>'''tls'''<nowiki>|welcome}}</nowiki>语法,但不要使用<nowiki>{{tl|welcome}}</nowiki>语法。
| |
− | |欢迎新用户可以使用{{tls|welcome}}语法,但不要使用{{tl|welcome}}语法。
| |
− | |-
| |
− | |<nowiki>[[:Template:nosign]]</nowiki>的用法如下:<br /><nowiki>{{</nowiki>'''tlx'''<nowiki>|nosign|用户留言时间|用户名}}</nowiki>
| |
− | |[[Template:nosign]]的用法如下:<br />{{tlx|nosign|用户留言时间|用户名}}
| |
− | |-
| |
− | |<nowiki>{{</nowiki>'''tnull'''<nowiki>|nosign|用户留言时间|用户名}}</nowiki>用于补签名。
| |
− | |{{tnull|nosign|用户留言时间|用户名}}用于补签名。
| |
− | |}
| |
− |
| |
− | == 类似语法 ==
| |
− | <nowiki>{{CURRENTYEAR}}、{{DISPLAYTITLE:}}</nowiki>等等为魔术字。魔术字可以返回关于当前页面、wiki站点或日期的信息,也可以设置数据。参见[[Help:魔术字#变量]]。
| |
− |
| |
− | 调用[[WP:解析器函数|解析器函数]]的语法是<nowiki>{{#xxx:}}</nowiki>。如<nowiki>{{#ifeq:{{{lang}}}|zh|我使用中文|I<ins> don't</ins> use Chinese}}</nowiki>给出{{#ifeq:{{{lang}}}|zh|我使用中文|I<ins> don't</ins> use Chinese}}。
| |
− |
| |
− | 读取模板参数是三个大括号,形如<nowiki>{{{1|}}}、{{{date}}}</nowiki>。详见[[#读取参数]]。
| |
− |
| |
− | ==常见问题==
| |
− |
| |
− | '''我可以在多个语言维基百科中使用同一个模板吗?'''
| |
− | :不能。如果你要这么做,只能在各个维基百科中分别创建该模板。
| |
− | '''开头是“Template:”,“template:”,還是“模板:”?'''
| |
− | :都行。英文不区分大小写,中文会繁简自动转换。一定要用[[半角|英文半角]]冒號。
| |
− | '''我可以使用参数吗?'''
| |
− | :可以。请参阅[[#top|此頁上方]]。
| |
− | '''一个页面中最多可以使用多少模板?'''
| |
− | :2MB。参见[[Wikipedia:模板限制]]。
| |
− | '''我已经修改了模板,但为什么页面不更新呢?'''
| |
− | :有很多原因。第一、你可能没有刷新页面。在你的浏览器里使用刷新(Refresh)功能。第二、系统可能存在缓存漏洞(bug)。一种解决方法是'''编辑'''使用模板的页面,然后什么也不修改就'''保存''',这样你就强制该页面进行刷新了。这一操作不会在历史中留下记录。
| |
− | '''我可以修改模板的名字吗?'''
| |
− | :可以。移动模板跟移动普通页面一样。模板也可以重定向。
| |
− | '''我可以在一个模板中使用另一个模板吗?'''
| |
− | :可以。当然可以在一个模板的内容中调用另一个模板。但如果使用诸如<nowiki>{{一个模板{{另一个模板}}}}</nowiki>这样的语句,假设<nowiki>{{另一个模板}}</nowiki>的内容为“123”,则实际上是<nowiki>{{一个模板123}}</nowiki>。
| |
− |
| |
− | ==参考资料==
| |
− | <div class='references-small'>
| |
− | <references/>
| |
− | </div>
| |
− |
| |
− | ==参见==
| |
− | ===中文===
| |
− | *[[Wikipedia:模板指导]]
| |
− | *[[Wikipedia:Template名字空间]]
| |
− | *[[:Category:維基百科模板]]
| |
− |
| |
− | ===英文===
| |
− | *[[meta:Help:Template|元维基上的英文模板帮助]]
| |
− | *[[meta:Help:Advanced_templates|元维基上的英文模板高级帮助]]
| |
− |
| |
− | {{-}}
| |
− | {{H:f Help}}
| |
− |
| |
− | [[Category:帮助文档|MB]]
| |
− | [[Category:维基百科帮助|维基百科帮助]]
| |
您在条目的上方看到各种各样的条条框框,比如“本条目需要清理”、“本条目应避免有陈列杂项、琐碎资料的部分。”等。有时候条目右侧也能看到一个灰色的框,里面写着有关这个条目的基本信息,比如一位艺人的“生日”、“出生地”、“国籍”等。条目最下方有时候也会见到一个大方框,里面陈列着和这个条目相关的内容(称为“导航模板”,比如这个)。这些都是“模板”。模板的形式还有很多很多,有的是直接镶嵌在条目正文里面的,有的虽然看不到但是却依然影响到条目显示的内容(比如字词转换模板)。但是如果你翻翻这些条目的源代码,就会发现这些模板都长成类似“模板:Code”这样子,用一对双大括号将模板的内容扩起来。
为什么有这些麻烦的东西?有时候,一段内容会在多个条目中反复出现,这时候如果一遍一遍复制那些内容,一遍遍粘贴到各个条目里面,简直会累死人,而且大段大段的看起来也很烦人;而且,万一日后内容有变动,又要进到各个条目里面把这些内容一个个全改一遍,这会产生大量的重复劳动。模板就是为了这样的目的:只需要给重复的部分放到一个模板里、起个名字,以后需要用到这些内容的时候直接调用模板就行了。需要更改内容的时候,也只需要在模板里改动,那些调用了模板的条目也会随着模板自动变更,十分方便。
需要注意的一点是,维基百科的系统——MediaWiki本身并不会自动为条目挂上模板。因此,当看到条目里面显示了“本条目需要补充更多来源”等文字时,是其他维基人人工将模板挂上去。在模板所述问题修正之后,可以自行将模板从源代码中删除,这段提示文字將自动消失。
编号参数的参数名(1、2、3、4等)和等号可以省略。上例的效果和{{fact|维基百科的编者大部分是男性|time=2024-12-30}}是一样的。注意,以省略形式赋值的第一个编号参数的参数名是1,而不是很多编程语言习惯的0。
放置修饰符“subst:”(substitute,替代)位于模板标签的“{{”之后,模板名之前,即可替换引用。它能在调用方页面保存时,将所调模板展开,而不是每次显示页面的时候读取有关模板。这样可以按模板当前的形式编辑条目,并使条目免受模板变化的影响,并减轻服务器负担。所以对模板的替换引用不会显示在页面历史和模板的链入页面中。
在2010年前,如果把其他模板重定向至某模板,该模板又引用重定向,且多次自我调用均为不同重定向,则该模板可以实现多次自我调用。MediaWiki后来取消此功能。如模板:Tl的结果为模板:RR。