模組:角色連結/doc
此頁面為 Module:角色链接 的說明文件
本模塊為《原神》《崩壞:星穹鐵道》《絕區零》等專題通用的模塊,可封裝成各專題的角色連結模板,用於為遊戲中的可控角色創建帶顏色或不帶顏色的內部連結,以免在編寫條目時處理繁瑣的消歧義。
參數說明
database:數據庫名稱,對應Module:角色链接/data/xxx中的xxx。mode:輸出模式,可選值如下:- (空):常規模式,生成帶顏色的內鏈。
plain:無顏色模式,生成不帶顏色的普通內鏈。image:圖片模式,生成含內鏈的圖片。
sep:多個角色連結之間的分隔符,默認為空格。color:顏色模板名稱,用於常規模式,默認為color(即{{color}})。imageFormat:圖像文件名格式,用於圖片模式,默認為%s。詳細說明見#輸出模式。- 匿名參數:角色名。
以上參數均為parentFirst(可在調用模塊編寫模板時傳遞參數,也可在調用模板時傳遞參數,後者優先)。
數據庫格式
本模板通過外部數據模塊(Module:角色链接/data/xxx)管理角色數據,該模塊應返回一個Lua表,其鍵為角色名,值為包含角色信息的子表。每個角色信息子表可包含以下字段:
[1]或color:用於着色的顏色值,用於常規模式。[2]或link:角色條目名,用於所有模式。display:連結的默認顯示文本,用於常規和plain模式。若未提供,則使用角色名作為默認顯示文本。image:圖像文件名,用於image模式。
用法
創建模板
如要為某部遊戲創建角色連結模板,可參考以下步驟操作:
| 步驟 |
|---|
|
調用模板
調用角色連結模板時,將要創建連結的角色名作為參數傳入,即:{{角色链接模板|角色名1|角色名2|角色名3}}。
模板基礎功能如下:
- 對於每個角色參數,嘗試在數據庫中查找對應角色,獲取顏色、條目名,並生成帶顏色的連結:
[[条目名|{{颜色模板|颜色|角色名}}]]。 - 若數據庫中的對應角色還指定了顯示內容,則在生成連結時會用其代替角色名:
[[条目名|{{颜色模板|颜色|显示内容}}]]。 - 若傳入多個角色參數,則會在各個角色的條目名之間添加由
sep參數指定的分隔符。
參數格式
調用角色連結模板時,可用,(全形逗號)或,(半角逗號)重新指定顯示內容,即:{{角色链接模板|角色名,显示内容}}。
- 由
,,指定的顯示內容優先級最高,將覆蓋數據庫提供的顯示內容。
在此基礎上,還可用@重新指定顏色,即:{{角色链接模板|条目名,显示内容@颜色}}。
- 使用
@指定顏色時,將跳過數據庫查詢,直接用指定的條目名、顯示內容和顏色構建連結。 - 也可單獨使用
@,即:{{角色链接模板|文字@颜色}}。此時將只會生成帶顏色的文字,不會生成連結。
輸出模式
- plain模式
- plain模式下,參數格式與常規模式相同,但生成連結時不會調用顏色模板進行上色,即輸出格式為:
[[条目名|角色名]]。
- image模式
- image模式下,輸出格式將為:
[[File:文件名|link=条目名]]。 - 對於每個角色,必須採用一種方式指定文件名:
- (推薦)在數據庫中用
image字段記錄文件名。 - 使用
,,提供文件名,即:{{角色链接模板|mode=image|角色名,文件名}}。
- (推薦)在數據庫中用
- 使用
imageFormat參數,可以避免在數據庫中記錄文件名的重複部分。例如,若角色頭像文件名均為Icon_xxx.png格式,則只需在數據庫中記錄image="xxx",並在使用模塊時將imageFormat設置為Icon_%s.png。模塊會將%s替換為數據庫中對應角色的image字段。- 使用
,,手動指定文件名時,imageFormat參數不會生效,應提供完整文件名。
- 使用
- 如需修改圖像參數,可用
{{!}}直接寫在文件名後。例如,使用imageFormat參數時,可以這樣指定圖像尺寸:{{角色链接模板|mode=image|imageFormat=Icon_%s.png{{!}}50px|角色名}}。輸出格式將為:[[File:Icon_文件名.png|50px|link=条目名]]。
plain和image模式下,由@指定的顏色將被忽略,@僅作為跳過查表、手動指定條目名的標誌。此時可略去@後的內容不寫:{{角色链接模板|条目名,显示内容@}}。
| 參數格式 | 查表情況 | 各模式下輸出格式 | ||
|---|---|---|---|---|
| (常規) | plain | image | ||
name
|
dbColor,link,dbDisplay
|
[[link|{{ColorTemplate|dbColor|dbDisplay}}]]
|
[[link|dbDisplay]]
|
[[File:image|link=link]](若查到 image數據)
|
dbColor,link
|
[[link|{{ColorTemplate|dbColor|name}}]]
|
[[link|name]]
| ||
| 無對應角色 | name
|
name
|
無輸出 | |
name,display
|
dbColor,link,dbDisplay
|
[[link|{{ColorTemplate|dbColor|display}}]]
|
[[link|display]]
|
[[File:display|link=link]]
|
dbColor,link
| ||||
| 無對應角色 | display
|
display
|
[[File:display|link=]]
| |
name@color
|
不查表 | {{ColorTemplate|color|name}}
|
name
|
無輸出 |
name,display@color
|
不查表 | [[name|{{ColorTemplate|color|display}}]]
|
[[name|display]]
|
[[File:display|link=name]]
|
展示數據
可使用模塊:角色連結/預覽生成表格,用於展示數據庫中的角色數據。
直接獲取數據
可使用fetch函數直接獲取數據。詳見原始碼。
示例
使用常規模式
以{{原神角色連結}}為例(可將鼠標放在連結上,查看左下角顯示的連結地址):
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例 |
|---|
|
安柏、達達利亞,公子、特瓦林,東風之龍、西風騎士團,西風騎士團、原石 |
{{原神角色链接|sep=、|安柏|达达利亚,公子|特瓦林,东风之龙@风|西风骑士团,西风骑士团@风|原石@五星}}
|
相當於代碼:
[[安柏(原神)|{{genshincolor|火|安柏}}]]、[[达达利亚|{{genshincolor|水|公子}}]]、[[特瓦林|{{genshincolor|风|东风之龙}}]]、[[西风骑士团|{{genshincolor|风|西风骑士团}}]]、{{genshincolor|五星|原石}}
使用特殊模式
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例 |
|---|
{{原神角色链接|mode=image|imageFormat=Genshin charaicon %s.png{{!}}30px|派蒙}} {{原神角色链接|mode=plain|派蒙}}
|
自定義顯示內容
由,,指定的顯示內容並不限於文字,也可包含模板或HTML標籤等。「顏色模板」也未必只能是顏色模板,可按實際需要用該模板添加各種格式。
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例 |
|---|
|
派蒙,真王、原初之理、原初之主、天的主人、高天的大主宰、「七重災厄之主」派凱蒙寧 |
{{原神角色链接|派蒙,{{黑幕|真王、原初之理、原初之主、天的主人、高天的大主宰、「七重灾厄之主」派凯蒙宁}}}}
|
在顯示內容中添加HTML標籤時,需要避免等號前的部分被當做模板參數名,對此可以採用以|1=指定參數名等方法。
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例 |
|---|
|
派蒙,白色高智能浮游助手單元 |
{{原神角色链接|1=派蒙,<span style="font-size:1.2em;">白色高智能浮游助手单元</span>}}
|
顯示內容支持以<nowiki>標籤包裹的方式傳入。
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例 |
|---|
|
派蒙,<span style="font-size:1.2em;">最好的伙伴!</span> |
{{原神角色链接|派蒙,<nowiki><span style="font-size:1.2em;">最好的伙伴!</span></nowiki>}}
|
替換引用
編寫條目時,添加如下代碼:
{{subst:#invoke:角色链接|main|database=数据库名|mode=plain|角色名}}
則當保存頁面時,這段代碼將被自動替換為已完成消歧義且未上色的角色連結。因為過於複雜,不建議人類使用。
目前正在使用該模塊的模板
| 模板 | 數據庫 |
|---|---|
| {{原神角色連結}} {{原神/可控角色}} | Module:角色連結/data/原神 |
| {{崩鐵角色連結}} | Module:角色連結/data/崩鐵 |
| {{絕區零角色連結}} {{絕區零/代理人}} | Module:角色連結/data/絕區零 |
| {{鳴潮角色連結}} | Module:角色連結/data/鳴潮 |
| {{星塔旅人角色連結}} | Module:角色連結/data/星塔旅人 |
| {{異環角色連結}} | Module:角色連結/data/異環 |