维基百科:模板文档
此维基百科页目前正依照其他维基百科上的内容进行翻译。 (2007年12月12日) |
本页为操作指南,用于介绍中文维基百科社群的一些实现和操作方式。 本文只是论述,不属于方针或指引。如果本指南与方针或指引起冲突或不一致,请以方针或指引的条文为准。 |
模板文档是一种机制,用来将模板帮助文档从模板原始码中安全地分离成为帮助文档页面。这能够使得模板本身处于完全保护状态下,而说明部分保持未保护状态,让每个人仍然可以编辑模板帮助文档。
能够解决什么问题?
维基人经常喜欢在模板页面里加上使用说明(例如:template:cite news)。这些叙述文字可以用包含在维基原始码<noinclude>...</noinclude>的方式写在模板里。然而,这种作法会有一些缺点:
- 在 <noinclude>...</noinclude> 中的文字在被其他页面嵌入前显示会被加算到“展开前的大小 pre-expand include size”,其大小有上限(参见Wikipedia:模板限制)。
- 有一些模板,因为被大量的页面所引用而受到完全的保护。这时候编辑说明内容变得极为不方便,非管理员必须提出修改的要求,而管理员得去代为修改。
- 一个页面的“预先包含 pre-included”和“展开后 post-expanded”的大小设有上限。更糟的情况是,模板里包含了另一个模板,其“预先展开 pre-expanded”大小因此倍增而发生冲突。(参见Wikipedia:模板限制)。
- 如果在编辑模板时,要使用维基百科的“查找和替换”批量替换模板内容的话,可能会使说明内容也受到波及。
本说明页面进一步阐释对策和技巧,用以满足需要更新浏览器暂存记忆的人(or most commonly, learn from the first exposure! 解说文档是必须的,特别是为了停留在陡峭的维基学习曲在线的新加入编辑者。),以及增进效益使建构页面变得更快、与摆脱伺服器处理(更新)时的读取。(我们都希望页面能够更快地被加载!)
总括来说,有个双重办法可以将解说和使用方法置于一个“解说模板”,以取代<noinclude>...</noinclude>区块所围住的工具模板(若妥善运用的话,可以涵盖数个相关的工具型模板),so easy on the processor and, thus,我们仍然可以拥有解说蛋糕并且更快速地享用它!
这个方法同时具有两个明显的附加效果:
- 当广受利用的模板更新时,能将伺服器重新读取的资料量降到最小。
- 受保护的稳定模板,可以增添解说、分类等内容,而不用干扰到主要用途。
使用方法
假设有一个模板 Template:X ,在 template X 的模板原始码底下加入以下的标示:
[--模板的最后一行文字--]<noinclude>
{{Documentation}}
<!-- 請將模板的分類放在 /doc 子頁面 -->
</noinclude>
保存后,单击模板文档中的“创建”按钮,即可以对 Template:X/doc 进行编辑模板说明。如果该文档模板没有创建,以下的维基原始码会自动产生:(参见Template:Documentation/preload)
{{NoteTA
|G1 = MediaWiki
}}
{{Documentation subpage}}
<!-- 在本行下編輯模板說明 -->
== 概要 ==
== 參數及使用方法 ==
== 範例 ==
== 注意事项 ==
== 重定向 ==
== 模板编辑说明 ==
== 參見 ==
<includeonly>{{Sandbox other||
<!-- 本行下加入模板的分類 -->
}}</includeonly>
在上方指示的注释行下分别填写模板说明和分类。
注意:
- 请确保<noinclude>的开头,接在模板原始码或文字的最后一列后方,不要新起一列。否则,一个多余的新列会被插入到包含 X 模板的页面中,往往该页面不需要这个新列。
- 此外,子页面的标题请必定要使用"/doc"的型式。
- 'X/doc'文档页面的分类应该只有Category:模板帮助文档,请调整原始码让属于模板的分类只存在于模板主页面。
- 你可以将 /doc 子页面的讨论页重定向到模板本身的讨论页,那么最后所有有关模板及其文档页的讨论就会在同一讨论页上,举个例,将 Template talk:X/doc 重定向到 Template talk:X。
现在这个模板可以被完全保护了。因为它的'X/doc'文档页面并没有被保护,所以任何人可以编辑该文档页面。然而,注意连锁保护模板会使得文档页面也被保护。
分类链接
- 要将模板本身置于一个分类中,请在 doc 子页面上的
<includeonly>
...</includeonly>
段落中添加代码[[Category:分类名]]
。
- 要将 doc 子页面置于一个分类中,请在 doc 子页面上的
<noinclude>
...</noinclude>
段落中添加代码[[Category:分类名]]
。
- 要让该模板将条目置于一个分类中(当该条目使用该模板时),请在模板页上的
<includeonly>
...</includeonly>
段落中添加代码[[Category:分类名]]
。
优点
- 编辑的 X/doc 页面只会传递展示到该模板页面上,而不会被包含在 X 模板里。引用 X 模板的页面不需要仰赖文档页面,所以不会为了重度使用模板而扩大工作请求(m:Help:job queue)。
- 文档的编辑不会对模板本身和引用的页面造成任何危害。对于文档页面的破坏,不会扩及到引用 X 模板的页面上。
- 即使模板受到完全保护,每个人仍然能够编辑模板帮助文档。分类可以简单地增加在 X/doc 子页面。
注释
- 蒂姆·斯塔林(Tim Starling)写到:“若解说文档过大或是更新频繁,我建议你将它移动到子页面。如此一来你可以将它引用到 <noinclude> 区段和讨论页之中。” [1]
示例
- {{Tnavbar}}(被保护),{{Tnavbar/doc}}(未保护)