社区中心

登入的用戶可自由切換簡/繁字體喔!

了解更多

社区中心
Advertisement
社区中心
此扩充功能已在Fandom上预设启用

parser函数(Parser functions)是使用于MediaWiki的一些特殊语法,可以扩展 模板的功能使用逻辑运算。当使用的时候,parser函数会使用式子中的变量得出特定的结果。本功能目前在Fandom是预设开放的。

Parser函数的写法与模板相同,放在波型括号({{}})之中。可能用一个冒号或是数字符号(#) 标示之后带出function名称 (或两者都用,例如 {{#if:}}).

在一个wiki中可以使用的parser函数会列在Special:Version

使用步骤

  1. 确认适合你想要达成作用的parser函数。有许多种类的parser函数,因此需要先花时间作一了解。
    在这些步骤说明中有连结到各个函数更详细介绍页面的资讯。
  2. 确认你想要用的函数的合适语法。
    在这个步骤指引中,我们会使用{{#ifexpr:}} (if expression) parser函数,该函数是各Fandom站预设启用的。它的语法是:
    {{#ifexpr: 式子 | 如果为真时显示为 | 如果为假时显示为 }}
  3. 填写语法。
    {{#ifexpr: 1 > 0 | 是 | 否 }}
    在上面的例子中,我们填写了数学的式子,当1>0为正确时,设定函数显示“是”,1>0为错误时显示为“否”。
  4. 储存页面并确认函数得出的结果如你的预期。在我们的例子中,应该要显示为“是”,因为1的确就是大于0。
    {{#ifexpr: 1 > 0 | 是 | 否 }}.
    注意当我们改变了式子,而让显示值一样的时候会变成如何,该等式被证明是错误,因为0不会大于1,因此会得出“否”
    {{#ifexpr: 1 < 0 | 是 | 否 }}.

上述的例子可能看起来很笨,因为大家都知道 1 > 0, parser函数的效力在用一个变量的时后就能展现出来。例如假如你正在设计一个关于电视节目的讯息框。你希望显示角色的年纪,并借此判定他是否是成年人。

如果在讯息框中有{{#ifexpr: {{{年紀}}} >= 18 | 這個角色是成年人 | 這個角色未成年}},“年纪”这个变量中的数值大于等于18时,最后会显示“这个角色是成年人” ,当小于18时,会显示“这个角色未成年”

内建于MediaWiki的parser功能

MediaWiki软件本身就有内建许多parser函数功能:完整的列表可见于 MediaWiki.org,本页则列出其中最有用的。

{{fullurl:}}
显示特定页面的完整网址
{{fullurl:Help:內容}}https://community.fandom.com/zh/wiki/Help:%E5%85%A7%E5%AE%B9
{{#language:}}
将一个语言代码转换为该语言在该语言中的名称
{{#language:zh}} → 中文
{{lc:}}
让一段字母变成小写 ({{uc:}}则刚好相反)。
{{lc:CASE}} → case
{{ns:}}
写出命名空间号码 就得出命名空间的名称。
{{ns:4}} → 社区中心
{{plural:}}
提供数值1的时候,显示单数的用词,提供数值2的时候,显示复数的用语。
{{plural:1|is|are}} → is
{{plural:2|is|are}} → are

Parser函数扩展

Parser函数扩展使用简单的逻辑而产生实用的代码。

The Parser函数扩展是一个常用的MediaWiki扩展功能,它增加了许多有用的parser函数。这个扩展目前在Fandom是预设开启使用的。该扩展中也包括了已不再使用的扩展StringFunctions中大部分的函数,其中最常用的是 {{#explode}}.

Parser函数扩展中有包括数学运算、如果/其他 等陈述、以及时间等等函数。要看这些函数的完整列表以及如何使用它们,请参见:扩展的官方帮助页面(英文)

其他扩展

Fandom上还有很多其他常用的扩展功能,其中还有一些parser函数。以下是一些常见的。

  • Arrays - 增加 {{#arraydefine}}, {{#arrayprint}}, {{#arraysearcharray}}.
  • Semantic MediaWiki - 增加 {{#ask}}, {{#set}}, {{#show}}.
  • Semantic Forms - 增加 {{#formlink}}, {{#forminput}}, {{#arraymap}}
  • Simple Calendar - 增加 {{#calendar}}
  • Variables - 增加 {{#var}}, {{#vardefine}}, {{#vardefineecho}}.

因此如果某个扩展有你感兴趣的函数在里面,请参见MediaWiki.org上该扩展的说明页面。

参见

Advertisement