跳转到内容

维基百科:模板命名空间

本页使用了标题或全文手工转换
维基百科,自由的百科全书
命名空间
基本命名空间 讨论命名空间
0 主/條目 帮助 讨论 1
2 用戶 帮助 用户讨论 3
4 维基百科 维基百科讨论 5
6 文件 帮助 文件讨论 7
8 MediaWiki MediaWiki讨论 9
10 模板 帮助 模板讨论 11
12 帮助 帮助讨论 13
14 分类 帮助 分类讨论 15
100 主题 主题讨论 101
102 維基專題 維基專題討論 103
118 草稿 草稿讨论 119
126 格式手册快捷方式 PNS 格式手册快捷方式讨论 127
710 字幕 字幕討論 711
828 模块 模块讨论 829
1728 活动 活动讨论 1729
2600 话题 帮助
虚拟命名空间
-1 特殊
-2 媒体

维基百科上的模板命名空间用于存储模板,这些模板包含可在多个页面中通过嵌入包含的方式复用的wikitext。尽管大多数模板存储在模板命名空间,但也可从其他命名空间进行嵌入包含或替换引用[1],因此部分模板页面可能置于其他命名空间(例如用户命名空间)中。

模板有助于保持格式统一,并辅助条目间的导航。它们通常包含通过参数控制的可选或可变元素,以实现特定的用途。模板也被广泛应用于各类维基百科维护工作。每个模板都有对应的讨论页(模板讨论:/Template talk:),编者可以在其中讨论相关模板的设计与实现(关于如何参与讨论页讨论,请参见Wikipedia:讨论页)。

将模板嵌入其他页面时,需要在目标页面内容中插入模板标签。模板标签由双层大括号包围的模板页面名称构成,例如{{Disambiguation}}。若模板页面名称未标注命名空间前缀(即命名空间名称加冒号),则假定其位于模板命名空间。

指向模板页面的内部链接可以通过使用模板:/Template:前缀来创建,例如[[Template:Disambiguation]]。关于链接到模板的其他方法,请参见§ 链接到模板

指引

[编辑]
  • 模板通常不应被用于存储条目正文内容,因为这会增加编辑内容的难度。模板也不应用于向读者“折叠”或“隐藏”内容
  • 条目中使用的模板旨在提供辅助读者的信息,例如导航提示、格式规范或内容质量提示。仅对编者提供有用信息的模板不应出现在条目页面上——此类内容应置于条目讨论页或其他非条目命名空间。
  • 模板的功能应通过其名称清晰体现,但可为常用模板创建重定向以方便日常使用。
  • 高风险模板应根据情况采取半保护、模板保护或全保护措施(参见保护方针)。这也适用于高频使用的模板重定向页面。
  • 模板应就其用法和适用范围进行清晰的文档化说明。
  • 分类列表页面“参见”部分能实现相同功能时,不应使用模板来创建指向其他条目的链接列表。
  • 对于短期使用、将快速移除的简短临时消息(例如用户讨论页上的通知),或包含基本无需改动文本的模板,应通过替换引用(subst:)方式调用。而设计为长期使用且可能需要更新的模板,应采用嵌入引用方式,以便未来统一修改。
  • 违反本页指引、功能定义模糊、冗余、孤立或仅在一个页面上使用,以及违背任何维基百科方针的模板,可提报至Wikipedia:模板存废讨论

链接到模板

[编辑]

指向模板页面的内部链接可以通过使用Template:前缀或其别名模板:T:来创建,例如[[Template:Disambiguation]][[模板:Disambiguation]][[T:Disambiguation]]。这些链接指向模板主页面,但也可以直接链接到子页面,例如模板的文档[[Template:Disambiguation/doc]]

若需以适合模板的显示格式创建链接,可使用Template:Tl(“template link”的缩写)。例如,要引用Cleanup模板,输入{{tl|Cleanup}}会显示为{{Cleanup}}。这并不会调用模板,但其显示清楚地表明链接对象是一个模板。也可以使用Template:Tlp添加参数;例如,{{tlp|Convert|1|m}}显示为{{Convert|1|m}}。更多选项参见Template:Tl的说明文档,例如{{tlb}}(粗体)、{{tlx}}(代码)、{{tlxi|param1|param2}}(斜体参数)等。

建议做法

[编辑]

模板名称

[编辑]

若以英文作为模板名称,模板名称应由一个或多个单词构成,例如{{Train topics}}。首字母不区分大小写,因此因此{{cleanup}}{{Cleanup}}指向同一模板。其余字符均区分大小写,因此{{cfd}}{{cfD}}不是同一个模板。遵循标准英语拼写、空格和大小写规则的模板名称最便于记忆(可参考条目的命名常规)。避免创建仅在大小写、空格或标点符号上不同的模板。

对于名称较长的模板,可以创建模板重定向(常称为快捷方式)以便于输入。例如,可以使用快捷方式{{tls}},即可替代{{Template link with subst}}

模板测试沙盒

[编辑]

若需进行模板测试(且希望测试内容在完成前不被删除),可在模板沙盒页面进行操作。你也可以使用模板X1X2X3进行测试。要调用测试模板,请使用{{X1}}表示模板X1,{{X2}}表示模板X2,依此类推。

现有模板通常各自拥有其沙盒和测试用例页面(特别是那些使用{{Documentation}}的模板)。在应用到主模板之前,应在此处进行充分测试,以避免对大量页面造成意外损害。

代码的可读性

[编辑]

对于含有大量参数的模板,建议将每个参数单独成行并对齐等号。这有助于后续编辑者更轻松地阅读wikitext。例如创建可能包含数十个参数的信息框时,代码可呈现为以下形式:

{{Infobox
| header1  = header1的文本
| label2   = label2的文本
| data2    = data2的文本
| etc      = 其他
}}

使用多重解析器函数的模板通常可通过添加空行提升可读性,例如{{If either}}模板采用的以下代码格式:

{{#if:{{{1|}}}
 |{{{then|{{{3|}}}}}}
 |{{#if:{{{2|}}}
  |{{{then|{{{3|}}}}}}
  |{{{else|{{{4|}}}}}}
 }}
}}

虽然并非必需,但示例中的换行处理确实能让条件语句与#if语句的对应关系更清晰易辨。

换行处理

[编辑]

虽然在模板代码主体内使用换行有助于提高可读性,但代码起始或结尾处的换行可能导致条目显示异常。编写模板时应特别注意避免产生多余的空白。信息框中的单个换行符可能与条目中的换行符结合形成段落分隔,或在行内模板中引发非预期的模板效果。通用准则是避免在模板中连续使用两个换行符,这些换行符可能与条目中的其他换行符“叠加”,并显示为多余的空白。关于wikitext中换行影响的更多信息,请参见Wikipedia:换行处理英语Wikipedia:Line-break handling

为避免多余的空白,请确保所有<noinclude>标签紧接模板代码末尾放置。以下代码取自{{questions}},展示了规范的换行管理方式:

{{notice|small=yes|If you want to ask a question, please see the [[Wikipedia:Questions]] page for guidance.}}<noinclude>
[[Category:Wikipedia help templates]]
</noinclude>

替换引用

[编辑]

使用以下形式调用模板:

{{subst:模板名称 |参数1名称}}

(即在开头的双大括号后插入subst:) 将会复制模板文本并将其放置在页面上,使其在源代码中可见。此时模板不再以嵌入引用的形式存在,后续对模板的修改也不会影响该文本。根据指引,此方法适用于短期使用、将快速移除的简短临时消息,例如用户讨论页上的通知。标准的新用户欢迎消息{{subst:Welcome}}即是典型范例。

若在页面引入消息后需要进行编辑,也应使用subst:前缀。若无需编辑且希望消息随模板更新自动同步,则不应使用subst:前缀。

文档

[编辑]

由于模板对新编者存在技术门槛,应提供描述其用法(可选参数)与适用范围(使用场景)的说明文档。现有两种主要实现方式:

其一可使用{{documentation}}模板将简要说明直接添加至模板页面。如§ 换行处理中所述,首个<noinclude>标签应放置在实际模板内容最后一个字符的同一行。例如:

'''This is a {{{1}}} article.'''<noinclude>
{{documentation|content=
将此模板放置在任何需要描述的条目上。它
接受一个参数,一个用于描述条目的形容词。
例如,{{article-describe|bad}}产生文本:
'''This is a bad article.'''
}}
</noinclude>

另一种选择是为文档创建规范的/doc子页面(对于多参数模板等复杂情况,这是首选方法)。此时仍调用{{documentation}}模板,但所有显示的文本将从模板的/doc子页面嵌入。

'''This is a {{{1}}} article.'''<noinclude>
{{documentation}}
</noinclude>

模块

[编辑]

Lua模块有时被用来替代模板存储可复用内容。这样做可运用模块特有功能(如循环或数值存储),且复杂代码在模块中通常更易维护与阅读。若模块功能在模板中能很容易地实现,则建议优先采用模板,因为掌握模板编辑经验的用户群体更为广泛。

若模块计划用于条目或讨论页,通常应创建模板包装器以简化调用,而无需直接使用{{#invoke}}:解析器函数。此时文档主要存放于模板的/doc页面上,模块文档则指向模板页面并/或解释模板文档中无需呈现的技术细节。

需注意模板包装器比直接调用模块占用更多的模板展开后长度限制,因此在接近该限制的条目中可能需要避免使用包装器。

搜索模板

[编辑]

可通过此表单在Template:或Template_talk:命名空间中搜索。更多搜索技巧请参见Help:搜索

以下页面收录了常用模板的相关信息:

若您未能找到适合你情况的现有模板,又对自主创建感到困难,可前往Wikipedia:模板請求寻求帮助

注释

[编辑]
  1. ^ 不允许嵌入的命名空间由每个维基的变量$wgNonincludableNamespaces指定。

参见

[编辑]