Help:TemplateData/zh

什么是模板数据（TemplateData）？
是一种存储关于wikitext模板及其参数的信息的方式，可以方便可视化编辑器在其模板编辑界面中获取显示，简化使用这些模板编辑页面的流程.

模板信息拓展已在所有WMF维基站点上安装妥当. 如果你自己运营维基站点，那么你需要给它安装Extension:TemplateData.

模板数据语法允许用户向模板（或包含入模板的页面，如文档页）写入小块结构化数据. 模板加上这样的数据之后，就可以在可视化编辑器里妥当显示. “结构化数据”什么的词语听起来很复杂，其实一点都不蓝.

模板数据编辑器
有一个内建工具，可用来简易编辑模板数据.

要使用模板数据编辑器，前往模板页面（或其文档页），点按“编辑”按钮. 在打开的编辑窗口上方，你会看到一个写着“”的按钮： 点击这个按钮就可以进入编辑模板数据的图形化工具. 您可借助编辑器加入模板数据及设置常用属性. 如果你编辑的页面已有一块模板数据，则会被编辑器自动载入显示. 在第一个输入框内，您可添加或更新模板的纯文本概述. 接下来，您可以使用“加入推荐的参数”和“加入参数”按钮，记录模板诸个参数的名称和属性.

You can list the name of the parameter, any aliases for it, the label and the description that will display to users. You can also provide an example how to use the parameter. The only required field is Name (the first field in each row), which is where you record the exact, case-sensitive name of the parameter. In the "Type" dropdown menu, you can choose the type of content that the parameter should receive, such as a string (for plain-text answers), page (for links to other pages), or dates. If the template will produce an error if this parameter is left blank, please mark it as "Required". If the parameter is commonly used or recommended, then mark it as "Suggested". The "Remove parameter information" button will delete the parameter's entry from TemplateData. When you are finished documenting each of the parameters, click "Apply" to insert the pre-formatted TemplateData into the open editing box. You must still save the page, using the normal "Save" button underneath the editing window.

Caution: The TemplateData editor will place TemplateData on either the template page or on a documentation subpage. You determine where the TemplateData will be added by opening (editing) the page that you want the TemplateData to be placed on. However, if multiple TemplateData blocks are placed on the same template, then only one of those TemplateData blocks will be used. If there is already TemplateData on a page, then you need to edit the page where the TemplateData was previously placed to avoid accidentally creating multiple blocks of TemplateData.

Limitations and questions

 * Missing features — TemplateData is very much an example of tool that was made available with few features, in hope that users would help to guide development of features that they desired. If you'd like to request new features for TemplateData, please let us know.
 * Delays in showing in templates — After adding TemplateData to a template, the metadata should be visible immediately when the template is opened in VisualEditor. However, it is possible that it will take several hours before the metadata will show. You can force an update by making a null edit to the template page itself (not the documentation subpage). To perform a null edit, open the template page for editing, and save the page without making any change and without adding any edit summary.
 * 现有问题 — 现有问题（臭虫）和特性请求可在Wikimedia错误追踪系统找到.

模板数据的位置
模板数据应该位于其描述的页面上，或包含入之. In a template, it shall typically be wrapped into tags. On normal page rendering, it displays autogenerated documentation as shown in #Example.

Structure of TemplateData
TemplateData's structure is based around the JSON standard. Note that all descriptions in TemplateData must be in plain text (no wikitext, no links, etc.).

The first thing to do is to type out a pair of  tags, anywhere on the template's documentation subpage, like so:

This tells the software that everything between the two tags is TemplateData, and should be referenced when the template is used.

Example
The descriptions inside TemplateData follow a standard layout; let's say that you have a template called "Commons" for linking to a Commons category about a topic. It takes one mandatory parameter: the name of the category on Commons. The TemplateData would look something like this:

This would display, in the template, like so:

{   "description": "A template for linking to a commons category about an article", "params": { "1": {           "label": "Commons category", "description": "The commons category you want to link to.", "default": "Category:CommonsRoot", "type": "string", "required": true }   } }

Description and parameters
Once you're done, hit "save". If you've made errors, it will not let you save (which is disruptive, but means you can't break anything). Should you run into errors, explain on the feedback page what you were trying to do, and we will be happy to help.

Note that each bit of information is enclosed in quotation marks (except for  and  ), and separated from the next bit by a comma (unless it's the last one).

Parameter aliases
Some templates allow a same parameter to have different names.

For example,  could also be written as   or.

To add this information to TemplateData, you simply need to add the aliases to the parameter's information:

自动值
You can specify an "autovalue" for a parameter. When users add the template to a page, this value will be added automatically. For example, many clean-up templates need to have the date added; if you specify an autovalue for the template's date parameter, then the date will be filled in automatically.

To add this information to TemplateData, simply add the autovalue to the parameter's information. You will probably want to use  to make the values stick:

Multiple parameters
If you have multiple parameters, just repeat each section (starting from the "1" tag) and fill it out as you see fit. Note that if a template has multiple parameters, you need to separate them with a comma in the templatedata, like so:

Similar parameters
When a template has multiple parameters, sometimes some of them can be of the same kind. In this case, you only need to provide full properties for the first one, and the others can "inherit" their properties from it.

Blank boilerplate
You can copy the blank boilerplate below to add new TemplateData to a template. Only the most common tags are included.

其它工具

 * TemplateDataEditor — A user script that makes the process of adding TemplateData easier. It currently exists in French (contains English, Italian, Japanese and Korean translations), and can easily be translated into other languages.
 * TemplateData Wizard — A tool that generates TemplateData through an interactive interface.
 * Skeleton TemplateData generator — A tool that reads the source wikicode of a template, tries to find all the parameters used and outputs a skeleton document with the parameters listed.
 * JSONLint — A tool that allows you to validate manually-written JSON to help find errors in the syntax.
 * List of all templates with TemplateData on this wiki
 * With dewiki template TemplateData template data is shown in a box, and the template is added to a category of templates with template data