维基百科:模板命名空间
| 这篇非正式的指导论述包含一位或多位维基人的意见和建议。它并不是维基百科的方针和指引,尽管它有可能用来解释现有的方针指引。它可能只包含了少数维基人的观点(或者完全是个人观点),鉴定本论述的潜在社群共识可以查看本论述编辑历史和讨论页,也可以检查这个页面。 |
本頁簡而言之:
|
| 命名空间 | ||||
|---|---|---|---|---|
| 基本命名空间 | 讨论命名空间 | |||
| 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}}。
模板测试沙盒
[编辑]若需进行模板测试(且希望测试内容在完成前不被删除),可在模板沙盒页面进行操作。你也可以使用模板X1、X2、X3进行测试。要调用测试模板,请使用{{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:换行处理。
为避免多余的空白,请确保所有<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:模板消息:文本型模板的分类索引。
- Wikipedia:导航模板:各类主题导航元素的部分列表。
- Wikipedia:資訊框列表:信息框模板,用于总结页面主题关键特征的侧边栏面板。
若您未能找到适合你情况的现有模板,又对自主创建感到困难,可前往Wikipedia:模板請求寻求帮助
注释
[编辑]- ^ 不允许嵌入的命名空间由每个维基的变量$wgNonincludableNamespaces指定。