模板文档是一种机制,用来将模板帮助文档从模板源代码中安全地分离成为帮助文档页面。这能够使得模板本身处于完全保护状态下,而说明部分保持未保护状态,让每个人仍然可以编辑模板帮助文档。

能够解决什么问题?

维基人经常喜欢在模板页面里加上使用说明(例如: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,我们仍然可以拥有解说蛋糕并且更快速地享用它!

这个方法同时具有两个明显的附加效果:

  1. 当广受利用的模板更新时,能将服务器重新读取的资料量降到最小。
  2. 受保护的稳定模板,可以增添解说、分类等内容,而不用干扰到主要用途。

使用方法

假设有一个模板 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]

示例

参见