模組:List/doc
此頁面為 Module:List 的說明文件
本模組可以輸出各種類型的列表。目前,它支持帶點的無序列表、不帶點的無序列表、水平列表、有序列表(數字的或字母的)、水平有序列表、直接連接列表和用自然語言連成的列表。它允許對各個列表計畫進行單獨的css樣式。
用法
[編輯原始碼]快速使用
[編輯原始碼]模板链接:{{#invoke:list|函数|第一项|第二项|第三项|…}}
所有參數
[編輯原始碼]- 位次參數
- 列表的內容
- start
- 有序列表的開始數字
- type
- 有序列表的標序類別
- liststyletype或list-style-type
- 有序列表標記的類型(使用CSS)
- class
- 類
- style
- 樣式
- liststyle
- 列表的樣式
- itemstyle
- 列表項的樣式
- item1style、item2style、item3style
- 第1項的樣式、第2項的樣式、第3項的樣式
- item1value、item2value、item3value
- 第1項的值、第2項的值、第3項的值
- indent
- 水平列表的縮進
- arguments
- 指定參數的來源
- modification
- 指定一個模組對各項進行修改
- function
- 將模組作為一個表,指定其內函數進行修改
- call
- 對每個參數調用一個模板,其模板名稱即為這個值
- content_as
- 調用模板時,將列表項的原始內容作為值,其對應的鍵即為這個content_as的值(可以是數字或字串),預設為1
- para_參數名稱
- 調用模板時的參數
- replacement
- 列表的每一項為將這個值中的%s替換為原始內容之後的值
- prefix
- 列表每一項的前綴
- suffix
- 列表每一項的後綴
- trim
- 是否移除各參數的兩側空格並忽略空白參數。
從上級模板傳遞下來的參數
[編輯原始碼]模板链接:{{#invoke:list|函数}}
函數
[編輯原始碼]| 函數名稱 | 產生 | 範例輸出 |
|---|---|---|
bulleted
|
帶點的無序列表 |
|
unbulleted
|
不帶點的無序列表 |
|
horizontal
|
水平無序列表 |
|
ordered
|
有序列表(數字標識和字母標識) |
|
horizontal_ordered
|
水平有序列表 |
|
concat
|
直接連接(本站特有) | 第一項第二項第三項 |
list_to_text
|
使用自然語言連接(本站特有) | 第一項、第二項和第三項 |
參數
[編輯原始碼]基本參數
[編輯原始碼]- 位次參數(positional parameters)(
1、2、3……)——這些是列表項。如果沒有列表項,模組不輸出任何值。 start——設置有序列表的開始。可以是數字序列列表的開始數字,也可以是字母列表的開始字母。水平有序列表只支持數字。type——有序列表使用的標識類別。比如,數字「1」(預設)、大寫字母「A」、小寫字母「a」、大寫希臘字母「I」、小寫希臘字母「i」。水平有序列表不支持。參考liststyletype參數。liststyletype或list-style-type——有序列表標識的類別,使用CSS樣式,並且使用html標記比type參數擁有更多的可行類型。可用的值都列舉在MDN的list-style-type頁面。不同瀏覽器可能支持性不同。class——列表標籤的自訂類。本模組不使用div標籤。style——列表標籤的自訂css樣式,例如,font-size: 90%;。liststyle——同style參數。itemstyle——對於所有列表項的自動css樣式。格式同style參數。item1style、item2style、item3style……——為每個列表項的自訂css樣式。格式同style參數。item1value、item2value、item3value……對給定列表項的自訂值。給定一個,後面的值會從這個指定的值開始增加。這個值應該是正整數。(僅對有序列表有效。)indent——縮進列表,僅適用於水平列表和水平有序列表。值必須是一個數字,比如2。縮進成倍計算,是指定值的1.6倍。未指定時為零。arguments——參數的來源。self表示只接受透過#invoke調用模組時的參數,parent表示使用調用了此模組的模板時傳入的參數,template表示位次參數視為parent,賦名參數為self,both表示同時考慮二者,且parent優先。預設為both。separation或sep——在類型為code或list_to_text時,將各項連接起來。conjunction或conj——在類型為list_to_text時,最後一項與倒數第二項的連接。
修改列表各項內容
[編輯原始碼]本模組支持對列表各項內容進行統一的修改。共有以下幾種修改方法。注意以下這些修改方法只能選擇一種,或者全都不選。
為了表述方便,我們將模板參數中輸入的每一項內容稱為原始內容,修改後的每一項的內容稱為修改後內容,這個用於修改的函數(如有)稱為修改函數。
調用模組
[編輯原始碼]可以對每一項調用特定的模組進行修改。其參數用法為:
modification= 要調用的模組的頁面名稱。當這個頁面不存在時無效。當這個頁面未指定而function指定了時,這個模組名稱預設為Module:List/preset functionsfunction= 要調用的模組中的函數名稱。如果這個值指定了,則將整個模組作為一個表,取其相應的域作為修改函數。如果這個值沒有指定,則將整個模組作為修改函數。
比如,如果modification=Module:a,而function是b,則這個修改函數(記為modify)可以理解為:
modify = require 'Module:a'.b
如果modification=Module:a,而function沒有指定,則這個修改函數可以理解為:
modify = require 'Module:a'
調用模板
[編輯原始碼]我們可以將原始內容作為模板的參數,同時加入其它參數,將模板展開後的結果作為修改後內容。
其參數用法為:
call= 要調用的模板名稱,可以省略命名空間前綴。content_as= 要將原始內容作為調用的模板的哪個參數,預設為要調用的模板的第一個參數,即預設值為1。para_参数名称= 指定調用模板時加入的其他參數。
為了更好地理解,我們將各個代碼的用法和等價效果進行比較。
| 代碼 | 等價效果 |
|---|---|
{{#invoke:list|list_to_text|第一項|第二項|第三項
|call=a}}
|
{{a|第一項}}、{{a|第二項}}和{{a|第三項}}
|
{{#invoke:list|list_to_text|第一項|第二項|第三項
|call=a|content_as=b}}
|
{{a|b=第一項}}、{{a|b=第二項}}和{{a|b=第三項}}
|
{{#invoke:list|list_to_text|第一項|第二項|第三項
|call=a|content_as=b|para_c=d}}
|
{{a|b=第一項|c=d}}、{{a|b=第二項|c=d}}和{{a|b=第三項|c=d}}
|
{{#invoke:list|list_to_text|第一項|第二項|第三項
|call=a|para_2=d}}
|
{{a|第一項|d}}、{{a|第二項|d}}和{{a|第三項|d}}
或: {{a|1=第一項|2=d}}、{{a|1=第二項|2=d}}和{{a|1=第三項|2=d}}
|
請注意這種修改方法比較占開銷,因此這種方法能避免就避免。
替換格式
[編輯原始碼]你可以指定一個被替換文本,將被替換文本中的「%s」替換為原始內容之後即為修改後內容。這有點類似於string.format函數,但是可以替換可以多次,且不支持%a、%d等特殊用法。
{{#invoke:list|bulleted|第一項|第二項|第三項
|replacement=這個%s和那個%s}}
- 這個第一項和那個第一項
- 這個第二項和那個第二項
- 這個第三項和那個第三項
前後綴
[編輯原始碼]你可以直接給原始內容加入前綴和後綴。這個當然也可以透過替換文字來實現,不過直接加前後綴顯然更加簡便。
{{#invoke:list|bulleted|第一項|第二項|第三項
|prefix=這是}}
- 這是第一項
- 這是第二項
- 這是第三項
{{#invoke:list|concat|第一項|第二項|第三項
|suffix=平安|sep=,}}
第一項平安,第二項平安,第三項平安
注意,前後綴可以同時都有,但是不能設置像|prefix={{|suffix=}}或|prefix=[[|suffix=]]這樣的參數,因為這會直接影響維基文本的解析;即使加了nowiki也不行,因為這會直接導致文本不解析。
範例
[編輯原始碼]帶點的有序列表
[編輯原始碼]模板連結:{{#invoke:list|bulleted|第一項|第二項|第三項}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|bulleted|第一項|第二項|第三項|itemstyle=color:blue;}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|bulleted|第一項|第二項|第三項|item1style=background-color:yellow;|item2style=background-color:silver;}}
- 第一項
- 第二項
- 第三項
不帶點的無序列表
[編輯原始碼]模板連結:{{#invoke:list|unbulleted|第一項|第二項|第三項}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|unbulleted|第一項|第二項|第三項|itemstyle=color:blue;}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|unbulleted|第一項|第二項|第三項|item1style=background-color:yellow;|item2style=background-color:silver;}}
- 第一項
- 第二項
- 第三項
水平列表
[編輯原始碼]模板連結:{{#invoke:list|horizontal|第一項|第二項|第三項}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|horizontal|第一項|第二項|第三項|indent=2}}
- 第一項
- 第二項
- 第三項
有序列表
[編輯原始碼]模板連結:{{#invoke:list|ordered|第一項|第二項|第三項}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|start=3}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|type=i}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|liststyletype=lower-greek}}
- 第一項
- 第二項
- 第三項
水平有序列表
[編輯原始碼]模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項|start=3}}
- 第一項
- 第二項
- 第三項
模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項|indent=2}}
- 第一項
- 第二項
- 第三項
直接連接
[編輯原始碼]模板連結:{{#invoke:list|concat|第一項|第二項|第三項}}
第一項第二項第三項
模板連結:{{#invoke:list|concat|第一項|第二項|第三項|sep=/}}
第一項/第二項/第三項
模板連結:{{#invoke:list|concat|第一項|第二項|第三項|conj=及|sep=、}}
第一項、第二項及第三項
註:separation和sep等價,conjunction和conj等價。
用自然語言連接
[編輯原始碼]模板連結:{{#invoke:list|list_to_text|第一項|第二項|第三項}}
第一項、第二項和第三項
模板連結:{{#invoke:list|list_to_text|第一項|第二項|第三項|sep=,}}
第一項,第二項和第三項
模板連結:{{#invoke:list|list_to_text|第一項|第二項|第三項|conj=或}}
第一項、第二項或第三項