Jump to content

說明:TemplateData(模板資料)

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Help:TemplateData and the translation is 99% complete.

TemplateData 是一個擴充,用於儲存與wikitext模板相關的資訊和參數,並使其可用於編輯介面,可以在模板編輯器中檢索及呈現——所有這些都有助於使用者在頁面上添加和編輯模板。 It also provides a user interface for discovering templates .

自2019年4月起,模板資料功能已是維基媒體裏所有wiki上的所有使用者在添加模板時,預設的使用者體驗的一部分,即使是未註冊的使用者也一樣。 預設的代碼和視覺化編輯器此二者,都以某種型式將其納入其中,如同許多指令碼、工具軟體和小工具的做法一樣。 如果你想在自己的wiki上也實現這一功能,請安裝擴充功能:TemplateData(模板資料)

要將模板資料添加到模板內以供此擴充使用時,需要在模板的文件頁面中插入一個小而簡單的JSON(會在下文解釋)區塊。 您可以手動執行此操作,也可以使用模板資料編輯器,這是一個圖形化使用者介面,在安裝了TemplateData擴充的wiki中,你可以在模板的「编辑」/「编辑源代码」頁面裏訪問。 JSON包含模板的參數列,以及關於這些參數以及整個模板的資訊(詳見下文)。

當使用者添加某個模板時,那些包含模板資料的模板將在使用者介面中顯示此資訊。 在某些情況下,當您使用編輯器編輯或插入一個指定的模板時,它將改變編輯器的行為方式,讓使用者可以更輕鬆地執行添加某個指定模板所需的步驟。

歷史

模板資料最初是在2013年初開發的,且已考慮到VisualEditor ,當時正處於MediaWiki測試階段。 視覺化編輯器是維基媒體維基的主要的視覺編輯介面,模板資料使其在添加模板時有一個更有用的介面, 它立即被視覺化編輯器正式支持。 從2013年到2016年,隨著視覺化編輯器作為預設功能被推廣到各個主要的維基媒體的wiki中,模板資料也成為了它們的一部分。

2016年12月,作為是一項測試功能,視覺化編輯器介面可用於編輯原始碼, 稱為2017 wikitext編輯器 。 這首次將模板資料的特點帶到了原始碼編輯中。

2018年3月,Sam Wilson開發了TemplateWizard ,這是預設的維基媒體原始碼編輯器WikiEditor (也就是2010年的wikitext編輯器)的GUI模板編輯器擴充,旨在透過使用模板資料的資訊使添加模板的過程更容易。 在2019年4月,TemplateWizard被列為所有維基媒體的wiki上的2010年wikitext編輯器的預設部分。 這意味著模板資料現在是維基媒體的wiki上視覺化編輯器和原始碼編輯器的一個預設部分。

添加或編輯模板數據

要添加或編輯模板資料,首先導航到模板的頁面,它位於「/Template:Templatename」。

檢查目前的狀態

在添加或編輯模板資料之前,請檢查該模板是否有文件子頁面。 然後檢查模板是否已經包含模板資料,如果是,它是位於模板頁面還是在文件子頁面上。

請務必檢查是否有一個子頁面存在。 如果你在一個模板的主頁面上添加了模板資料,同時又有一個子頁面也存在模板資料,那麼主頁面上的模板資料將覆蓋掉子頁面上的資料。

說明文件子頁面

大多數維基媒體維基上的模板有兩種主要的方式來儲存他們的使用說明和其他不應該包含在實際模板本身的資料,比如模板應該包含的類別:

  • 絕大多數模板將使用說明和其他不屬於模板頁本身的資料放在文件子頁上:「/Template:Templatename/doc」。 在這樣的頁面上,{{Documentation }}的模板將所有的/doc頁面的內容都嵌入包含在模板頁面上,使模板的原始碼更加簡潔。
    • 在有文件子頁面的模板上,「模板文件」標題後面會有[檢視]、[編輯]、[歷史]和[清除快取]等連結。
  • 少數模板頁面在模板的主頁面上保留了該資訊。 在這些頁面上,你可以透過尋找‎<noinclude>標籤之間出現的{{Documentation|content=來發現它。

不同的wiki可能會以不同的方式呈現這一切。 極其罕見的情況,即使你已經檢查了上述所有內容,主模板頁面仍然包含著文件; 就像這裡,一個使用者已經在「{{Documentation|」和 「|content=」之間添加一個自訂的/doc頁面標題,然後又在「|content=」之後添加內容。

你也可以在頁面底部尋找類似這樣的通知:「上述文件是從Template:Templatename/doc中嵌入的」。

沒有文件子頁面的模板

如果一個模板沒有文件子頁,就建立它並將模板的文件移到那裡(或一個預留位置)。 然後你可以把模板資料添加到文件子頁。

建立子頁面並移動文件

在許多維基媒體的wiki上,你只有在成為註冊使用者若干天並進行了最低數量的編輯後才能建立一個頁面。

要建立文件子頁,在主模板頁面上點擊「编辑」/「编辑源代码」;尋找‎<noinclude>的標籤及其內容(通常在底部)。

它應該看起來像這樣:

<noinclude>
{{Documentation|content=
==使用==

关于使用情况的信息。

==示例的更多标题==

示例的更多內容

[[Category:Example category]]
[[Category:Example category 2]]
}}
</noinclude>

你可能也發現它已經包含了模板資料。 如果是這樣,它看起來會像這樣:

<noinclude>
{{Documentation|content=
...
<templatedata>
{
    "description": "",
    "params": {
        "1": {
            "label": "示例的参数",
            "description": "示例的参数描述",
            "type": "string"
        }
    }
}
</templatedata>
</noinclude>

選擇「|content=」之後、「‎</noinclude>」之前的所有內容,並將其剪下到剪貼簿上或儲存在一個臨時檔案中。 刪除「|content=」,只留下以下內容。

<noinclude>
{{Documentation}}
</noinclude>

儲存模板頁面。

現在,要新增的子頁面,請看你的瀏覽器的網址列,在URL的末尾加上/doc。 按↵ Enter,然後選擇建立一個新頁面的選項。

如果這個wiki有一個{{Documentation subpage }}的通知模板,把它加在新頁面的頂部。 你也可能希望添加其他模板,例如{{Purge button }}或{{Purge }}的連結(如果有關的wiki支持的話)。

插入你在前面的文字中剪下或儲存的文字(如果有的話,是在通知模板的下面)。

‎<includeonly>標籤包裹任何類別,使它們只適用於模板的主頁面:

<includeonly>
[[Category:Example category]]
[[Category:Example category 2]]
</includeonly>

許多的wiki都有一個{{Sandbox other}}的模板。 如果你要編輯的模板很可能存在沙盒版本(位於 「Template:Templatename/sandbox」),請在此使用該模板,以防止類別應用於沙盒頁面:

<includeonly>{{sandbox other||
[[Category:Example category]]
[[Category:Example category 2]]
}}</includeonly>

最後,發布該頁面。

現在你可以使用#方法中所描述的指導,在文件子頁上添加和編輯模板資料。

在主模板頁面上添加和編輯模板資料

如果你不能建立/doc頁面,你可以按照#方法中的指導,在模板的主頁面添加和編輯模板資料。

如果一個模板有一個文件子頁,則同時檢查主頁面和文件子頁是否存在模板資料(‎<templatedata>標籤後面是一個大括號內的陣列:{})。

另一種擇,TemplateData擴充可以幫你執行這一檢查。 在任何一頁上點擊「编辑」或「编辑源代码」。 如果模板在任何一個頁面上已經有了模板資料,你會在頁面的頂部看到一個黃色的通知,上面寫著的,是:

請注意:關聯頁面「Template:模板名/doc」上已存在模板資料代碼塊。

或者

請注意:關聯頁面「Template:模板名」上已存在模板資料代碼塊。

如果模板在其文件子頁上有模板資料

如果該模板在其文件子頁面上有模板資料,那麼你應該去編輯這個文件子頁面。 你可以透過點擊位於標題「模板文件」(或類似的)之後的 "[編輯] "來實現,或者,如果你已經在/doc頁面上,點擊頂部的「编辑」或「编辑源代码」。 按照#方法的指導,添加或編輯模板資料。

如果模板在其主頁面上有模板資料

如果模板在其主頁面上有模板資料,你再次有兩個選擇:

  • 要麼,你可以移動到它的文件子頁。這是首選方案。
  • 要麼,你可以在主模板頁面上編輯它。

將模板資料移至文件子頁

要做到這一點,請在主模板頁面上點擊 「编辑」/「编辑源代码」,並尋找‎<templatedata>的標籤,將其包在‎<noinclude>的標籤中。 它應該看起來像這樣:

<noinclude>
{{Documentation}}
<templatedata>
{
    "description": "",
    "params": {
        "1": {
            "label": "示例的参数",
            "description": "示例的参数描述",
            "type": "string"
        }
    }
}
</templatedata>
</noinclude>

只把‎<templatedata>的標籤和它們的內容從代碼中剪掉,然後儲存頁面。

接下來,透過點擊位於標題「模板文件」(或類似)之後的「[編輯]」來編輯文件子頁。

輸入一個標題,如「模板資料」,然後在其下方貼上模板資料。

你現在可以根據#方法的指導編輯模板資料。

在主模板頁上編輯模板資料

如果你不希望把模板的資料移動到/doc頁面,你可以在模版的主要頁面上編輯它 參見#方法以學習如何編輯模板資料。

如果這個模板還沒有模板資料但是有一個doc子頁面

如果這個模板還沒有模板資料,你應該將其添加到文件子頁面。

你可以透過點擊位於標題「模板文件」(或類似的)之後的 「[編輯] 」來實現,或者,如果你已經在/doc頁面上,點擊頂部的「编辑」或「编辑源代码」。 輸入一個標題,如「模板資料」,然後在其下方貼上模板資料。 #方法章節解釋了如何編輯模板資料。

方法

模板數據編輯方法

這是添加或編輯模板資料的一個簡單的方法,推薦經驗不足的使用者使用。

模板資料編輯器是一個圖形化的編輯器,可用來添加或編輯模板資料。 這是 TemplateData 拓展的一個片段,點擊「编辑」或「编辑源代码」能用於所有的模板頁面(或文件子頁面)。

點擊「编辑」或「编辑源代码」後,你將會看到編輯區上面的一個按鈕和標題頁面「编辑模板数据」。

點擊該按鈕就可以進入模板數據編輯器。 如果您所在的頁面已經包含了模板數據,則會自動顯示在這裡。

模板資料編輯工具的截圖。

上述窗口中的功能:

  • 頂部專案選擇介面文字的語言。它允許您輸入多種語言的文字內容,根據使用者在偏好設定中的設定向使用者顯示,不基於wiki的語言;不同的維基有完全不同的模板資料庫。 如果不存在語言模板資料,介面將僅向使用者提供wiki自己的語言,但使用者可以單擊「添加语言」添加更多輸入。 語言代碼將會顯示在可以應用它的參數旁邊的括號中,例如描述和標籤。
  • 下一項是模板說明。這是整個模板的描述;添加模板時,它會在模板編輯器中的許多位置向使用者顯示。此參數及其效果概述在此處
  • 第三項控制模板的維基文字格式。 此參數確定當使用者點擊「应用」時wiki文字的布局方式,兩種主要類型是"inline"(在一行上)和"block"(在新行上)。 此參數及其效果概述在此處
如果使用者選擇了「自定义」,那麼他們可以自訂列出的以下規則,在「自定义格式字符串」中輸入wikitext,然後點擊「应用」,以建立模板的一個自訂的布局。
  • 第4項組態了模板的參數。 如果模板資料中已經定義了參數,那麼此區域會以列表顯示這些參數。 如果模板的原始碼指定了模板資料中還不存在的參數,你可以看到「添加2个推荐的参数」按鈕。 編輯器會在模板的原始碼中尋找{{{parametername}}}{{{parametername|}}},然後匯出這些建議。 點擊添加2个推荐的参数會添加這些參數,使用其在原始碼中定義的名稱。 頂部將會出現一個綠色的通知,例如「2個新參數已匯入:參數名稱
  • 在窗口的底部,你會看到一個「添加参数」按鈕,這可以讓你手動添加一個自訂名稱的參數。

點擊列表中的任意一個參數,進入下一步,然後就可以編輯參數的資訊。

範本資料編輯器的螢幕截圖,顯示參數選項

#參數名稱內一節會介紹所有這個功能以及其效果。

  • 模板資料編輯器不會允許你將參數改變為一個空白的「名稱」。 但是,在帶有TemplateWizard的2010 wikitext編輯器中,有些模板資料會取得空白的字串作為名稱,而不導致問題,但是視覺化編輯器和2017 wikitext編輯器均不會顯示它們。 這是模板資料編輯器中唯一必填的欄位。
  • 點擊「移除参数信息」會從模板資料中刪除參數以及其所有的資訊。 然後,除非點擊「X」,否則你無法在模板資料中找回或者復原。 在點擊「应用」後,你可以按Ctrl+Z以復原變更。
  • 在作出變更後登出模板資料編輯器,會彈出一個提示,讓你確認是否要丟棄所有的變更。

完成後,點擊「应用」。 這會自動將模板資料插入到頁面底部,‎</noinclude>標籤之前,或者,如果已經存在,則會更新其內容而不改變其位置。 點擊「应用」,模板資料文字也會被選中。

模板資料編輯器會在模板資料的底部建立一個"paramOrder"參數(或者,如果已經存在,則更新這個參數)。 paramOrder包含了目前的模板資料參數,按照在模板資料編輯器中顯示的順序出現。 你哥心在模板資料編輯器中,使用左側的三個橫線圖示,將其向上或者向下拖動,以改變paramOrderparamOrder及其影響記錄如下。

然後,點擊「保存」以儲存變更。

手動方法

你也可以手動添加和編輯模板資料。 模板資料是用JSON編寫的,但你並不需要學習JSON就可以學習如何建立模板資料。 模板資料遵循少量簡單的規則,僅接收少量可行的預定義的參數和值,基本上是"parameter": "value"的格式。

手動添加模板資料

需要考慮的地方:

  • 如果你是在模板的文件子頁面添加模板資料(推薦這麼做),你可以添加到頁面的任何地方;檢查你所使用的語言的維基百科有沒有推薦把模板資料存放在哪個地方。例如,在英語維基百科,模板資料通常接近文件頁面的底部,而在德語維基百科,通常在頂部。
  • 如果你是在模板的主頁面(不推薦這麼做,請看#優先檢查),你必須確保其在‎<noinclude>...‎</noinclude>標籤內。

點擊「编辑」或「编辑源代码」,然後移到到你需要添加模板資料的地方,添加一個章節標題:「模板資料」。

很多wiki都有個{{TemplateData header }}模板,添加一個關於模板資料的短的提示。如果你有wiki有,可以在標題後添加一個。

要開始添加模板資料,輸入一個開頭的‎<templatedata>模板,以及在新的一行上的一組花括號,中間空一行。

<templatedata>
{

}
</templatedata>

然後,在兩個花括號之間的空行上添加縮排,開始添加參數。參數的細節請參見#模板資料參數。大多數都是可選的,有些是強烈推薦使用的。

參數可以是任何順序,但是下面的是符合模板資料文件且讓讀者更加容易使用的順序。

<templatedata>
{
    "description": "",
    "format": "",
    "params": {
        "parameter1": {
            "aliases": ["",""]
            "label": "",
            "description": "",
            "type": ""
        }
    },
    "paramOrder": [
    	""
    ]
}
</templatedata>

確保參數,例如在"params"對象內,保持在這個對象中。否則,儲存時就會觸發「意外的屬性「propertyname」。」。

範例

下面是個假設的清理模板的一些範例模板資料。 此類別模板將顯示一條通知,並根據輸入的月份和年份將頁面放入帶有日期的類別中。 這個通知可能還包含一個討論頁章節的連結。模板資料看上去應該會是這樣子:

<templatedata>
{
	"description": "使用此模板以表示一篇文章需要清理。",
	"format": "inline",
	"params": {
		"date": {
			"label": "月份和年",
			"description": "添加模板的月份和年",
			"type": "string",
			"autovalue": "{{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}",
			"example": "2013年1月",
			"suggested": true
		},
		"reason": {
			"aliases": ["1"],
			"label": "原因",
			"description": "文章需要清理的原因",
			"type": "string"
		},
		"talk": {
			"aliases": ["talksection"],
			"label": "讨论页章节",
			"description": "包含有关讨论的讨论页章节",
			"type": "string"
		}
	},
	"paramOrder": [
		"date",
		"reason",
        "talk"
	]
}
</templatedata>

對應的模板資料看起來會像是這樣子:

使用此模板以表示一篇文章需要清理。

Template parameters[Edit template data]

This template prefers inline formatting of parameters.

ParameterDescriptionTypeStatus
月份和年date

添加模板的月份和年

Example
2023年1月
Auto value
{{SUBST:CURRENTMONTHNAME}} {{SUBST:CURRENTYEAR}}
Stringsuggested
原因reason 1

文章需要清理的原因

Stringoptional
討論頁章節talk talksection

包含有關討論的討論頁章節

Stringoptional

模板資料參數

下面列出了所有可用的模板資料參數(即 wiki 原始碼中標籤 <templatedata>...</templatedata> 之間的參數),並附有說明和範例。 擴充:TemplateData#格式中更新詳細地列舉出了一些技術細節。

  • 此資訊目前是針對2021年11月版本的,如果加入了新的參數或者模板編輯介面更新以支持現有的參數或者對特定參數以不同方式處理了,則有可能改變。
  • wiki標記在標籤和描述中不起作用。 只能是嚴格的純文字。
  • 描述、標籤、範例或預設中的新行(「\n」)不會顯示在任何的主要編輯器(TemplateWizard、視覺化編輯器或者2017 wikitext編輯器)中,即使在自動生成的模板資料文件中會顯示。 在輸入框中,會被替換為null,其他地方則替換為空格。
參數 描述 範例
description "description"參數描述了這個模板是做什麼的。

可選,但高度推薦。

效果

在模板文件頁面中,描述會以純文字的形式,顯示在「[模板名稱] 模板資料」小標題的下方。

在所有的主要編輯器(VisualEditor 2017 wikitext編輯器 和帶有TemplateWizardWikiEditor )中,模板會在以下兩個例子中顯示:

  • 在搜尋模板時,顯示在每每條建議的模板名稱下方

在將參數的值添加到模板時,顯示在模板編輯器中的模板名稱的下方。

在視覺化編輯器和2018版wikitext編輯器中,在每個搜尋建議中,描述會被截為50個字元,然後是「...」,但是在主要的模板編輯器窗口中,描述會完整顯示。 兩個都是以灰色文字展示的。

在主模板編輯器窗口中,超過4行(大約540個字元)的描述會提供一個單獨的捲軸,並顯示為黑色的文字。

如果沒有指定

如果描述參數不存在或者沒有指定,那麼「[模板名稱]模板資料」下方的模板資料文件內,會顯示文字「无描述。」。 此外:

  • 在視覺化編輯器和2017版wikitext編輯器中,其表現會和模板沒有模板資料時相同,不顯示描述,而是顯示:
“Template:模板名称模板还没有描述,但是其模板页面可能会包含一些信息。”
  • 在帶有TemplateWizard的2010版wikitext編輯器中,描述所在的地方(除了搜尋建議)中會顯示以下文字:
“不存在此模板的描述。”
這與模板資料不存在時的兩個標準的占位描述不同:
  • “由于没有模板数据,此模板的参数是自动生成的。 请注意这可能不准确。”
  • “由于没有模板数据文档,无法确定此模板的参数。 你可以插入此模板而不带参数。”
"description": "用于链接到贡献资源分类",
format "format"參數描述了模板的wikitext如何排版。 這可以設定為"inline""block"的標準格式,或自訂格式;參見下文以取得更多詳情

這個參數不是必需的,但是推薦使用。 此參數不存在時的預設行為是為已經存在的參數保留原有的格式,或者,對於新添加的參數和模板,使用行內格式。

效果

行內: ("inline")

插入時,模板會將wikitext顯示為一行,元素之間沒有空白字元,就像這樣:

{{Foo|bar=baz|longparameter=quux}}

塊: ("block")

插入時,模板會將每個參數放在單獨的一行上,每個元素之間都有一個空格,就像這樣:

{{Foo
| bar = baz
| longparameter = quux
}}

自訂格式:

如果偏好設定為自訂的wikitext字串,就像#自訂格式中列舉的每個規則,那麼模板會根據指定的wikitext來組織其wikitext。

"format": "inline"
params "params"對象包含模板的每個參數的資訊。這是必需的,其參數可參考#在參數內段落。

這個對象應該包含每個參數的名稱,然後是一組模板資料的子參數(sub-parameters),列舉在#在參數名稱中

如果有多個參數,在每個參數對象之間加一個逗號,但不要在最後一個大括號後加一個逗號(見範例)。

"params": {
    "parameter1": {
        ...    // 参数信息
    },      // 注意此处的逗号
    "parameter2": {
        ...    // 参数信息
    },      // 以及此处
    "parameter3": {
        ...    // 参数信息
    }       // 但不是这里
}
paramOrder "paramOrder"是可選的對象,在模板編輯器中添加時,會使模板的參數以特定的順序顯示。

如何使用

添加參數"paramOrder",然後是一個冒號,空格,以及左方括號,然後輸入模板的每個參數,寫在英文半形雙引號(")中,且要按照你期望的順序,並用逗號隔開。 然後以結束的方括號結尾(建立一個陣列)。

參數不需要是在新的一行中(可能寫為"paramOrder": ["param1","param2","param3"]),但是通常寫成新行以增強可讀性。

我們推薦你將"paramOrder"添加到"params"的後面,就像模板編輯器做的那樣,這不會顯示在模板資料文件中,但是會強制參數的順序。 未來的編輯器可能會更快地瀏覽參數細節,但編輯它們,而不是掃過"paramOrder",尤其是有很多參數的時候。 如果你確實選擇將paramOrder放置在模板資料之外的其他地方,加個逗號。

你必須在模板資料中,包含提及的每一個參數,否則就會顯示「未找到必需的屬性「propertyname」。」。

如果沒有指定

沒有"paramOrder",模板的參數會以模板的原始碼聲明的方式顯示,如果原始碼包含對象內的對象,那麼外層對象內的參數會顯示在前面,然後是內層對象的。

帶有其他參數

在帶有TemplateWizard的2010版wikitext編輯器中:

  • "required"參數永遠顯示在頂部,忽略"paramOrder"的順序。
  • "suggested"啟示顯示在第二個,在"optional"的上面。
  • "deprecated"參數在此編輯器中完全不會顯示,更多資訊請見"deprecated"
  • "paramOrder"只會強制這些類別中的順序(例如,所有的"required"參數都以"paramOrder"指定的順序顯示,然後所有的"suggested"參數也是如此,但所有的"suggested"參數會顯示在"required"參數的下面)。

在視覺化編輯器和2017版wikitext編輯器中,"paramOrder"會強制其順序,而忽略每個參數的狀態。

"paramOrder": [
	"date",
	"reason",
	"talk"
]

參數 params

參數 描述 範例
參數名稱 params對象唯一的一級對象,是模板的參數的名稱。

例如,在模板的原始碼中,{{{date}}}表示參數,添加在帶有"date""params"下方。

你也可以看到叫做{{{1}}}或者其他數字的參數(其模板資料,比如說,應該像這樣:"1")。 像這樣的參數會在使用者插入模板時,避免需要輸入參數名稱和等號(例如,|value|,而不是|parametername=value|)。 有多個未命名的參數時,其數字表示其未命名參數指代的順序。 比如:

{{example template|value1|value2}}

value1是參數{{{1}}}的值,value2是參數{{{2}}}的值。 相應地描述你的模板資料參數。

注意:使用者仍然可以強制使用{{{2}}}而不使用{{{1}}},方法就是在模板編輯器中插入一個叫做2的參數,或者在wikitext中輸入|2=。 最後,注意"aliases"會建立參數名稱的替代,這些參數名可以互相換著使用,"label"會將參數在使用者介面中顯示的名稱替換為指定的標籤(用於參數名稱不是人類可讀或者難以理解的情況)。

如何使用

每個参数名称對象都應該包含參數的所有資訊,形式是更多的模板資料參數。 這些列舉在以下段落中,即在參數名稱中

"1": {     // 参数名
    ...    // 此处为参数信息
}

在參數名稱中

參數 描述 範例
aliases "aliases"參數是可選的,允許模板參數有多個名稱。 要檢查這個,你可以看看模板的原始碼,找找有沒有這樣的:
{{{parameter1|{{{parameter2}}}}}}

或者

{{{parameter1|{{{parameter2|}}}}}}

這意味著,如果使用者插入了這些值的任何一個,那麼其效果都是一樣的。 從字面上,可翻譯為:「parameter1的值。若參數1不存在或無取值:則取parameter2的值。」 在第二個例子是,這也意味著:「如果parameter2不存在或者沒有值:沒有值」。

要添加"aliases"參數,添加文字"aliases"然後是一個冒號、空格和一個左方括號,然後輸入在引號中輸入每個參數的別稱,用逗號隔開。 以右方括號結尾,建立一個陣列。

"aliases": ["1", "talk", "talksection"],
inherits "inherits"是一個可選的參數,用於模板資料應該繼承另一個參數的所有模板資料時。 這可以被指定了繼承參數的任何參數覆蓋。

要使用這個參數,輸入"inherits" :,然後是另一個模板資料的名稱,比如"talk""1"。 然後,如果您願意,可以為下面的參數輸入另一個特定設定,就像"label" : "A different label"。 第一個參數會繼承第二個參數的屬性,除了這個。

    "params": {
        "话题1": {
            "label": "话题",
            "description": "一个在该消歧义页面被提及的话题",
            "type": "string"
        },
        "话题2": {
            "inherits": "话题1"
        },
        "话题3": {
            "inherits": "话题1",
            "label" : "A different label"
        }
    }
label "label"參數是人類可讀的中文名稱,這個名稱將會在視覺化編輯器中顯示。 這個標籤總是會顯示,替代參數的原始名字,包含在wikitext中使用了別稱時。 這個參數是可選的,但高度推薦。
"label": "月份和年",
description

這裡,"description"參數描述,不是整個模板的。 這個描述出現在參數名稱下面(長的描述會縮短,有個按鈕可以展開它)。 可選,但高度推薦。

"description": "添加模板的月份和年",
type 參見#類型參數章節。
default 有些模板參數有預設的值,使用這個值,除非被使用者覆蓋。 "default"項是可選的項,僅用於記錄,告訴使用者這個預設值。 這個值應該匹配實際的預設值(如果有),且沒有實際效果。 (不要混淆了"autovalue",它是實際效果的參數,會為使用者填充到欄位中。)

效果

在所有主要的編輯器(視覺化編輯器,2017版wikitext編輯器,以及帶有TemplateWizard的2010版編輯器)中,"default"文字會在輸入框中顯示為灰色的文字,僅在內容為空時顯示,顯示格式為“默认:默认文本。 此外,它還會在參數描述(在使用者懸停在「i」符號時)中顯示純黑色文字。 在視覺化編輯器和2017版wikitext編輯器中,這會顯示在參數描述的下方,在「欄位是必需的」「欄位是棄用的」(如果指定了)的下方(2010版wikitext編輯器不顯示這個文字),在「範例」(如果指定了)的上方(2010版wikitext編輯器中,"example"不會在參數描述中顯示)。 在帶有TemplateWizard的2010版wikitext編輯器中,"default"文字直接顯示在參數描述的後面,同一行內,空格後面。 其他編輯器中也是以相同的格式顯示 (“默认:默认文本)。

帶有其他參數

在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,如果指定了"default",那麼"example"值不會在輸入框中顯示。

"default": "Category:CommonsRoot",
autovalue 參數可以指定一個"autovalue"(自動值)。 當使用者在頁面中添加模板時,此值會自動顯示在輸入框中。 例如,很多的清理模板都需要添加日期,將模板的date參數的"autovalue"設定為{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}},則會自動填寫添加模板時的月份和年份。

此值可以被模板編輯器中的使用者覆蓋。

帶有其他參數

在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,"autovalue"會在視覺化編輯器和2017版wikitext編輯器中覆蓋"url"的視覺效果。 更多資訊請參見"type"的描述.

"autovalue": "{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}"
example "example"參數是可選的,僅用於記錄,其值包含一個例子,幫助模板的使用者理解填入此參數的正確方式(不要與"suggested"混淆了,具體請參見那一條)。

效果

在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,這個參數會顯示在參數描述的下方(且"default"文字的下方,如果指定了)。

帶有其他參數

在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,如果指定了「default」,那麼輸入框中不會顯示"example"

"example": "January 2013",
suggested values 這個參數屬性suggestedvalues會讓你定義參數值的列表,這些參數會顯示在視覺化編輯器的下拉式選單中,供使用者選擇。你可以直接在JSON中完成,也可以使用模板資料編輯器(不需要編寫代碼)。 你可以添加需要顯示在視覺化編輯器中的建議值,並使類型設定為以下選項中的一個(參考):
  • 內容
  • 單行文字
  • 字串
  • 數字
  • 未知
  • wikitext片段

目前不支持其他類型(file, page, template, user, date, boolean, URL),因為在視覺化編輯器中已經有了其他的特殊功能,例如自動完成,這會在視覺化編輯器中干擾建議值的下拉式選單的使用。

在wikitext中,作為JSON編輯模板資料

要給任意參數類型添加建議值,在JSON中給參數添加新的屬性"suggestedvalues"。「suggestedvalues」屬性必要是字串的列表。

在模板資料編輯器中編輯模板資料

  1. 點擊「编辑模板数据」。
  2. 點擊你需要添加建議值的參數的名稱。
  3. 如果尚未完成此操作,請將參數類型設定為以下其中一項:content, line, string, number, unknown, unbalanced wikitext。 將會出現一個新的輸入欄位推荐值。 如果該參數已被設定為這些類型中的一種,輸入欄位應已處於可見狀態。
  4. 在建議值中輸入,包括空格和特殊字元,然後按下enter以在列表中添加值。

效果

當這些值添加到模板資料之後,視覺化編輯器對於上述列出的參數類型,會在組合方塊中顯示這些值(下拉式選單,使用者也可以輸入自訂的值)。使用者點擊需要的值以將其選擇。如果這個值的列表太長——例如,國家的州或省份的列表——那麼使用者可以在欄中先開始輸入,列表會被篩選為僅顯示包含輸入的文字的值。要改變輸入的值,使用者必須簡單地清除掉欄位內容,然後完整的下拉式選單會再次出現。如果使用者需要輸入不在列表中的值(例如,「瓶子裡的訊息」),可以手動輸入。

	"suggestedvalues": [
		"期刊",
		"书",
		"报纸",
		"杂志"
	]
狀態選項 描述 範例
required

接下來是"required",只可為true(真)、false(假)兩種。 未指定時,值預設為false

它決定了填寫給定的參數對模板來說是否是強制性的。

效果

這個狀態在視覺化編輯器和2017 wikitext編輯器 中有幾個效果:

  • 使用者插入模板時,會自動顯示這個參數;
  • 在輸入框內的右側顯示一個黑色的星號;
  • 參數描述的下方顯示灰色斜體的文字「必填字段。」;
  • 輸入使用者點擊了但沒有輸入值,輸入框會有紅色的發光;
  • 如果使用者嘗試插入模板,但有些必需的值沒有提供,會顯示一個彈窗,問使用者是否確定。 如果確定,會插入參數並帶有空值。 但是,這不會阻止插入模板,並且它本身不會導致可見錯誤(儘管可以將模板編寫為在未填寫必需的參數時顯示錯誤)。

在帶有擴充功能:TemplateWizard(模板精靈) WikiEditor 中,就像在其他的編輯器中,當使用者插入模板時,會自動顯示參數,但是參數無法透過這個或者任何編輯器移除。 參數描述中也不會顯示「必填字段。」,但是會在「必需参数」下的一側中列舉參數。 除了這個之外,通常和在其他的編輯器內表現一樣,除了彈窗的內容會說輸入內容「不符合預期的格式」。

帶有其他參數

在視覺化編輯器和2017版wikitext編輯器中,"deprecated"狀態不會覆蓋參數的行為,但是在帶有TemplateWizard的2010版wikitext編輯器中是會的。 更多資訊請參見"deprecated"的描述。

"required": true
suggested

接下來是"suggested",只可為true(真)或false(假)。 當未指定時,預設為false

"suggested"表示參數不是必需但是是強烈推薦模板的使用者提供的。填充此參數時,使用者會看到建議。

效果

在視覺化編輯器和2017 wikitext編輯器 中,這會導致參數在使用者插入模板時自動顯示。 如果偏好設定了autovalue(自動值),則也會自動顯示在參數的輸入框中。 沒有其他的效果,也不顯示額外的文字或者警告。

在帶有TemplateWizard的WikiEditor 中,不會自動在模板中放置參數,但是會導致「推荐参数」下的一側中列舉出來。 使用者可以點擊參數旁的+以將其添加到模板。

帶有其他參數

在所有的主要的編輯器(視覺化編輯器、2017版wikitext編輯器和2010版wikitext編輯器)中,"required"狀態會覆蓋此狀態的功能。 它也會覆蓋模板資料文件中顯示的"suggested"狀態(如果"required"和"suggested"都設定為true,會顯示"required")。

"suggested": true
deprecated

最後,有"deprecated",此處可以設定為truefalse或一個描述使用者應該做什麼的字串。 當未指定時,預設為false

這是一個不應再被使用的參數的狀態,但仍然暫時存在。 這可能是因為此模板的使用正在從一套參數被移動到另一套。

效果

此參數在視覺化編輯器和2017彼wikitext編輯器的效果是,當插入時,參數的標籤的旁邊會顯示灰色的感嘆號標誌,在參數的資訊提示中,參數描述的下方會顯示灰色、斜體的文字「欄位已棄用。棄用的原因」。 這不會影響參數的實際效果或可用性,也不會顯示額外的警告。

儘管可以接收一個字串,但是自2020年1月,主要的編輯器(視覺化編輯器、2017版wikitext編輯器和2010版wikitext編輯器)均不會在任何地方將這個字串的內容顯示給使用者。 輸入字串的效果和true是一樣的。

在帶有TemplateWizard的2010版wikitext編輯器中,設定這個值為true將不會允許參數被添加或者顯示。

帶有其他參數

如果你將這個和"suggested"都設定為true,那麼參數的狀態在模板資料文件中會顯示為"deprecated",但是在視覺化編輯器和2017版wikitext編輯器中,所有的功能都會保留;參數在使用者插入模板時會自動顯示,但是旁邊會有"deprecated"警告。

如果你把這個和"required"都設定為true,參數的狀態在模板資料文件中會顯示為"deprecated",但是在視覺化編輯器和2017版wikitext編輯器中,會有僅和"required"一樣的功能;參數會在插入模板時自動顯示,旁邊會顯示"required"警告。 對於將"deprecated""suggested""required"均設定為true的情況也是如此。

在帶有TemplateWizard的2010版wikitext編輯器中,"deprecated"覆蓋了參數"required""suggested"

"deprecated": "请使用publicationDate。"

注意:如果對於一個參數,"required""suggested""deprecated"都沒有設定為true,那麼其狀態在模板資料文件中會顯示為"optional"(可選)。

一旦您完成,點擊「保存」即可。 如果出現了錯誤,它將不會讓您儲存(這或許是破壞,但意思是您不能損壞任何東西)。 如果您遇到錯誤,在回饋頁面介紹您要嘗試進行的操作,並且我們將很高興幫助。

注意:如果你在濫用一個hack模板以動態地生成模板資料,那麼儲存之前無法檢查錯誤。

請注意:資訊的每項都被引號包圍(truefalse除外),且並用逗號與下一項分開(除非這是最後一個)。

類型參數

"type"參數控制視覺化模板編輯器如何解讀參數。 在有些情況下,模板的編輯器被編寫為,根據這個模板資料的值,這特定的參數修改使用者介面,例如僅允許使用者輸入符合指定類型的有效值。 這個參數在其模板資料或值上沒有實際效果,只控制了模板編輯器在編輯模式中如何看待和對待這個參數。

如何使用

用法就是,添加"type"參數,然後是冒號和空格,然後在引號中添加下表中列舉出的任何一個值。

例如:

"type": "string",

效果

在2020年2月,13個類型中只有5個是在視覺化編輯器和2017版wikitext編輯器中有可見的效果的,8個在TemplateWizard中有可見的效果。

特定值的效果可能會隨模板編輯器的更新以支持而改變。 其中,視覺化編輯器和2017版wikitext編輯器的努力可以在Phabricator任務T55613中追蹤到。 類似的使TemplateWizard支持布林值的努力是在T200664中追蹤的。

下面列舉了目前已知的效果。

描述
unknown 在沒有設定類型時,"unknown"值就是預設的類型值。 這也可以手動輸入"type": "unknown"來設定。

效果

在所有的主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,與沒有模板資料的模板相比,"unknown"沒有可見的效果。

string

"string"值用於任何純文字字串。

效果

在所有的主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,與"unknown"相比,"string"沒有可見的效果。

line

"line"值用於應該強制保持在一行內的內容。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"line"會阻止參數的輸入框新增行,而通常情況下這些編輯器是可以新增行的。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"line"沒有可見的效果(此編輯器的輸入框預設不允許新行)。
content

"content"值用於頁面內容的wikitext,例如,連結、圖像或者文字格式。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"content"沒有可見的效果。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"content"會使參數的輸入框更高以允許新行,而2010版wikitext編輯器的常規輸入框是不允許的。
unbalanced-wikitext

"unbalanced-wikitext"值用於不能夠獨立存在的wikitext,例如缺少開始或結束標籤,或者引用wikitext的其他部分。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"unbalanced-wikitext"沒有可見的效果。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"unbalanced-wikitext"會使參數的輸入框更高以允許新行,而2010版wikitext編輯器的常規輸入框是不允許的。
wiki-page-name

"wiki-page-name"值用於wiki上的頁面名稱。

效果

在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,"wiki-page-name"會使參數的輸入框顯示建議下拉式選單,包含wiki上的頁面的列表,例如維基百科上的文章,可以選中。 在搜尋中可以定義命名空間。 此外,在視覺化編輯器和2017版wikitext編輯器中,還會強制輸入框的內容保持在一行內。 沒有其他的可見的效果,不會阻止輸入非頁面。

wiki-file-name

"wiki-file-name"值用於儲存在本地wiki或者在Wikimedia Commons上的檔案名稱。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"wiki-file-name"沒有可見的效果。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"wiki-file-name"會使輸入框顯示建議下拉式選單,包含儲存在本地和儲存在Wikipedia Commons上的檔案列表,可以選中。 檔案名稱不會包含「File:」命名空間字首。 下拉式選單也會顯示檔案的縮圖。 沒有其他的可見的效果,不會阻止輸入非檔案。
wiki-template-name

"wiki-template-name"值用於模板的名稱。

效果

在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,"wiki-template-name"會使參數的輸入框顯示建議下拉式選單,包含模板的列表,可以選中。 此外,在視覺化編輯器和2017版wikitext編輯器中,還會強制輸入框的內容保持在一行內。 沒有其他的可見的效果,不會阻止輸入非模板。

wiki-user-name

"wiki-user-name"值用於wiki上的使用者名稱。

效果

在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,"wiki-user-name"會使參數的輸入框顯示建議下拉式選單,包含實際使用者名稱的列表,可以選中。 此外,在視覺化編輯器和2017版wikitext編輯器中,還會強制輸入框的內容保持在一行內。 沒有其他的可見的效果,不會阻止輸入非使用者名稱。

number

"number"值用於數字值,包括負值和小數。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"number"沒有可見的效果。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"number"會導致輸入框在一側顯示「+」和「-」按鈕,可以提高或降低數字值,使用者只能在框內輸入數字。 按鈕也可以將數字降低到負數。

帶有其他參數

  • 在帶有TemplateWizard的2010版wikitext編輯器中,"number"覆蓋了"autovalue"的效果,如果參數類型為"number""autovalue"的值不會自動添加到輸入框中。
boolean "boolean"的值用於只能為true、false或者未知。 根據手冊,它用於表現為「1」、「0」或者空白值。

效果

如果帶有autovalue:0,視覺化編輯器中會顯示核取方塊,可以切換為開和關。

date "date"用於YYYY-MM-DD(ISO 8601)格式的日期,例如2014-05-22。 模板資料手冊也指定了ISO 8601的日期時間組合,例如2014-05-22T16:01:12Z,但是實際上沒有主要的編輯介面會使用此功能,且大多數維基媒體模板參數會分開接收日期和時間。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"date"沒有可見的效果。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"date"會使參數輸入框縮短大約三分之一,允許使用者選擇日期格式,並在輸入框中顯示灰色的範例文字「YYYY-MM-DD」。如果輸入不符合此標準,框會顯示紅色發光,但是編輯器總是會輸入符合此標準的日期(如果輸入了數字)或者不輸入(如果僅輸入了文字或者沒有輸入內容)。

帶有其他參數

  • 在帶有TemplateWizard的2010版wikitext編輯器中,"date"覆蓋了"autovalue"的效果,如果參數類型為"date""autovalue"的值不會自動添加到輸入框中。
url

"url"的值用於URL,包含網際網路協定(例如,「https://」或「//」)。

效果

  • 在視覺化編輯器和2017版wikitext編輯器中,"url"會使輸入框在左邊顯示一個外部連結圖示(正方形和指向外面的一個答卷),如果使用者輸入的文字沒有包含有效的Internet協定(例如,「https://」、「ftp://”或“//”)就点开了,那么会有红色发光。 第二個效果類似於required設定,但是當使用者嘗試插入模板而沒有有效的URL時,不會警告使用者。 這對於任何的狀態設定(例如suggested"deprecated)也會發生。
  • 在帶有TemplateWizard的2010版wikitext編輯器中,"url"沒有可見的效果。

帶有其他參數

  • 在視覺化編輯器和2017版wikitext編輯器中,"autovalue"覆蓋了"url"的可見的效果:當兩個都設定了時,輸入框不會包含URL圖示,當用於點開而不輸入有效的URL時,也不會有紅色的發光。

自訂格式

編輯"format"值時,你透過輸入一組使用預定義的規則的wikitext符號來建立自訂的格式。

  • {{ - 模板的開始
  • _ - 內容(例如:字串、整數或參數)。 底線用於表示字元的值的最小長度,可以重複,就像_______。 如果長度不足,就會用空格填充剩餘的字元。 這可以用來將等號對齊於參數後的指定的位置(如果使用了\n以表示新行)。
  • | - 管道符(分隔參數)
  • = - 等號(接參數的值)
  • \n或者按下enter鍵 - 新行(這會在entry欄位中顯示為
  • - 空格(可以和\n一起使用以給新行縮排)
  • }} - 模板的結束

wikitext至少應該符合最小的{{_|_=_}},否則會是無效字串錯誤。

您可以使用的格式範例
目標 格式字串 輸出
行內格式 {{_|_=_}}
inline
{{Foo|bar=baz|longparameter=quux}}{{Bar}}
區塊格式 {{_\n| _ = _\n}}
block
{{Foo
| bar = baz
| longparameter = quux
}}{{Bar}}
參數名稱前沒有空格,每個模板都在自己的行上 \n{{_\n|_ = _\n}}\n
{{Foo
|bar = baz
|longparameter = quux
}}
{{Bar}}
縮排每個參數 {{_\n |_ = _\n}}
{{Foo
 |bar = baz
 |longparameter = quux
}}{{Bar}}
將所有的參數名稱對齊到指定的長度 {{_\n|_______________ = _\n}}\n
{{Foo
|bar            = baz
|longparameter  = quux
|veryverylongparameter = bat
}}
{{Bar}}
Block formatting. Each template on its own line. Space before parameter name. Align all parameter names to a given length. \n{{_\n| _______________ = _\n}}\n
{{Foo
| bar            = baz
| longparameter  = quux
}}
{{Bar}}
管道字元位於前一行的末尾 {{_|\n _______________ = _}}
{{Foo|
  bar            = baz|
  longparameter  = quux}}{{Bar}}
行內樣式,帶有更多空格,必須在一行的開頭 \n{{_ | _ = _}}
{{Foo | bar = baz | longparameter = quux}}
{{Bar }}
在一行開頭的模板,用縮排對齊的參數,管道之前 \n{{_ |\n _______________ = _}}
{{Foo |
  bar            = baz |
  longparameter  = quux}}
{{Bar}}

空白樣板

您可以複製下面的空白樣板來向模板中添加新的模板資料,只包含了最常見的標籤。

<templatedata>
{
    "description": "",
    "params": {
        "1": {
            "label": "",
            "description": "",
            "type": ""
        },
        "2": {
            "label": "",
            "description": "",
            "type": ""
        }
    }
}
</templatedata>

錯誤

JSON內有語法錯誤。/糟糕的JSON格式

這個錯誤通常發生在視覺化編輯器中,儲存模板資料時,通常是手動編輯,且有無效的JSON代碼(重複的鍵或值、多餘或者缺失的逗號,等等)。

視覺化編輯器中會出現「JSON内有语法错误。」;在模板資料GUI編輯器中編輯時會出現「Bad JSON format」。

這個錯誤不易檢測到,且形式多樣,無法列舉。 要避免出現這種錯誤,最好的方式就是僅使用模板資料編輯器進行編輯,最好的一次檢測是否存在錯誤的方式就是使用外部的JSON檢查器,例如JSONLint,它可以突顯出錯誤並嘗試將其修復。

2010版wikitext編輯器不會檢查無效的JSON,這是由於一個老的、未修復的bug(T128029)。 包含無效JSON的頁面可能會丟擲「内部错误」的訊息。 要將其修復,最好使用JSON驗證器(參見上方)。

未找到必需的屬性「paramOrder[數字]」。

這個錯誤發生在,如果你在"params"中聲明了一個參數,但是在"paramOrder"中沒有聲明。 方括號中的數字代表了"paramOrder"中缺失的參數。 指的是在序列中的順序,但是比實際的位置少1,因為"paramOrder"是陣列,0是第一個,1是第二個,等等。

"params": {
    "date": { ...
    },
    "reason": { ...
    },
    "talk": { ... // <-- "paramOrder"中应该声明这个参数,但是没有。
    }
},
"paramOrder": [
	"date",
	"reason"
]

// 错误:未找到必需的属性“paramOrder[2]”。

要將其修復,確保"params"中聲明的所有的參數都列舉在了"paramOrder"中。 此外,你也可以移除掉整個"paramOrder"對象以消除這個錯誤。

屬性「paramOrder[數字]」的值無效。

這個錯誤發生在,如果你在"paramOrder"中聲明了一個參數,但是在"params"中沒有聲明。 方括號中的數字代碼了"paramOrder"中不應該有的參數。 指的是序列中的順序,但是比實際的位置少1,因為"paramOrder"是陣列,0是第一個,1是第二個,等等。

"params": {
    "date": { ...
    },
    "talk": { ...
    }
},
"paramOrder": [
	"date",
	"reason", // <-- "params"中应该声明这个参数,但是没有。
    "talk"
]

// 错误:属性“paramOrder[1]”的值无效。

要將其修復,確保"paramOrder"中聲明的所有的參數都列舉在了"params"中。 此外,你也可以移除掉整個"paramOrder"對象以消除這個錯誤。

屬性「params.參數名稱.required」的類型應為「boolean」。

這個錯誤發生在,如果你在"required""suggested"的值中使用了引號。

"suggested": "true" // <-- 这些地方不应该有引号。

它們是布林值,而不是字串,因此不需要引號。 要修復這個,移除掉這些參數的truefalse旁的引號。

屬性format應該是…(Property "format" is expected to be ...)

如果"format"參數存在,但是其值不是"inline""block"或者有效的格式字串,你會看到錯誤訊息「属性“format”应为“inline”“block”或有效的格式字符串。」。

"format": "notinline"

// 错误:属性“format”应该是“inline”、“block”或者有效的格式字符串。

要修復這個,確保"format": 之後的所有參數都等於"inline""block",且沒有拼寫錯誤。 此外,如果是在wikitext中,確保至少包含最小的{{_|_=_}},語法沒有通常會導致模板失敗的錯誤,例如多餘的等號或者缺失、重複的花括號。自訂格式的語法請參見#自訂格式。 此外,你也可以移除掉"format"參數以消除這個錯誤。

意外的屬性「參數名稱」。

如果你聲明了模板資料中的一個未知參數將會發生錯誤。 這很可能是由於拼寫錯誤或用了大寫字母而非小寫字母。

<templatedata>
{
    "description": "",
    "format": "inline",
    "params": {
        "1": {
            "label": "",
            "descriptino": "", // <-- 拼写错误
            "type": ""
        }
    }
}
</templatedata>

此外,還可能會發生在,你在任何模板資料對象中聲明了一個參數,但這個參數不是該對象中的參數的情況。這可能是由於拼寫錯誤,或者你寫了另一個對象中的模板資料對象中的參數,而參數不屬於那個對象。

例如,你可能將參數"label"寫到了根模板資料對象中,而不是在"params"內:

<templatedata>
{
    "description": "",
    "format": "inline",
    "label": "", // <-- 错误放置的参数
    "params": {
        "1": { // ↓ 它本应位于此处
            "description": "",
            "type": ""
        }
    }
}
</templatedata>

如果未知的參數是在"params"內的模板參數中的,你會在錯誤中的「params.參數名稱」後面看到其名稱。

要修復這個問題,確保參數名稱沒有任何的拼寫錯誤,確保你的參數都在正確的位置。 此外,確保你沒有在模板資料對象中,聲明任何不存在的參數。 你可以在章節#模板資料參數中檢查對象中有哪些參數是存在的。

未找到必需的屬性「params」。

這個錯誤發生在,模板資料是沒有"params"對象。 這個對象是必需的,包含每個參數的所有細節,所以要修復這個錯誤,確保它已經添加,且沒有拼寫錯誤。 關於如果添加"params"參數,請參考上方的段落

局限和回饋

  • 缺失功能 – 模板資料是用於提供很少的功能的工具的例子,希望使用者將有助於指導他們想要的功能的開發。如果您想要請求模板資料的新功能,請讓我們知道
  • 模板顯示延遲 – 將模板資料添加到模板後,在視覺化編輯器中打開模板時,元資料應立即可見。但是,可能需要幾個小時的時間才會顯示元資料。您可以透過對模板頁面本身(而不是文件子頁面)進行空編輯來強制更新。要執行空白編輯,請打開模板頁面進行編輯,並儲存頁面,而不進行任何變更,也不添加任何編輯摘要
  • 現有問題 – 現有問題(bug)和特性請求可在Wikimedia錯誤追蹤系統找到。

其它工具

說明:擴充功能:TemplateWizard(模板精靈)
工具列對話窗口,用於透過由模板資料構建的表單來輸入模板wikitext。
TemplateData Wizard
透過互動式介面生成模板資訊的工具。
Skeleton TemplateData generator
讀取模板源wiki代碼的工具,嘗試尋找使用的所有參數,並按列出的參數輸出綱要文件。
JSONLint
允許您驗證手動寫入的JSON以幫助尋找語法中的錯誤的工具。