說明:TemplateData(模板資料)
| 注意:當您編輯本頁面時,即同意以CC0協議授權您的貢獻。您可以在公有領域說明頁面找到更多資訊。 |
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中嵌入的」。
沒有文件子頁面的模板
如果一個模板沒有文件子頁,就建立它並將模板的文件移到那裡(或一個預留位置)。 然後你可以把模板資料添加到文件子頁。
建立子頁面並移動文件
要建立文件子頁,在主模板頁面上點擊「编辑」/「编辑源代码」;尋找<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包含了目前的模板資料參數,按照在模板資料編輯器中顯示的順序出現。
你哥心在模板資料編輯器中,使用左側的三個橫線圖示,將其向上或者向下拖動,以改變paramOrder。
paramOrder及其影響記錄如下。
然後,點擊「保存」以儲存變更。
手動方法
你也可以手動添加和編輯模板資料。
模板資料是用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>
對應的模板資料看起來會像是這樣子:
使用此模板以表示一篇文章需要清理。
| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| 月份和年 | date | 添加模板的月份和年
| String | suggested |
| 原因 | reason 1 | 文章需要清理的原因 | String | optional |
| 討論頁章節 | talk talksection | 包含有關討論的討論頁章節 | String | optional |
模板資料參數
下面列出了所有可用的模板資料參數(即 wiki 原始碼中標籤 <templatedata>...</templatedata> 之間的參數),並附有說明和範例。
擴充:TemplateData#格式中更新詳細地列舉出了一些技術細節。
- 此資訊目前是針對2021年11月版本的,如果加入了新的參數或者模板編輯介面更新以支持現有的參數或者對特定參數以不同方式處理了,則有可能改變。
- wiki標記在標籤和描述中不起作用。 只能是嚴格的純文字。
- 描述、標籤、範例或預設中的新行(「
\n」)不會顯示在任何的主要編輯器(TemplateWizard、視覺化編輯器或者2017 wikitext編輯器)中,即使在自動生成的模板資料文件中會顯示。 在輸入框中,會被替換為null,其他地方則替換為空格。
| 參數 | 描述 | 範例 |
|---|---|---|
description
|
"description"參數描述了這個模板是做什麼的。
可選,但高度推薦。 效果 在模板文件頁面中,描述會以純文字的形式,顯示在「[模板名稱] 模板資料」小標題的下方。 在所有的主要編輯器(VisualEditor、2017 wikitext編輯器和帶有TemplateWizard的WikiEditor)中,模板會在以下兩個例子中顯示:
在將參數的值添加到模板時,顯示在模板編輯器中的模板名稱的下方。 在視覺化編輯器和2018版wikitext編輯器中,在每個搜尋建議中,描述會被截為50個字元,然後是「...」,但是在主要的模板編輯器窗口中,描述會完整顯示。 兩個都是以灰色文字展示的。 在主模板編輯器窗口中,超過4行(大約540個字元)的描述會提供一個單獨的捲軸,並顯示為黑色的文字。 如果沒有指定 如果描述參數不存在或者沒有指定,那麼「[模板名稱]模板資料」下方的模板資料文件內,會顯示文字「
|
"description": "用于链接到贡献资源分类",
|
format
|
"format"參數描述了模板的wikitext如何排版。 這可以設定為"inline"和"block"的標準格式,或自訂格式;參見下文以取得更多詳情。
這個參數不是必需的,但是推薦使用。 此參數不存在時的預設行為是為已經存在的參數保留原有的格式,或者,對於新添加的參數和模板,使用行內格式。 效果 行內: ( 插入時,模板會將wikitext顯示為一行,元素之間沒有空白字元,就像這樣:
塊: ( 插入時,模板會將每個參數放在單獨的一行上,每個元素之間都有一個空格,就像這樣: {{Foo
| bar = baz
| longparameter = quux
}}
自訂格式: 如果偏好設定為自訂的wikitext字串,就像#自訂格式中列舉的每個規則,那麼模板會根據指定的wikitext來組織其wikitext。 |
"format": "inline"
|
params
|
"params"對象包含模板的每個參數的資訊。這是必需的,其參數可參考#在參數內段落。
這個對象應該包含每個參數的名稱,然後是一組模板資料的子參數(sub-parameters),列舉在#在參數名稱中。 如果有多個參數,在每個參數對象之間加一個逗號,但不要在最後一個大括號後加一個逗號(見範例)。 |
"params": {
"parameter1": {
... // 参数信息
}, // 注意此处的逗号
"parameter2": {
... // 参数信息
}, // 以及此处
"parameter3": {
... // 参数信息
} // 但不是这里
}
|
paramOrder
|
"paramOrder"是可選的對象,在模板編輯器中添加時,會使模板的參數以特定的順序顯示。
如何使用 添加參數 參數不需要是在新的一行中(可能寫為 我們推薦你將 你必須在模板資料中,包含提及的每一個參數,否則就會顯示「未找到必需的屬性「propertyname」。」。 如果沒有指定 沒有 帶有其他參數 在帶有TemplateWizard的2010版wikitext編輯器中:
在視覺化編輯器和2017版wikitext編輯器中, |
"paramOrder": [
"date",
"reason",
"talk"
]
|
參數 params
| 參數 | 描述 | 範例 |
|---|---|---|
| 參數名稱 | params對象唯一的一級對象,是模板的參數的名稱。
例如,在模板的原始碼中, 你也可以看到叫做
注意:使用者仍然可以強制使用 如何使用 每個 |
"1": { // 参数名
... // 此处为参数信息
}
|
在參數名稱中
| 參數 | 描述 | 範例 |
|---|---|---|
| aliases | "aliases"參數是可選的,允許模板參數有多個名稱。 要檢查這個,你可以看看模板的原始碼,找找有沒有這樣的:
或者
這意味著,如果使用者插入了這些值的任何一個,那麼其效果都是一樣的。 從字面上,可翻譯為:「parameter1的值。若參數1不存在或無取值:則取parameter2的值。」 在第二個例子是,這也意味著:「如果parameter2不存在或者沒有值:沒有值」。 要添加 |
"aliases": ["1", "talk", "talksection"],
|
| inherits | "inherits"是一個可選的參數,用於模板資料應該繼承另一個參數的所有模板資料時。 這可以被指定了繼承參數的任何參數覆蓋。
要使用這個參數,輸入 |
"params": {
"话题1": {
"label": "话题",
"description": "一个在该消歧义页面被提及的话题",
"type": "string"
},
"话题2": {
"inherits": "话题1"
},
"话题3": {
"inherits": "话题1",
"label" : "A different label"
}
}
|
| label | "label"參數是人類可讀的中文名稱,這個名稱將會在視覺化編輯器中顯示。 這個標籤總是會顯示,替代參數的原始名字,包含在wikitext中使用了別稱時。 這個參數是可選的,但高度推薦。
|
"label": "月份和年",
|
| description |
這裡, |
"description": "添加模板的月份和年",
|
| type | 參見#類型參數章節。 | |
| default | 有些模板參數有預設的值,使用這個值,除非被使用者覆蓋。 "default"項是可選的項,僅用於記錄,告訴使用者這個預設值。 這個值應該匹配實際的預設值(如果有),且沒有實際效果。 (不要混淆了"autovalue",它是有實際效果的參數,會為使用者填充到欄位中。)
效果 在所有主要的編輯器(視覺化編輯器,2017版wikitext編輯器,以及帶有TemplateWizard的2010版編輯器)中, 帶有其他參數 在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,如果指定了 |
"default": "Category:CommonsRoot",
|
| autovalue | 參數可以指定一個"autovalue"(自動值)。 當使用者在頁面中添加模板時,此值會自動顯示在輸入框中。 例如,很多的清理模板都需要添加日期,將模板的date參數的"autovalue"設定為{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}},則會自動填寫添加模板時的月份和年份。
此值可以被模板編輯器中的使用者覆蓋。 帶有其他參數 在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中, |
"autovalue": "{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}"
|
| example | "example"參數是可選的,僅用於記錄,其值包含一個例子,幫助模板的使用者理解填入此參數的正確方式(不要與"suggested"混淆了,具體請參見那一條)。
效果 在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,這個參數會顯示在參數描述的下方(且 帶有其他參數 在所有的主要的編輯器(視覺化編輯器,2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,如果指定了「default」,那麼輸入框中不會顯示 |
"example": "January 2013",
|
| suggested values | 這個參數屬性suggestedvalues會讓你定義參數值的列表,這些參數會顯示在視覺化編輯器的下拉式選單中,供使用者選擇。你可以直接在JSON中完成,也可以使用模板資料編輯器(不需要編寫代碼)。 你可以添加需要顯示在視覺化編輯器中的建議值,並使類型設定為以下選項中的一個(參考):
目前不支持其他類型(file, page, template, user, date, boolean, URL),因為在視覺化編輯器中已經有了其他的特殊功能,例如自動完成,這會在視覺化編輯器中干擾建議值的下拉式選單的使用。 在wikitext中,作為JSON編輯模板資料 要給任意參數類型添加建議值,在JSON中給參數添加新的屬性"suggestedvalues"。「suggestedvalues」屬性必要是字串的列表。 在模板資料編輯器中編輯模板資料
效果 當這些值添加到模板資料之後,視覺化編輯器對於上述列出的參數類型,會在組合方塊中顯示這些值(下拉式選單,使用者也可以輸入自訂的值)。使用者點擊需要的值以將其選擇。如果這個值的列表太長——例如,國家的州或省份的列表——那麼使用者可以在欄中先開始輸入,列表會被篩選為僅顯示包含輸入的文字的值。要改變輸入的值,使用者必須簡單地清除掉欄位內容,然後完整的下拉式選單會再次出現。如果使用者需要輸入不在列表中的值(例如,「瓶子裡的訊息」),可以手動輸入。 |
"suggestedvalues": [
"期刊",
"书",
"报纸",
"杂志"
]
|
| 狀態選項 | 描述 | 範例 |
|---|---|---|
| required |
接下來是 它決定了填寫給定的參數對模板來說是否是強制性的。 效果 這個狀態在視覺化編輯器和2017 wikitext編輯器中有幾個效果:
在帶有擴充功能:TemplateWizard(模板精靈)的WikiEditor中,就像在其他的編輯器中,當使用者插入模板時,會自動顯示參數,但是參數無法透過這個或者任何編輯器移除。
參數描述中也不會顯示「 帶有其他參數 在視覺化編輯器和2017版wikitext編輯器中, |
"required": true
|
| suggested |
接下來是
效果 在視覺化編輯器和2017 wikitext編輯器中,這會導致參數在使用者插入模板時自動顯示。 如果偏好設定了autovalue(自動值),則也會自動顯示在參數的輸入框中。 沒有其他的效果,也不顯示額外的文字或者警告。 在帶有TemplateWizard的WikiEditor中,不會自動在模板中放置參數,但是會導致「 帶有其他參數 在所有的主要的編輯器(視覺化編輯器、2017版wikitext編輯器和2010版wikitext編輯器)中, |
"suggested": true
|
| deprecated |
最後,有 這是一個不應再被使用的參數的狀態,但仍然暫時存在。 這可能是因為此模板的使用正在從一套參數被移動到另一套。 效果 此參數在視覺化編輯器和2017彼wikitext編輯器的效果是,當插入時,參數的標籤的旁邊會顯示灰色的感嘆號標誌,在參數的資訊提示中,參數描述的下方會顯示灰色、斜體的文字「欄位已棄用。棄用的原因」。 這不會影響參數的實際效果或可用性,也不會顯示額外的警告。 儘管可以接收一個字串,但是自2020年1月,主要的編輯器(視覺化編輯器、2017版wikitext編輯器和2010版wikitext編輯器)均不會在任何地方將這個字串的內容顯示給使用者。
輸入字串的效果和 在帶有TemplateWizard的2010版wikitext編輯器中,設定這個值為 帶有其他參數 如果你將這個和 如果你把這個和 在帶有TemplateWizard的2010版wikitext編輯器中, |
"deprecated": "请使用publicationDate。"
|
注意:如果對於一個參數,"required"、"suggested"和"deprecated"都沒有設定為true,那麼其狀態在模板資料文件中會顯示為"optional"(可選)。
一旦您完成,點擊「保存」即可。
如果出現了錯誤,它將不會讓您儲存(這或許是破壞,但意思是您不能損壞任何東西)。
如果您遇到錯誤,在回饋頁面介紹您要嘗試進行的操作,並且我們將很高興幫助。
注意:如果你在濫用一個hack模板以動態地生成模板資料,那麼儲存之前無法檢查錯誤。
請注意:資訊的每項都被引號包圍(true和false除外),且並用逗號與下一項分開(除非這是最後一個)。
類型參數
"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編輯器)中,與沒有模板資料的模板相比, | |
| string |
效果 在所有的主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中,與 | |
| line |
效果
| |
| content |
效果
| |
| unbalanced-wikitext |
效果
| |
| wiki-page-name |
效果 在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中, | |
| wiki-file-name |
效果
| |
| wiki-template-name |
效果 在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中, | |
| wiki-user-name |
效果 在所有主要的編輯器(視覺化編輯器、2017版wikitext編輯器和帶有TemplateWizard的2010版wikitext編輯器)中, | |
| number |
效果
帶有其他參數
| |
| boolean | "boolean"的值用於只能為true、false或者未知。 根據手冊,它用於表現為「1」、「0」或者空白值。
效果 如果帶有 | |
| date | "date"用於YYYY-MM-DD(ISO 8601)格式的日期,例如2014-05-22。 模板資料手冊也指定了ISO 8601的日期時間組合,例如2014-05-22T16:01:12Z,但是實際上沒有主要的編輯介面會使用此功能,且大多數維基媒體模板參數會分開接收日期和時間。
效果
帶有其他參數
| |
| 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" // <-- 这些地方不应该有引号。
它們是布林值,而不是字串,因此不需要引號。
要修復這個,移除掉這些參數的true或false旁的引號。
屬性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以幫助尋找語法中的錯誤的工具。
- 此wiki上的所有帶模板資料的模板列表
- 使用dewiki template TemplateData:模板資料顯示在框中,且該模板被添加到有模板資訊的分類當中。
- https://query.wikidata.org/和Query Helper