七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

模組:角色連結/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模式。

用法

創建模板

如要為某部遊戲創建角色連結模板,可參考以下步驟操作:

步驟
  • 創建顏色模板:為該遊戲創建獨立的顏色模板,模板的參數應與{{color}}類似,即匿名參數1用於指定顏色,匿名參數2用於指定要上色的文字。參考代碼如下:
    {{color|{{#switch:{{{1|}}}
    | 颜色1 = #颜色代码1
    | 颜色2 = #颜色代码2
    ...
    | #default = black
    }}|{{{2|}}}}}
    更實用的版本參見{{genshincolor}}。亦可不新建模板而選用默認的{{color}},在數據庫為各個角色直接指定顏色代碼。
  • 創建數據庫模塊:新建Module:角色链接/data/xxx,記錄每個可控角色對應的顏色(可選)、條目名(必填)、顯示內容(可選)和文件名(可選)。參考格式如下:
    return {
      ["角色名1"] = {"颜色1", "条目名1"},
      ["角色名2"] = {"颜色2", "条目名2"},
      ["角色名3"] = {"颜色3", "条目名3", display="显示内容3"},
      ...
    }
    若僅使用個別輸出模式,可視情況略去其中部分字段。例如,不考慮使用常規模式時可略去顏色字段:
    return {
      ["角色名1"] = {link="条目名1"},
      ["角色名2"] = {link="条目名2"},
      ["角色名3"] = {link="条目名3", display="显示内容3"},
      ...
    }
  • 創建角色連結模板:新建角色連結模板,內容為:
    {{#invoke:角色链接|main|database=数据库名|color=颜色模板名}}

調用模板

調用角色連結模板時,將要創建連結的角色名作為參數傳入,即:{{角色链接模板|角色名1|角色名2|角色名3}}。

模板基礎功能如下:

  • 對於每個角色參數,嘗試在數據庫中查找對應角色,獲取顏色、條目名,並生成帶顏色的連結:[[条目名|{{颜色模板|颜色|角色名}}]]。
  • 若數據庫中的對應角色還指定了顯示內容,則在生成連結時會用其代替角色名:[[条目名|{{颜色模板|颜色|显示内容}}]]。
  • 若傳入多個角色參數,則會在各個角色的條目名之間添加由sep參數指定的分隔符。

參數格式

調用角色連結模板時,可用,(全形逗號)或,(半角逗號)重新指定顯示內容,即:{{角色链接模板|角色名,显示内容}}。

  • 由,,指定的顯示內容優先級最高,將覆蓋數據庫提供的顯示內容。

在此基礎上,還可用@重新指定顏色,即:{{角色链接模板|条目名,显示内容@颜色}}。

  • 使用@指定顏色時,將跳過數據庫查詢,直接用指定的條目名、顯示內容和顏色構建連結。
  • 也可單獨使用@,即:{{角色链接模板|文字@颜色}}。此時將只會生成帶顏色的文字,不會生成連結。

輸出模式

plain模式
  • plain模式下,參數格式與常規模式相同,但生成連結時不會調用顏色模板進行上色,即輸出格式為:[[条目名|角色名]]。
image模式
  • image模式下,輸出格式將為:[[File:文件名|link=条目名]]。
  • 對於每個角色,必須採用一種方式指定文件名:
    1. (推薦)在數據庫中用image字段記錄文件名。
    2. 使用,,提供文件名,即:{{角色链接模板|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/異環