FANDOM


最近在尝试编辑Quotes,将其切换到两行展示的模式。在用姜太公大法屡次失败后,决定去看了wikimedia的模板语法,做个解析和记录。

参考:

WikiMedia的模板介绍 Fandom的模板参数介绍

饥荒quotes模板的互相引用

当前在页面中编辑引用的是Quotes,其背后还有两个相关“子模板”,它们之间的互相引用是:

QuotesQuotes/TabTwoRowsQuote

Quote 定义最基本的中英双语展示 Quotes/TabTwoRows 定义两行形式的架构 Quotes 定义每个人物的顺序(行列数)

在文章页面中使用"{{Quotes}"来调用此模板,会向它传递如下三个参数:

Wilson = Wilson台词|Wilson_en = Wilson's en quote|Source = 此台词来源|Choose = 默认展示某人台词

Quotes模板会调用并传递给Quotes/TabTwoRows如下几个参数:

1 = Wilson的台词|2 = Wilson|3 = 列数|4 = 行数|5 = source|6= choose|name = 威尔逊中文名|en = Wilson's en quote

Quotes/TabTwoRows会调用并传递给Quote模板如下几个参数

台词|角色|某时刻|Wilson's en quote

对模板代码的解读

Quote模板

此模板一般不会改动,向其传入"变量1_台词|变量2_角色|变量3_来源|en = 变量en_英文台词"可以得到如下显示:

"变量en_英文台词"
变量1_台词

– 变量2_角色,变量3_来源

变量1,2,3的位置顺序不能更改,变量en的位置可以任意放置

Quotes/TabTwoRows模板

Quotes TabTwoRows Code

此模板相当于搭建了一个骨架,定义出左右、上下人物图标的间隔(代码大部分来源于英文Wiki) 其接收的参数是:

1 = Wilson的台词|2 = Wilson|3 = 列数|4 = 行数|5 = source|6= choose|name = 威尔逊中文名|en = Wilson's en quote

代码里:

<div class="{{#if:{{{6|}}}|DSWHoverTab DSWHoverTabDefault|DSWHoverTab}}">

这一行根据传入的第六个参数“6=choose”来启用DSWHoverTab DSWHoverTabDefault或者DSWHoverTab

<div class="DSWHoverTabSelector" style="position:absolute;left:calc({{{3|0}}} * 25px);top:calc({{{4|0}}} * 26px); width:25px; padding-left:3px">[[File:{{#ifeq:{{{2|}}}|Maxwell|Waxwell|{{{2|<noinclude>Abigail build.png</noinclude>}}}}}<includeonly> Portrait.png</includeonly>|20px|link=]]</div>

这一行根据传入的行列数(3 = 列数|4 = 行数)计算位置,根据传入的第二个参数“2 = Wilson”来调用Wilson_Portrait.png图像

{{Quote|{{{1|<noinclude>台詞</noinclude>}}}|{{#if:{{{name|}}}|{{{name|}}}|{{{2|<noinclude>角色</noinclude>}}}}}|{{{5|<noinclude>某時刻</noinclude>}}}|en={{{en|<noinclude>English source</noinclude>}}}}}

这一行调用{{Quote}}模板,来把传入的参数“1 = Wilson的台词|2 = Wilson|5 = source|en = Wilson's en quote”显示出来

Quotes模板

这个模板就是在词条页面使用{{Quotes}}调用的模板了。 在这个模板的定义里,默认的人物展示顺序是(此处和英文wiki不同): (基础人物)(联机独有人物) (SW和HAM独有人物) 注:把Wagstaff放入基础人物里了,因为如此重要的一个人物,在可以预见的未来他一定会加入联机中。

-->{{#if:{{{wigfrid|<noinclude>y</noinclude>}}}|{{Quotes/TabTwoRows|{{{wigfrid|<noinclude>Wigfrid 的台詞</noinclude>}}}|Wigfrid|{{#if:{{{wagstaff|<noinclude>y</noinclude>}}}|9|8}}|0|{{{source|<noinclude>於某時某刻</noinclude>}}}|{{#ifeq:{{{choose|}}}|wigfrid|default}}|name=薇格弗德|en={{{wigfrid_en|<noinclude>Wigfrid's English quote.</noinclude>}}}}}}}<!--

解释一下其中一段代码吧,其他代码都是类似的 “-->”和“<!--”中间的内容是生效的内容;开头先用#if判断wigfrid的台词是否有在词条页面赋值,若赋值之后调用{{Quotes/TabTwoRows}}模板来显示wigfird的台词;然后向{{Quotes/TabTwoRows}}模板中传入参数“wigfrid = Wigfrid的台词|2 = Wigfrid|3 = 列数|4 = 行数|5 = source|6= choose|name = 威尔逊中文名|en = Wilson's en quote”;其中

{{#if:{{{wagstaff|<noinclude>y</noinclude>}}}|9|8}}
这一小部分用来判断是否存在wagstaff台词。若存在wagstaff台词(联机词条),则wigfrid的列位置是9;反之(单机词条)则是8
除了特别提示,社区内容遵循CC-BY-SA 授权许可。