跳至內容

模組: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 有序列表(數字標識和字母標識)
  1. 第一項
  2. 第二項
  3. 第三項
horizontal_ordered 水平有序列表
  1. 第一項
  2. 第二項
  3. 第三項
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 functions
  • function = 要調用的模組中的函數名稱。如果這個值指定了,則將整個模組作為一個表,取其相應的域作為修改函數。如果這個值沒有指定,則將整個模組作為修改函數。

比如,如果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|第一項|第二項|第三項
|replacement=[[User:%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|第一項|第二項|第三項}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項
您所輸入的

模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|start=3}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項
您所輸入的

模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|type=i}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項
您所輸入的

模板連結:{{#invoke:list|ordered|第一項|第二項|第三項|liststyletype=lower-greek}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項

水平有序列表

[編輯原始碼]
您所輸入的

模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項
您所輸入的

模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項|start=3}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項
您所輸入的

模板連結:{{#invoke:list|horizontal_ordered|第一項|第二項|第三項|indent=2}}

您所看到的
  1. 第一項
  2. 第二項
  3. 第三項

直接連接

[編輯原始碼]
您所輸入的

模板連結:{{#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=或}}

您所看到的

第一項、​第二項或第三項