Help:解析器函数

来自神奇宝贝百科

解析器函数是一类能够通过参数确定显示的文字和效果的函数。

当模板等页面在通过嵌入使用时,解析器函数能够为模板参数提供判断函数等,实现不同参数的不同显示效果。

使用方法

使用方法如下:

{{#函数名: 参数1 | 参数2 | 参数3... }}

解析器函数也可以被subst替换引用:

{{subst:#函数名: 参数1 | 参数2 | 参数3... }}

在神奇宝贝百科常用的几个解析器函数如下:

#expr

这个函数计算并返回数学表达式的结果。例如,{{#expr: 1+2+3+4+5 }}的计算结果是15{{#expr: 0 and pi }}(and为且运算,pi为圓周率)的计算结果是0

#if

这个函数判断一个字符串是否为空。只包含空格的字符串被视为空字符串。使用方法:

{{#if: 输入 | 输入为非空的输出 | 输入为空的输出 }}

例如,{{#if: 神奇宝贝百科 | 水跃鱼 | 妙蛙种子 }} 的输出为 水跃鱼

字符串内容会被处理为纯文本,因此数学表达式不会被计算。这个函数可以被嵌套。

一般地,在模板中使用时,为了使参数未赋值时也能正确显示,应为参数指定默认参数(一般为空),如:

{{#if: {{{1|}}} | 水跃鱼 | 妙蛙种子 }}(指定参数默认为空,默认输出为“妙蛙种子”)

#ifeq

这个函数判断两个输入字符串是否相同,并根据结果输出两个字符串的其中一个。使用方法:

{{#ifeq: 输入a | 输入b | 输入a和b相同时 | 输入a和b不同时 }}

例如,{{#ifeq: 水跃鱼 | 水躍魚 | yes | no }} 的输出为 no

如果两个字符串均为数字,则函数会进行数值的比较。如果需要更多的比较和输出字符串,请考虑使用函数#switch。

#ifexist

这个函数将一组字符串作为输入,并翻译成页面标题,然后根据在神奇宝贝百科上是否存在该页面而返回对应的值。

{{#ifexist: 页面标题 | 若页面存在 | 若页面不存在 }}

只要页面存在就会判定为true,即便那个页面是空白的(例如空分类和一些不包含任何可视内容的页面),或者是重定向页。只有当页面是红链时判定为false,包括那些曾经存在却被删除的页面。

这个解析器函数会比其他函数耗费更多的服务器资源,故当一个页面的#ifexist函数和其他函数一起超过了页面的节点数限制,会使超过限制的函数出现计算错误的现象。建议使用CSS中a.new(不存在的链接)和a:not(.new) (存在的链接)选择器来替代大量的#ifexist函数。

#switch

这个函数能够将输入字符串和几种可能的情况进行比较判断是否相同,并根据结果输出对应情况的字符串。使用方法:

{{#switch: 输入 | 情况a = 输出a | 情况b = 输出b| ... | #default = 与以上情况都不相符的输出 }}

也可以省略“#default =”:

{{#switch: 输入 | 情况a = 输出a | 情况b = 输出b| ... | 与以上情况都不相符的输出 }}

当几种情况的输出结果相同时:

{{#switch: 输入 | 情况a = 输出a | 情况b | 情况c | 情况d = 输出bcd | ... | 与以上情况都不相符的输出 }}

例如,{{#switch: 水跃鱼 | 水跃鱼|水躍魚={{MSP|258}} | 妙蛙种子|妙蛙種子={{MSP|001}} |}} 的输出为 {{#switch: 巨沼怪 | 水跃鱼|水躍魚={{MSP|258}} | 妙蛙种子|妙蛙種子={{MSP|001}} |}} 的输出为 (输出结果为空)。

因为#switch中使用了等号(=),故在函数中需要显示等号时,应使用{{=}}替代。在模板中使用时,和#if相同,为了使参数未赋值时也能正确显示,应为输入参数指定默认参数为空。

参见