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

模块:角色链接/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/异环