模板:Infobox/sandbox
這是Template:Infobox(差異)的沙盒。 參見本模板的測試樣例。 |
此模板沙盒被引用於許多頁面。 為了避免造成大規模的影響,所有對此模板沙盒的編輯應先於沙盒、測試樣例或您的沙盒上測試。 測試後無誤的版本可以一次性地加入此模板沙盒中,但是修改前請務必於討論頁發起討論。 模板引用數量會自動更新。 |
此模板使用Lua語言: |
本模板為一系列「信息框」模板的元模板,亦即本模板用於構建其他模板。通常不建議在條目中直接使用此模板,但是如有需要,可以在個別「一次性」情況中直接使用。參見Help:信息框以獲取創建通用信息框的進一步方法。
用法
本模板與{{navbox}}的用法相似,但也有一些不同之處。表格中的每一行既可以是頂欄(header),也可以是成對的標籤(label)與資料(data),甚至還可以只是一個數據單元。每行只能有一種狀態,且具有優先級:當你將一行同時定義為頂欄與標籤/數據對,那麼標籤/數據對的定義將會被忽略。
編號
為方便日後更改信息框格式,header和label/data行的編號不需要完全按照1、2、3……的加一順序編寫,可以在中間預留一些行編號不用,可避免將來如要增加新行時要把該行後面的行編號一併更改。
header和label/data行的編號不可以重複,例如不可以同時使用header1和label1/data1,請使用header1、label2/data2(舉例)。
如希望大量移動編號(如為加入新label需將所有之後的label數字加一),可考慮使用模塊:IncrementParams。
參數
「查看/討論/編輯/歷史」鏈接
- name
- 「查看/討論/編輯/歷史」鏈接需要指向模板頁的名稱(name)。你可以填寫{{subst:PAGENAME}}。如果此參數未填,則「查看/討論/編輯/歷史」鏈接不會顯示。
標題
(信息框的其餘部分) |
信息框內的標題文本 | |
---|---|
(信息框的其餘部分) |
有兩種方式為一個信息框填入標題。一種是將標題填在信息框外,另一種則是填寫在信息框內。根據需要,你可以選擇其中的一種使用,亦或同時使用這兩種標題,甚至都不使用(儘管我們不推薦這樣做)。
- title
- 填寫在信息框表格外頂部的標題文本。
- above
- 填寫在信息框表格內頂部單元的標題文本。
可選項
- subheader
- 在 above 下面的次標題。subheader2是第2個次標題。
- image
- 在模板上部顯示的圖像。請使用完整的圖像語法,例如[[File:example.png|200px]],推薦使用模塊:InfoboxImage插入圖像。圖像的位置默認為居中。
在中文維基百科,一個Infobox最多可使用4個圖像參數:overimage(置頂)、image(=image1)、image2、image3,與英文維基百科的Infobox僅提供image(=image1)、image2不同。 - caption
- 位於圖像下方的說明文本。
overcaption、caption(=caption1)、caption2、caption3分別對應上面4個圖像參數。 - header(n)
- 填入第n行的頂欄文本。
- label(n)
- 填入第n行的標籤文本。
- data(n)
- 填入第n行的數據文本。
- below
- 填寫在信息框表格底部單元的文本。底部單元一般用來填寫腳註、參見及其他類似的信息。
可選的CSS風格
- bodystyle
- 應用到信息框表格全體。
- titlestyle
- 應用到信息框表格外的標題中。不建議在此處填寫背景顏色(background color),因為該處的文字位於信息框外。
- abovestyle
- 應用到信息框表格內頂部單元中。默認的風格為「
font-size:large;
」(字號設為大號),因為該單元常被用作標題。如果你希望讓頂部單元以正常字號顯示,只需在該處填寫的內容中包含「font-size:medium;
」。 - imagestyle
- 應用到信息框的圖像單元中,包括圖像下方的說明文本。但是,出於兼容性與未來修改的考慮,如果你需要設置說明文本的屬性,請使用captionstyle而不要使用imagestyle。
- captionstyle
- 應用到圖像說明文本中。
- headerstyle
- 應用到所有的頂欄單元。
- header(n)style
- 應用到第n行的頂欄單元。
- labelstyle
- 應用到所有的標籤單元。如果希望避免標籤文字折行顯示,只需在該處填寫的內容中包含「
white-space:nowrap;
」。或者例如「min-width: 4em;」。 - label(n)style
- 應用到第n行的標籤單元。
- datastyle
- 應用到所有的數據單元。
- data(n)style
- 應用到第n行的數據單元。
- belowstyle
- 應用到底部單元中。
微格式
- bodyclass
- 該參數影響信息框整體的類(class)。
- imageclass
- 該參數影響圖像的類。
- class(n)
- 該參數影響特定行數據單元的類。如果信息框沒有數據單元,則不會產生作用。
- titleclass
- 該參數影響信息框外標題的類。
- aboveclass
- 該參數影響信息框內標題的類。
通過為各個數據單元定義類名,本模板可以支持微格式信息;此處所說的類名,是根據標準定義的,且可以向機器表明信息的類型。例如,如果一個信息框使用了hCard的微格式,要在信息框內標記此微格式,則填寫以下參數:
|bodyclass = vcard
並為每一個包含了vcard所需數據單元的行添加相應的類參數:
|class1 = fn |class2 = org |class3 = tel
等等。用於顯示信息框主題的「above」和「title」也可以指定類。
請在Wikipedia:專題/微格式以獲取在維基百科添加微格式信息的進一步信息,訪問microformats.org網站亦能獲取更一般性的信息。
表格域可選項
如果表格的一行只有標籤而沒有數據,那麼該行將不會顯示。這樣可以方便編者創建選填內容的行。要讓某行成為可選項,只需填寫一個默認為空字段的參數即可:
|label5 = 人口 |data5 = {{{population|}}}
這樣的話,如果在條目中不定義「population」參數,則信息框的那一行不會被顯示。
如果表格的一行填寫的是預設格式內容(即除了參數外,還有其他內容),而又希望讓該行成為可選項的話,你可以通過「#if」語句實現。當參數為空時,令所有的內容均不被呈現。譬如,在下面的例子裡,「#if」會判斷參數「mass」是否不為空,若不為空則顯示它,並跟上「公斤」的後綴:
|label6 = 质量 |data6 = {{#if:{{{mass|}}} |{{{mass}}}千克}}
更多關於#if的用法,參見此處。
如果你希望頂欄只在其下方的某個或多個數據單元有內容時才顯示,以下的例子可以指導你如何實現:
{{Infobox |name = {{subst:PAGENAME}} |title = 可选顶栏的用例 |autoheaders = y |header1 = 可选顶栏 |label2 = 项目一 |data2 = {{{item_one|}}} |label3 = 项目二 |data3 = {{{item_two|}}} |label4 = 项目三 |data4 = {{{item_three|}}} }}
這樣,只有在參數「item_one」、「item_two」或「item_three」其中之一被填寫時,「header1」才會被顯示。如果上述三個參數均未被定義,則頂欄不會顯示。
過去在實現這一功能時,需嵌套冗長的「#if」語法,現在只需設置|autoheaders=y
即可。
用例
注意到,當標籤脫離數據單元單獨定義時,所定義的那一行並未出現在信息框內;而當頂欄與標籤、數據定義在同一欄時,頂欄將會優先顯示。
在下面的例子中,定義了「bodystyle = width:20em;
」和「labelstyle = width:33%;
」。
標籤1 | 數據1 |
---|---|
標籤2 | 數據2 |
標籤3 | 數據3 |
頂欄4 | |
標籤5 | 數據5:嘰里呱啦稀里嘩啦。 |
下方文本 | |
完整模板
(備註:本模板目前最多可以同時處理80行表格,一般的信息框模板只會用到前20行的參數,因此此處省略了後60行的參數。需使用時可依此類推。微格式「class」參數亦被省略,因其不常被用到,使用時請自行添加。)
{{Infobox | name = {{subst:PAGENAME}} | child = {{{child|}}} | subbox = {{{subbox|}}} | italic title = {{{italic title|no}}} | bodystyle = | titlestyle = | abovestyle = | subheaderstyle = | title = | above = | subheader = | imagestyle = | captionstyle = | image = | caption = | image2 = | caption2 = | headerstyle = | labelstyle = | datastyle = | header1 = | label1 = | data1 = | header2 = | label2 = | data2 = | header3 = | label3 = | data3 = | header4 = | label4 = | data4 = | header5 = | label5 = | data5 = | header6 = | label6 = | data6 = | header7 = | label7 = | data7 = | header8 = | label8 = | data8 = | header9 = | label9 = | data9 = | header10 = | label10 = | data10 = | belowstyle = | below = }}