Help:解析器函数

来自Minecraft基岩版开发Wiki
(重定向自Help:解释器函数

本页面主要介绍本Wiki内解析器函数(Parser Functions)(包括由扩展(Extensions)通过Parser::setFunctionHook定义)的用途和用法。

格式[编辑]

解析器函数的基本格式为: {{#函数名: 参数1 | 参数2 | ... | 参数n}} 函数名前带井号,其后由冒号开始依次传入参数,参数分隔符为管道符“|”;直接传入值的参数(未命名的参数)以数字依次命名(1、2、3……),其余有名称的参数使用等号连接参数名与值(即{{#函数名: 参数名 = 值}})。向页面中写入此代码后,后台会根据函数名调用对应函数并解析内容。解析器函数会优先运算和展开参数内的代码,即代码的解析顺序为由内到外逐一展开。

部分解析器函数不要求函数名前加上“#”,例如{{lc: ABC}}。这使得解析器函数格式更简单。

部分解析器函数可以设置禁止传入参数自动展开,也可以强制解析器展开输出内容,这有助于参数复杂的嵌套函数代码非常有用,可以有效减少<nowiki>标签的使用,精简代码。解析器函数的第一个参数必定会自动被展开,在第一个参数的内容中使用<nowiki></nowiki>通常都会引致非预期的效果,应尽量避免。

三对花括号表示传入此页面的参数,例如:{{{1}}}。其中可填入参数名,参数名可以是数字也可以是字符串,数字参数为未命名的参数。参数名后加一个管道符进行分隔,可在管道符右侧填写默认值,例如{{{1|default}}}表示参数1的默认值为“default”这个字符串。

解析器函数的所有参数一般会被自动裁剪(即去掉头尾的空白字符,例如半形空格和换行),如果需要输入纯空白字符的或由空白字符开始或结束的字符串,应使用<nowiki></nowiki>包裹输入的内容。此特性使得参数内容的前后可以随意添加空格和换行,通过适当使用可以让排版更整齐易懂。

解析器函数中不能直接使用管道符“|”作为字符串输入,这会导致其被解析为函数语法。若需输入管道符应使用{{!}},例如: {{#dplreplace: {{{1}}} | mo(d{{!}}b) | text}}

某些函数对“该参数的值为空白”及“缺少该参数”的理解会有差异,导致运算处理和最终输出出现差错,需要留意该函数有没有这种设定。如果函数突然出现不符合预期的输出,那很有可能是你忘记了对某些特殊字符转义。

函数[编辑]

anchorencode[编辑]

MediaWiki原生函数。
把输入的字符串转换成锚点编码,即网址栏中#号后面的文本。可用于生成锚点链接,但一般情况只需要[[页面名#锚点]]就行了。

格式
{{anchorencode: 锚点字符串 }}
例子
{{anchorencode: 字符串}}字符串
{{anchorencode: ABC文本 def&456+1%}}ABC_文本_def&456+1%

BASEPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的上级页面名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title/foo”。

格式
{{BASEPAGENAME: 页面名}}

BASEPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的上级页面名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title/foo”。

格式
{{BASEPAGENAMEE: 页面名}}

bidi[编辑]

MediaWiki原生函数。
标记双向书写字符串。

格式
{{bidi: 字符串}}

canonicalurl[编辑]

MediaWiki原生函数。
获取页面的完整超链接(包含域名和协议),可以选择加上请求字符串。

格式
{{canonicalurl: 页面名 | 请求字符串}}
例子
{{canonicalurl: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{canonicalurl: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

canonicalurle[编辑]

MediaWiki原生函数。
获取页面的完整超链接(包含域名和协议),可以选择加上请求字符串。

格式
{{canonicalurle: 页面名 | 请求字符串}}
例子
{{canonicalurle: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{canonicalurle: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

CASCADINGSOURCES[编辑]

MediaWiki原生函数。
返回特定页面级联保护的来源,一般情况并不会返回自身,除非该页面嵌入了自身。

格式
{{CASCADINGSOURCES: 页面名}}
例子
{{CASCADINGSOURCES: 首页}} (并不会返回自己)
{CASCADINGSOURCES: 首页/关于本站}}首页(受到首页级联保护)
{{CASCADINGSOURCES: 沙盒}} (并没有保护)

categorytree[编辑]

来自CategoryTree。
在页面中生成一个分类树,显示效果与分类页一致(例如“分类:Mojang图像”),并可以点击子分类前面的三角形展开子分类下的内容。
另外可以通过各种参数来调整显示方式和内容:

mode参数
此参数用于筛选在列表中显示的子分类及页面,效果会被namespaces参数覆盖。可用值:
  • categories:列表中只显示子分类,上限200个。
  • pages:列表中只显示子分类和页面,不显示媒体文件,上限200个。
  • all(默认值):列表中显示全部内容,包括子分类、页面和媒体文件,上限200个。
  • parents:列表中只显示父分类。
depth参数
此参数用于限制初始时子分类的最大嵌套显示深度,若为0则只会显示最顶级的那一层的分类(即输入的那个分类)。此参数只会限制初始时自动展开的嵌套层数(不过不管depth输入了多少,初始最多只会展开1层,也就是说实际上此参数只有0和1两个有效值),浏览时仍然可以通过点击子分类前面的三角形展开子分类下的内容。
hideroot参数
若把此参数设为“on”(例hideroot=on),你输入的那个分类则不会被显示在列表中。
hideprefix参数
此参数用于指定命名空间前缀的显示方式。可用值:
  • always:隐藏所有前缀,应该只在能确定所有内容页均来自同一命名空间时才使用。
  • never:显示所有前缀,分类的前缀也会被显示。
  • auto:若列表中只包含分类,前缀均会被隐藏,否则将显示所有前缀。
  • categories(默认值):隐藏分类的前缀,只显示分类以外的。
showcount参数
若把此参数设为“on”(例showcount=on),所有分类名旁边均会显示内含页面的数量。
namespaces参数
此参数用于按命名空间照筛选在列表中显示的页面,参数内容必须是一个以半形空格分隔的命名空间名称列表(例namespaces=帮助 文件),主空间可以用“-”或“0”表达。此参数会覆盖mode参数的效果。
class、style、id等参数
此函数支持一般HTML属性,可以直接为列表添加class和style(例如让列表显示在右边可以用style=float:right;)。
格式
{{#categorytree: 分类名 | 参数1 | 参数2 | ... | 参数n }}
例子
{{#categorytree: 维护 | style = float:right;}} → 效果显示在右边
{{#categorytree: 维护 | mode = parents}} → 反向获取父分类
{{#categorytree: 维护 | depth = 0}} → 深度为0,点击分类前面的三角形展开。
{{#categorytree: 维护 | depth = 0 | hideprefix = never}}
{{#categorytree: 维护 | depth = 0 | showcount = on}} → 显示内容数量
维护(8个分类)
{{#categorytree: 维护 | namespaces = 帮助 分类}} → 现在只显示帮助和分类空间下的页面(这个例子中的首页和文件会被隐藏)

count[编辑]

计算在给定字符串中特定子字符串出现的次数。子字符串为空时会使用单个半形空格为需要搜索的子字符串。需要搜索特殊字符时可以使用<nowiki></nowiki>标签。

格式
{{#count: 字符串 | 子字符串 }}
例子
{{#count:3.141592653589793238462643383|3}}7
{{#count:I like playing Minecraft}}3
{{#count:a, b, c, d | ,}}3

DEFAULTSORT[编辑]

MediaWiki原生函数。
设定页面默认在分类中的排序键,设定前默认为页面名,在添加分类时通过[[分类:分类名|排序键]]可以覆写这个默认排序键。同一页面里有两次DEFAULTSORT的时候会导致报错,可以使用选项noerror来防止,noreplace则用来防止后面的DEFAULTSORT覆写前面的DEFAULTSORT。

格式
{{DEFAULTSORT: 排序键 | 选项(noerror或noreplace)}}

DISPLAYTITLE[编辑]

MediaWiki原生函数。
修改页面显示的标题,一般用于修正由页面名符号限制印制的大小写、底线、空格错误。

格式
{{DISPLAYTITLE: 页面标题字符串}}

dowhile[编辑]

来自Loops。
直到型循环。与while类似,但此函数保证表达式至少被解析一次,即在判断条件之前先进行解析。

格式
{{#dowhile: | 条件 | 表达式}}

注意第一个参数不填。

例子
{{#vardefine: i | 0}}{{#dowhile: | {{#ifexpr: {{#var: i}} < 5 | true}}{{#vardefine: i | {{#expr: {{#var: i }} + 1}}}} | <nowiki/> * {{#var: i}} }} → 按顺序生成数字列表。

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5

dpl[编辑]

来自DynamicPageList3。

dplchapter[编辑]

来自DynamicPageList3。
截取一段文本中指定标题下的正文内容。可限制截取文本的最大字符数,如果截取内容超过设置的最大字符数,则会输出一个指向指定页面的链接,链接文本可自定义。

格式
{{#dplchapter: 文本 | 标题 | 最大字符数 | 页面名 | 链接文本}}
例子
{{#dplchapter: Some text. ==== My Headline ==== the body of the desired chapter. ==== Another Chapter ==== Its text. | My Headline}}

the body of the desired chapter.

{{#dplchapter: Some text. ==== My Headline ==== the body of the desired chapter. ==== Another Chapter ==== Its text. | My Headline | 15 | 附加包 | .. read more}} }}

→ the body of .. read more

dplmatrix[编辑]

来自DynamicPageList3。
通过缩进列表来生成一个矩阵视图。矩阵左上角是矩阵名称,第一行(顶部)和第一列(左侧)为各项目的链接,其余单元格展示项目的对应关系(“是”或“否”)。

格式
该函数有两个模式:“normal”和“flip”,其中“flip”表示交换行与列。缩进列表通过缩进来解析输入的项目,源项目(无缩进的项目)由上往下排列在矩阵的第一列,每个源项目下的目标项目(有任意宽度缩进的项目)按字符顺序由左往右排列在矩阵的第一行,同时与源项目对应形成“是”关系;通过在项目名后添加“~~”可自定义项目链接文本,文本写在“~~”后。
{{#dplmatrix: 矩阵名称 | 项目关系为“是”时显示的文本(默认为“x”) | 项目关系为“否”时显示的文本(默认为空) | 模式(默认为“normal”) | 缩进列表}}
例子
{{#dplmatrix: 伤害 |||| 玩家 ~~ Player 熔岩 ~~ Lava 箭 甜浆果丛 末影人 熔岩 ~~ Lava 水 甜浆果丛 僵尸猪灵 箭 甜浆果丛 狐狸 熔岩 ~~ Lava 箭 }} → 生成一个名为“伤害”的5x5大小的矩阵。
伤害 Lava 甜浆果丛
Player   x x x
末影人 x x x  
僵尸猪灵     x x
狐狸   x   x
{{#dplmatrix: 伤害 | <big>•</big> | . | flip | 玩家 ~~ Player 熔岩 ~~ Lava 箭 甜浆果丛 末影人 熔岩 ~~ Lava 水 甜浆果丛 僵尸猪灵 箭 甜浆果丛 狐狸 熔岩 ~~ Lava 箭 }} → 生成一个反转行与列的矩阵。
伤害 Player 末影人 僵尸猪灵 狐狸
. . .
Lava .
甜浆果丛 .
.

dplnum[编辑]

来自DynamicPageList3。
尝试猜测并提取夹藏在文本中的数字。该函数使用一套启发式规则,它可能对文本有效,也可能无效。

格式
{{#dplnum: 字符串}}
例子
{{#dplnum:this is 4711 a text with a number}}4711
{{#dplnum:well above 47 Mio. US$}}47000000
{{#dplnum:13 Mrd}}13000000000
{{#dplnum:it is 47,123 Mio}}47123000
{{#dplnum:it is 47.123,56}}47123
{{#dplnum:it is 47,000}}47
{{#dplnum:it is 4.13}}413
{{#dplnum:it is 4,13}}4
{{#dplnum:it is 0,13}}0

dplreplace[编辑]

来自DynamicPageList3。
使用正则表达式匹配一段字符串并进行替换。此函数默认对大小写敏感。

格式
{{#dplreplace: 字符串 | 正则表达式 | 要替换成的字符串}}
例子
{{#dplreplace: Bedrock Edition | /ed([a-z]*)/i | _\1}}B_rock _ition
{{#dplreplace: aBCdefGhIJ | [a-z]}}BCGIJ

dplvar[编辑]

来自DynamicPageList3。
定义或读取变量的值。

格式
定义一个或多个变量并为其赋值或为已定义的变量赋值:
{{#dplvar: set | 变量1 | 变量1的值 | 变量2 | 变量2的值 | 变量n | 变量n的值}}
设置变量的默认值:
{{#dplvar: default | 变量名 | 默认值}}
读取指定变量的值:
{{#dplvar: 变量名}}
例子
{{#dplvar: set | a | 1 | b | 2 | c | 3}}{{#dplvar: default | a | aaaa}}{{#dplvar: default | d | dddd}}a={{#dplvar: a}}, b={{#dplvar: b}}, c={{#dplvar: c}}, d={{#dplvar: d}}a=1, b=2, c=3, d=dddd

editcount[编辑]

来自EditCountNeue。
输出指定用户在指定页面命名空间下的编辑量。不填写页面命名空间默认输出该用户全部页面的总编辑量。

格式
{{#editcount: 用户名 | 命名空间1 | 命名空间2 | …}}
例子
{{#editcount: Miemie Method}}8891
{{#editcount: Miemie Method | Manual}}2120

explode[编辑]

来自ParserFunctions。
将一个字符串用分隔符分割成多段,再返回指定位置的其中一段,此函数对大小写敏感。位置编号从0开始(即第一项位置序号为0)。如果位置参数为负数,则从末尾开始计数。分隔符在字符串连续出现会导致分割出多个空白段,它们仍对应有位置序号。

格式
{{#explode: 字符串 | 分隔符(默认为空格) | 位置}}
例子
{{#explode: 僵尸,苦力怕,末影人,骷髅 | ,| 2}}末影人
{{#explode: 泥土,箱子,西瓜,草方块 | ,| -1}}草方块
{{#explode: 0 1 2 3 4 5 6 || 5}}5

expr[编辑]

来自ParserFunctions。
用于验证一个数学表达式,并返回它的计算值。此函数在Scribunto扩展中也可用,函数名为mw.ext.ParserFunctions.expr

类型 运算符
括号 ()
数字 1234.5e (2.718) 、 pi (3.142)
科学计数法(二元) e 、 正负号(一元) +-
一元运算符 notceiltruncfloorabsexplnsincostanacosasinatan
二元运算符 ^
*/divmod
+-
四舍五入 round
逻辑运算符 =!=<>><>=<=
and
or
格式
{{#expr: 表达式}}
支持的运算符如右方表格所示,表格从上到下按运算符的计算优先顺序排列。
每个运算符的详细功能见Help:Calculation
计算结果的精度和格式取决于Wiki服务器的操作系统,和网站语言的数字格式。
例子
当用于计算布尔代数值(Boolean algebra)时,零值表示假,任何非零值,无论正负,都表示ture
{{#expr: 1 and -1}}1
{{#expr: 1 and 0}}0
{{#expr: 1 or -1}}1
{{#expr: -1 or 0}}1
{{#expr: 0 or 0}}0
输入空的表达式会返回一个空字符串。输入不正确的表达式会返回其中一个错误消息,错误可以被iferror函数捕捉到:
{{#expr: }}
{{#expr: 1+ }}表达式错误:缺少+的操作数。
{{#expr: 1 = }}
{{#expr: 1 foo 2}}表达式错误:无法识别的词语“foo”。
加减运算符在数字之前与之后的意义不同,它们有可能被当作正负号,而不会被当作不正确的表达式:
{{#expr: +1}}1
{{#expr: -1}}-1
{{#expr: + 1}}1
{{#expr: - 1}}-1
魔术字
如果使用魔术字的输出值,必须使用其原始格式,如:移除所有分割逗号,转换为数字。
比如{{NUMBEROFPAGES}}输出的是6,245,但是实际需要的是6245,原始格式可以用{{formatnum:{{NUMBEROFPAGES}}|R}}来得到,详见formatnum。例子如下:
{{#expr:{{NUMBEROFPAGES}}+100}}表达式错误:无法识别的符号“,”。
{{#expr:{{formatnum:{{NUMBEROFPAGES}}|R}}+100}}6345
日期
若想要进行关于日期的计算(比如:将当前日期与某日期进行比较),首先应将时间转化为“1970年1月1日之后多少秒”的结构,可以使用{{#time: xNU}}来转换(详见time),然后就可以把日期当作数字来进行计算和比较了。
四舍五入
将运算符round左边的数四舍五入(Rounds),使其小数位数为round右边的数。
如需进一取整(向上舍入),使用ceil;如需舍去取整(向下舍入),使用floor
例子 结果 舍入方法
{{#expr: 1/3 round 5}} 0.33333 保留5位小数。舍去的部分首位数值<5,则不会进一。
{{#expr: 1/6 round 5}} 0.16667 保留5位小数。舍去的部分首位数值≥5,则进一。
{{#expr: 8.99999/9 round 5}} 1 同上方法,结果是进一得到的。
{{#expr: 1234.5678 round -2}} 1200 此处保留到百位。要保留到小数点左侧,应使用负的位数。
{{#expr: 1234.5678 round 2}} 1234.57 此处保留到百分位。要保留到小数点右侧,应使用正的位数。
{{#expr: 1234.5678 round 2.3}} 1234.57 位数值如果输入了带小数的数值,小数部分不起作用。
{{#expr: trunc 1234.5678}} 1234 保留到整数可以使用trunc
保留到整数的舍入规则:
{{#expr: 1/3 round 0}} 0 保留到最近的整数,向下舍入至零。
{{#expr: 1/2 round 0}} 1 保留到最近的整数,向上舍入至一。
{{#expr: 3/4 round 0}} 1 保留到最近的整数,向上舍入至一。
{{#expr: -1/3 round 0}} -0 保留到最近的整数,向上舍入至零。
{{#expr: -1/2 round 0}} -1 保留到最近的整数,向下舍入至负一。
{{#expr: -3/4 round 0}} -1 保留到最近的整数,向下舍入至负一。
使用ceilfloor时的舍入规则:
{{#expr: ceil(1/3)}} 1 向上舍入至一。
{{#expr: floor(1/3)}} 0 向下舍入至零。
{{#expr: ceil(-1/3)}} -0 向上舍入至零。
{{#expr: floor(-1/3)}} -1 向下舍入至负一。
{{#expr: ceil 1/3}} 0.33333333333333 没有被舍入处理,因为1就是整数
上述表达式含义为(ceil 1)/3,而不是ceil(1/3),应注意。
字符串
表达式只能用于数字值,不能比较字符串或者字符。如需比较字符串和字符,请使用ifeq。例子:
{{#expr: "a" = "a"}}表达式错误:无法识别的符号“"”。
{{#expr: a = a}}表达式错误:无法识别的符号“a”。
{{#ifeq: a | a | 1 | 0}}1

filepath[编辑]

MediaWiki原生函数。
获取文件直接存放位置的超链接(包含域名),文件名无须包含命名空间,可以选择加上缩略图宽度要求或<nowiki>标签防止直接插入图片。

格式
{{filepath: 文件名 | 参数}}
例子
{{filepath: Inner_Core_icon.png}}https://wiki.mcbe-dev.net/w/images/6/6f/Inner_Core_icon.png
{{filepath: Inner_Core_icon.png | nowiki}}https://wiki.mcbe-dev.net/w/images/6/6f/Inner_Core_icon.png
{{filepath: Inner_Core_icon.png | 60}}https://wiki.mcbe-dev.net/w/thumb.php?f=Inner_Core_icon.png&width=60

forargs[编辑]

来自Loops。
按照指定前缀读取传入页面的参数名及其值,并储存到变量(可通过Variables扩展的var函数来访问)中,然后对每个参数的传入执行一次给定的表达式。此解析器函数一般用于模板。

格式
{{#forargs: 参数前缀 | 储存参数名的变量 | 储存参数传入值的变量 | 表达式}}
例子
假设在“Template:Loops Test”模板中写入以下内容:
{{#forargs: arg | key | value | <nowiki/> * {{#var: key}} = {{#var: value}} }}
则在其他页面调用此模板时:
{{Loops Test | arg1 = val1 | spam = spammity | arg5 = val5 | argument = value }} → 输出“arg”前缀的参数名及其值。
  • 1 = val1
  • 5 = val5
  • ument = value

formatdate[编辑]

MediaWiki原生函数。
将输入的日期格式化,输入的日期只接受YYYY-MM-DD(ISO 8601,必须都有前导零)的格式,而输出则支持各种格式,包括ISO 8601、dmy、mdy和ymd。如果格式化的时候出现错误,将会原封不动返回输入的日期。

格式
{{#formatdate: 日期 | 格式}}
例子
{{#formatdate: 2009-05-17 | ISO 8601}}2009-05-17
{{#formatdate: 2009-05-17 | dmy}}17 5月 2009
{{#formatdate: 2009-05-17 | mdy}}5月 17, 2009
{{#formatdate: 2009-05-17 | ymd}}2009 5月 17
{{#formatdate: 2009-05-17 | myd}}2009-05-17(不支持的格式)
{{#formatdate: 2009-5-17 | myd}}2009-5-17(输入不符合ISO 8601,月份缺少前导零)

formatnum[编辑]

MediaWiki原生函数。
将输入的数字格式化,不输入格式的话默认为一般逗号分隔(其他语言可能有别)的格式,输入R会还原成无格式化的形式。此函数并不会去掉前导零,也不会为小数添加前导零。不要输入数字以外的东西。

格式
{{formatnum: 数字 | 格式}}
例子
{{formatnum: 12345.678}}12,345.678
{{formatnum: 12,345.678 | R}}12345.678
{{formatnum: 00145.678 }}00,145.678
{{formatnum: .678}}.678

fornumargs[编辑]

来自Loops。
读取传入页面的数字参数的值,并储存到变量(可通过Variables扩展的var函数来访问)中,然后对每个参数的传入执行一次给定的表达式。此解析器函数一般用于模板。

格式
{{#fornumargs: 储存参数序号的变量 | 储存参数传入值的变量 | 表达式 }}
例子
假设在“Template:Loops Test”模板中写入以下内容:
{{#fornumargs: number | value | <nowiki/> * {{#var: key}} = {{#var: value}} }}
则在其他页面调用此模板时:
{{Loops Test | Block | B = Item | Entity | 5 = World }} → 输出参数序号和参数值。
  • 1 = Block
  • 2 = Entity
  • 5 = World

FULLPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的页面全名(包含命名空间)。

格式
{{FULLPAGENAME: 页面名}}

FULLPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的页面全名(包含命名空间)。

格式
{{FULLPAGENAMEE: 页面名}}

fullurl[编辑]

MediaWiki原生函数。
获取页面的完整超链接(包含域名),可以选择加上请求字符串。

格式
{{fullurl: 页面名 | 请求字符串}}
例子
{{fullurl: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{fullurl: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

fullurle[编辑]

MediaWiki原生函数。
获取页面的完整超链接(包含域名),可以选择加上请求字符串。

格式
{{fullurle: 页面名 | 请求字符串}}
例子
{{fullurle: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{fullurle: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

gender[编辑]

获取特定用户的性别,然后根据性别返回不同的值(男性、女性或未知)。若未输入未知返回值,未知时则会返回男性返回值。

格式
{{gender: 用户名 | 男性返回值 | 女性返回值 | 未知返回值}}

grammar[编辑]

MediaWiki原生函数。
根据条件为输入的单词选择一个语法正确的变化体。

格式
{{grammar: 条件 | 单词}}

if[编辑]

来自ParserFunctions。
用于判断一个测试字符串是否为空。一个只含有空白字符的字符串会被判定为空。

格式
{{#if: 表达式 | 表达式结果非空输出值 | 表达式结果空(或只有空白字符)输出值}}
例子
{{#if: | yes | no}}no
{{#if: string | yes | no}}yes
{{#if:     | yes | no}}no
{{#if:


| yes | no}}
no
最后一个参数(字符串空输出值)可以省略。
{{#if: foo | yes}}yes
{{#if: | yes}}
{{#if: foo | | no}}

ifeq[编辑]

来自ParserFunctions。
用于比较两个字符串是否相同。

格式
{{#ifeq: 表达式 | 比较值 | 相同时输出值 | 不相同时输出值}}
例子
如果两个字符串都是有效的数值,则会按照数值进行比较。
{{#ifeq: 01 | 1 | equal | not equal}}equal
{{#ifeq: 0 | -0 | equal | not equal}}equal
{{#ifeq: 1e3 | 1000 | equal | not equal}}equal
{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}equal
否则会按照文本进行比较,区分大小写。
{{#ifeq: foo | bar | equal | not equal}}not equal
{{#ifeq: foo | Foo | equal | not equal}}not equal
{{#ifeq: "01" | "1" | equal | not equal}}not equal
{{#ifeq: 10^3 | 1000 | equal | not equal}}not equal
#ifeq#switch的数值比较与使用#expr进行比较不同:
{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}not equal
{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}not equal
因为PHP以整数型比较两个数字,然而:
{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}equal
因为MediaWiki转换文本数字为浮点型,对于比较大的整数,会导致末尾被舍去。
在解析器函数内部的标签和解析器函数(如<nowiki>)会被暂时替换为一个唯一的代码。这会影响到比较结果:
{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}not equal
{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}not equal
{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}not equal
{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}equal
如果被比较的字符串是由等价调用含有这类标签的同一模板得到的,则值为真;但如果为含有相同的这类标签的两个模板,则值为假。

iferror[编辑]

来自ParserFunctions。
用于判断输入字符串是否为错误。如果输入字符串中含有HTML元素包含class="error",则会被当作真,否则为假。
class="error"能由其他解析器函数,如exprtimerel2abs产生,模板(Templates)错误,如循环、递归和其他解析器也能产生错误。

格式
{{#iferror: 字符串 | 为错误时输出值 | 无错误时输出值}}
例子
两个输出值可省略其一或两者都省略。如果“无错误时输出值”被省略了,则当没有错误时,会返回“字符串”的值。如果“为错误时输出值”被省略了,则当有错误时,会返回空字符串:
{{#iferror: {{#expr: 1 + 2}} | error | correct}}correct
{{#iferror: {{#expr: 1 + X}} | error | correct}}error
{{#iferror: {{#expr: 1 + 2}} | error}}3
{{#iferror: {{#expr: 1 + X}} | error}}error
{{#iferror: {{#expr: 1 + 2}}}}3
{{#iferror: {{#expr: 1 + X}}}}
{{#iferror: {{#expr: .}} | error | correct}}correct
{{#iferror: <strong class="error">a</strong> | error | correct}}error

ifexist[编辑]

来自ParserFunctions。
此函数将输入字符串当作页面标题。根据本地Wiki是否存在该标题的页面,返回两个值中的一个。

格式
{{#ifexist: 页面标题 | 页面存在输出值 | 页面不存在输出值}}
例子
此函数当页面存在时判定为真,不论它是否包含内容,是否为可见空白页(包含元数据,如分类链接和魔术字(Magic words),但不含可见内容),是否为空白页,是否为重定向页。
只有链接为红色的页面(页面不存在,如“帮助:自动写代码”),才会被判定为假,包括曾经存在但已经被删除的页面。
{{#ifexist: 帮助:解析器函数 | exists | doesn't exist}}exists
{{#ifexist: 帮助:自动写代码 | exists | doesn't exist}}doesn't exist
自定义过的系统消息页(System message)和由软件定义的特殊页(Special pages)会被判定为真。
{{#ifexist: 特殊:监视列表 | exists | doesn't exist}}exists
{{#ifexist: 特殊:用户查核 | exists | doesn't exist}}exists (安装了CheckUser
{{#ifexist: MediaWiki:Copyright | exists | doesn't exist}}existsMediaWiki:Copyright页面已被自定义)
如果一个页面使用该函数来检查目标页面是否存在,则该页面会出现在特殊:链入页面中目标页面的列表里。
所以如果本页面(Help:解析器函数)中存在{{#ifexist:手册:脚本API}},则在特殊:链入页面/手册:脚本API中,会包含Help:解析器函数
在使用了共享媒体存储库(Shared media repository)的Wiki上,该函数还可以用来检查文件是否被上传到指定的存储库,而不是Wiki自身。
该函数不对跨Wiki链接起作用。
限制
该函数被认为是一个“高开销解析器函数”;每个页面只能包含有限个这样的函数(包括模板中含的函数)。当超过限制的数量时,任何超出数量的ifexist函数会被自动判定为假,不论目标页面是否存在。并且页面会被添加至分类:有过多高开销解析器函数调用的页面。各个追踪分类(Tracking categories)的名字在不同语言的Wiki内可能有所不同。

ifexpr[编辑]

来自ParserFunctions。
此函数会计算一个表达式,并根据计算结果的布尔值,返回对应的字符串。

格式
{{#ifexpr: 表达式 | 为真输出值 | 为假输出值}}
“表达式”的计算方法和expr完全一样,可用的运算符也相同。运算结果会被当作一个布尔值。
例子
输入任何空表达式会判断为假:
{{#ifexpr: | yes | no}}no
expr相同,零值会被判断为假,任何非零值都会被判断为真。
两个输出值可省略其一或两者都省略。当输出值被省略时,会输出为空。
{{#ifexpr: 1 > 0 | yes}}yes
{{#ifexpr: 1 < 0 | yes}}
{{#ifexpr: 0 = 0 | yes}}yes
{{#ifexpr: 1 > 0 | | no}}
{{#ifexpr: 1 < 0 | | no}}no
{{#ifexpr: 1 > 0}}

int[编辑]

MediaWiki原生函数。
获取特定Message在当前语言中的内容,并可以提供多个参数(各个参数会按顺序分别替换掉Message内容中的$1、$2、...和$N),Message可以用扩展及Mediawiki命名空间定义。

格式
{{int: Message名称 | 参数1 | 参数2 | ... | 参数N}}
例子
{{int: edit}}编辑
{{int: sunday}}星期日
{{int: mycustomjsprotected}}您没有权限编辑这个JavaScript页面。
{{int: multiarraymap-desc}}⧼multiarraymap-desc⧽
{{int: markedaspatrolledtext}}$1的已选中版本已被标识为已巡查。
{{int: markedaspatrolledtext | 首页}}首页的已选中版本已被标识为已巡查。
{{int: pipe-separator}} |
{{int: parentheses | ABC括号内容}}(ABC括号内容)(自动生成符合语言的括号)
{{int: quotation-marks | ABC引号内容}}“ABC引号内容”(自动生成符合语言的引号)
{{int: imgmultipageprev}}← 上一页

invoke[编辑]

来自Scribunto。
用于调用Wiki模块页面Lua代码中的函数,并向其中传参。详细内容参见Extension:Scribunto

格式
{{#invoke: 模块名 | 函数名 | 参数1 | 参数2 | … | 参数n}}

language[编辑]

MediaWiki原生函数。
根据输入的语言代号获取对应的语言全名。

格式
{{#language: 语言代号}}
例子
{{#language: zh}}中文
{{#language: zh-hans}}中文(简体)
{{#language: zh-hant}}中文(繁體)
{{#language: en}}English
{{#language: ja}}日本語

lc[编辑]

MediaWiki原生函数。
把输入的字符串中所有字母变成小写。

格式
{{lc: 字符串}}
例子
{{lc: ABC}}abc

lcfirst[编辑]

MediaWiki原生函数。
把输入的字符串中第一个字母变成小写。

格式
{{lcfirst: 字符串}}
例子
{{lcfirst: MINECRAFT}}mINECRAFT

len[编辑]

来自ParserFunctions。
获取字符串长度(多字节字符也算作一个字),字符串前后的空格和回车均不会计入长度,若输入的字符串中有HTML实体(&nbsp;等),该实体将不会被转换成一般文字,而是按原形计算。被<nowiki>包裹的内容不会计入长度。

格式
{{#len: 字符串}}
例子
{{#len: Minecraft基岩版}}12
{{#len: &nbsp;}}11
{{#len: <nowiki>;This is a </nowiki>;test}}4

localurl[编辑]

MediaWiki原生函数。
获取页面的本地超链接(不含域名),可以选择加上请求字符串。

格式
{{localurl: 页面名 | 请求字符串}}
例子
{{localurl: 帮助:解析器函数}}/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{localurl: 帮助:解析器函数 | action=edit}}/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

localurle[编辑]

MediaWiki原生函数。
获取页面的本地超链接(不含域名),可以选择加上请求字符串。

格式
{{localurle: 页面名 | 请求字符串}}
例子
{{localurle: 帮助:解析器函数}}/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{localurle: 帮助:解析器函数 | action=edit}}/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

loop[编辑]

来自Loops。
定义一个初始变量(可通过Variables扩展的var函数来访问)及初始值并循环解析给定的表达式,每执行一次变量递增或递减1(循环次数为负数时表示递减),直到循环完成指定次数。

格式
{{#loop: 变量名 | 初始值 | 循环次数 | 表达式}}
例子
{{#loop: i | 3 | 4 | <nowiki/> * {{#var: i}} }} → 按顺序从3开始生成数字列表。

  • 3
  • 4
  • 5
  • 6

NAMESPACE[编辑]

MediaWiki原生函数。
获取HTML编码后的页面命名空间。

格式
{{NAMESPACE: 页面名}}

NAMESPACEE[编辑]

MediaWiki原生函数。
获取URL编码后的页面命名空间。

格式
{{NAMESPACEE: 页面名}}

NAMESPACENUMBER[编辑]

MediaWiki原生函数。
获取页面命名空间编号。

格式
{{NAMESPACENUMBER: 页面名}}

ns[编辑]

MediaWiki原生函数。
获取命名空间在当前语言中的名称,可以使用命名空间编号、命名空间名称、别名获取。

格式
{{ns: 命名空间}}
例子
{{ns: -2}}Media
{{ns: -1}}Special
{{ns: Special}}Special
{{ns: 特殊}}Special
{{ns: 10}}Template
{{ns: 11}}Template talk
{{ns: Category}}Category

nse[编辑]

MediaWiki原生函数。
获取URL编码后,命名空间在当前语言中的名称,可以使用命名空间编号、命名空间名称、别名获取。

格式
{{nse: 命名空间}}

NUMBERINGROUP[编辑]

MediaWiki原生函数。
获取属于特定群组的人数。

格式
{{NUMBERINGROUP: 群组名称}}
例子
{{NUMBERINGROUP: bureaucrat}}2
{{NUMBERINGROUP: confirm}}0
{{NUMBERINGROUP: sysop}}4

NUMBEROFACTIVEUSERS[编辑]

MediaWiki原生函数。
获取当前活跃的用户数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFACTIVEUSERS}}

NUMBEROFADMINS[编辑]

MediaWiki原生函数。
获取管理员数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFADMINS}}

NUMBEROFARTICLES[编辑]

MediaWiki原生函数。
获取内容页面数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFARTICLES}}

NUMBEROFARTICLES[编辑]

MediaWiki原生函数。
获取内容页面数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFARTICLES}}

NUMBEROFEDITS[编辑]

MediaWiki原生函数。
获取总编辑次数,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFEDITS}}

NUMBEROFFILES[编辑]

MediaWiki原生函数。
获取媒体文件数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFFILES}}

NUMBEROFPAGES[编辑]

MediaWiki原生函数。
获取所有页面数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFPAGES}}

NUMBEROFUSERS[编辑]

MediaWiki原生函数。
获取用户数量,与“特殊:统计信息”中显示的一致。

格式
{{NUMBEROFUSERS}}

padleft[编辑]

MediaWiki原生函数。
往字符串左边填充指定字符直到一定长度(多字节字符也算一个字。原字符串为空时重复输出填充字符串;如果原字符串长度比需要的长度长,则不会做任何处理。

格式
{{padleft: 原字符串 | 需要的长度(字符数) | 填充字符串(默认为0)}}
例子
{{padleft: 15 | 5}}00015
{{padleft: abc | 5}}00abc
{{padleft: 原字符串 | 10 | 填}}填填填填填填原字符串
{{padleft: 原字符串 | 10 | 填充}}填充填充填充原字符串
{{padleft: | 5 | 玩家}}玩家玩家玩
{{padleft: | 7 | 苦力怕}}苦力怕苦力怕苦
{{padleft: 这是一段较长的文本 | 5 | 填}}这是一段较长的文本

padright[编辑]

MediaWiki原生函数。
往字符串右边填充指定字符直到一定长度(多字节字符也算一个字。原字符串为空时重复输出填充字符串;如果原字符串长度比需要的长度长,则不会做任何处理。

格式
{{padright: 原字符串 | 需要的长度(字符数) | 填充字符串(默认为0)}}
例子
{{padright: 15 | 5}}15000
{{padright: abc | 5}}abc00
{{padright: 原字符串 | 10 | 填}}原字符串填填填填填填
{{padright: 原字符串 | 10 | 填充}}原字符串填充填充填充
{{padright: | 5 | 玩家}}玩家玩家玩
{{padright: | 7 | 苦力怕}}苦力怕苦力怕苦
{{padright: 这是一段较长的文本 | 5 | 填}}这是一段较长的文本

PAGEID[编辑]

MediaWiki原生函数。
获取页面的编号,该编号是唯一的,可以用来辨别页面和生成随机数。

格式
{{PAGEID: 页面名}}

PAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的页面名(不含命名空间)。

格式
{{PAGENAME: 页面名}}

PAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的页面名(不含命名空间)。

格式
{{PAGENAMEE: 页面名}}

PAGESINCATEGORY[编辑]

MediaWiki原生函数。
返回属于指定分类的项目数量,可以用包含类型来筛选项目类型,可以使用pages(词条)、subcats(子分类)、files(文件)和all(全部)。

格式
{{PAGESINCATEGORY: 分类名 | 包含类型(默认为all)}}

PAGESIZE[编辑]

MediaWiki原生函数。
获取页面的大小,以字节为单位。默认返回带格式的数值,格式设置为“R”可以获取未格式化的数值;页面不存在则返回0。

格式
{{PAGESIZE: 词条名 | 格式}}
例子
{{PAGESIZE: Molang}}27,330
{{PAGESIZE: Molang | R}}27330

plural[编辑]

MediaWiki原生函数。
若输入的数字等于1,判定为单数,否则判定为复数,0也算作复数,部分语言还会有第三种情况。

格式
{{plural: 数字公式 | 单数返回值 | 负数返回值 }}
例子
{{plural: 1 | 单数 | 复数}}单数
{{plural: 2 | 单数 | 复数}}复数
{{plural: {{#expr:21 mod 10}} | is | are}}is

pos[编辑]

来自ParserFunctions。
在长字符串中寻找一段较短的字符串,并返回其首次出现的位置(左边开始第一个字是0,由左至右搜索,需由右至左搜索请使用rpos),没有出现则返回空。也可以通过设定偏移量,让pos从长字符串中第N个字符开始搜索。pos会把<nowiki>和里面的内容当作一个长度为1个字符、不匹配任何东西的字符串。此函数区分大小写。

格式
{{#pos: 长字符串 | 搜索字符串 | 偏移量(默认为0)}}
例子
{{#pos: 这是长字符串 | 字符串}}3
{{#pos: 这是长字符串长 | 长}}2
{{#pos: 这是长字符串长 | 长 | 4}}6
{{#pos: 这是长字符串 | 数}}

PROTECTIONEXPIRY[编辑]

MediaWiki原生函数。
查询页面对于指定操作的保护状态的终止时间,有限期则会返回终止时间的时间戳(例如:“20200401160000”),无限期或没有保护则返回“infinity”。操作可以是edit或move。使用第二个参数可以指定页面名,不指定页面名的话默认为本页面。

格式
{{PROTECTIONEXPIRY: 操作 | 页面名}}
例子
{{PROTECTIONEXPIRY: edit}}infinity (没有保护)
{{PROTECTIONEXPIRY: move}}infinity (没有保护)
{{PROTECTIONEXPIRY: edit | 首页}}infinity (无限期保护)
{{PROTECTIONEXPIRY: move | 首页}}infinity (无限期保护)

PROTECTIONLEVEL[编辑]

MediaWiki原生函数。
查询页面对于指定操作的保护状态(进行该操作所需的最低权限群组,autoconfirmed、sysop等),操作可以是edit或move,没有保护则返回空字符串。使用第二个参数可以指定页面名,不指定页面名的话默认为本页面。

格式
{{PROTECTIONLEVEL: 操作 | 页面名}}
例子
{{PROTECTIONLEVEL: edit}}
{{PROTECTIONLEVEL: move}}
{{PROTECTIONLEVEL: edit | 首页}}sysop
{{PROTECTIONLEVEL: move | 首页}}sysop

rel2abs[编辑]

来自ParserFunctions。
将相对路径转换为绝对路径。

格式
{{#rel2abs: 相对路径}}
{{#rel2abs: 相对路径 | 基础路径}}
“相对路径”支持下列格式:
. → 当前路径级别
.. → “至上一级路径”
/foo → “至下一级子目录 /foo”
如果“基础路径”没有被指定,则会使用当前页面的完整页面名称(可使用{{FULLPAGENAME}}获得,本页为Help:解析器函数)。
例子
一般情况如下:
{{#rel2abs: /quok | Help:Foo/bar/baz}}Help:Foo/bar/baz/quok
{{#rel2abs: ./quok | Help:Foo/bar/baz}}Help:Foo/bar/baz/quok
{{#rel2abs: ../quok | Help:Foo/bar/baz}}Help:Foo/bar/quok
{{#rel2abs: ../. | Help:Foo/bar/baz}}Help:Foo/bar
/././之类不正确的格式会被忽略。不允许出现连续两个以上的句点.,多层路径移动如下:
{{#rel2abs: ../quok/. | Help:Foo/bar/baz}}Help:Foo/bar/quok
{{#rel2abs: ../../quok | Help:Foo/bar/baz}}Help:Foo/quok
{{#rel2abs: ../../../quok | Help:Foo/bar/baz}}quok
{{#rel2abs: ../../../../quok | Help:Foo/bar/baz}}错误:无效路径深度:“Help:Foo/bar/baz/../../../../quok”(尝试访问根节点以上节点)

replace[编辑]

来自ParserFunctions。
在字符串中搜索某个字符串并将其替换成指定的字符串。若替换字符串为空,则相当于把搜索到的字符串删除。此函数对大小写敏感。若要使用特殊字符串,请用“<nowiki></nowiki>”

格式
{{#replace: 字符串 | 要搜索的字符串(默认为单个半形空格) | 替换成的字符串}}
例子
{{#replace: Script API}}ScriptAPI
{{#replace: Cut_Copper_Slab | _ | }}CutCopperSlab

REVISIONDAY[编辑]

MediaWiki原生函数。
获取页面当前版本的编写日,无前导零。

格式
{{REVISIONDAY: 页面名}}
例子
{{REVISIONDAY: 页面名}}3

REVISIONDAY2[编辑]

MediaWiki原生函数。
获取页面当前版本的编写日,有前导零。

格式
{{REVISIONDAY2: 页面名}}
例子
{{REVISIONDAY2: 页面名}}03

REVISIONID[编辑]

MediaWiki原生函数。
获取页面当前版本的编号,该编号在全页面全版本中都是唯一的,且是顺序生成的,可用于检查两个页面当前版本的编写先后。

格式
{{REVISIONID: 页面名}}
例子
{{REVISIONID: 页面名}}23467

REVISIONMONTH[编辑]

MediaWiki原生函数。
获取页面当前版本的编写月份,有前导零。

格式
{{REVISIONMONTH: 页面名}}
例子
{{REVISIONMONTH: 页面名}}08

REVISIONMONTH1[编辑]

MediaWiki原生函数。
获取页面当前版本的编写月份,无前导零。

格式
{{REVISIONMONTH1: 页面名}}
例子
{{REVISIONMONTH1: 页面名}}8

REVISIONTIMESTAMP[编辑]

MediaWiki原生函数。
获取页面当前版本的编写日期时间戳,格式为YYYYMMDDHHMMSS。

格式
{{REVISIONTIMESTAMP: 页面名}}
例子
{{REVISIONTIMESTAMP: 页面名}}20231028070922

REVISIONUSER[编辑]

MediaWiki原生函数。
获取页面当前版本的编写者的用户名。

格式
{{REVISIONUSER: 页面名}}
例子
{{REVISIONUSER: 页面名}}Miemie Method

REVISIONYEAR[编辑]

MediaWiki原生函数。
获取页面当前版本的编写年份。

格式
{{REVISIONYEAR: 页面名}}
例子
{{REVISIONYEAR: 页面名}}2023

ROOTPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的根页面页面名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title”。

格式
{{ROOTPAGENAME: 页面名}}

ROOTPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的根页面页面名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title”。

格式
{{ROOTPAGENAMEE: 页面名}}

rpos[编辑]

来自ParserFunctions。
在长字符串中寻找一段较短的字符串,并返回其首次出现的位置(左边开始第一个字是0,由右至左搜索,需由左至右搜索请使用pos),不能设置偏移量,其他特性与pos一致。

格式
{{#rpos: 长字符串 | 搜索字符串}}
例子
{{#rpos: 这是长字符串 | 字符串}}3
{{#rpos: 这是长字符串长 | 长}}6
{{#rpos: 这是长字符串 | 数}}

special[编辑]

MediaWiki原生函数。
获取指定的特殊页面在当前语言中的全名(包含命名空间)。

格式
{{#special: 特殊页面}}
例子
{{#special: 特殊页面名称}}Special:特殊页面
{{#special: specialpages}}Special:特殊页面
{{#special: userlogin}}Special:用户登录

speciale[编辑]

MediaWiki原生函数。
获取指定的特殊页面在当前语言中URL编码后的全名(包含命名空间)。

格式
{{#speciale: 特殊页面名称}}
例子
{{#speciale: 特殊页面}}Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: specialpages}}Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: userlogin}}Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95

sub[编辑]

来自ParserFunctions。
用于从给定字符串中截取子字符串。

格式
{{#sub: 原字符串 | 起始位置 | 长度}}
例子
如果“起始位置”为正数(或者为零),则从字符串开头开始(第一个字符位置序号为0),返回相应的字符串:
{{#sub: Minecraft | 3}}ecraft
{{#sub: Minecraft | 0 | 3}}Min
如果“起始位置”为负数,则从字符串末尾开始,返回相应长度的字符串:
{{#sub: Minecraft | -3}}aft
“长度”如果出现,并且为正数,则表示返回字符串的最大长度:
{{#sub: Minecraft | 3 | 3}}ecr
如果“长度”为负数,则表示从字符串末尾略去几个字符:
{{#sub: Minecraft | 3 | -3}}ecr
如果“长度”是零,则不会起作用:
{{#sub: Minecraft | 3 | 0}}ecraft
{{#sub: Minecraft | 0 | 3}}Min
如果“起始位置”指定的位置,落在负的“长度”所略去的字符上,则会返回空字符串:
{{#sub: Minecraft | 3 | -6}}(空字符串)
此函数兼容UTF-8多字节字符,如:
{{#sub: Jon Kågström | 5}}ågström
类似len<nowiki>等标签扩展,不计长度,也不占位置序号,如:
{{#sub: <nowiki>This is a </nowiki>test | 0}}test

SUBJECTPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的关联页面的全名(包含命名空间),关联页面即讨论页的所属的页面。

格式
{{SUBJECTPAGENAME: 页面名}}

SUBJECTPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的关联页面的全名(包含命名空间),关联页面即讨论页的所属的页面。

格式
{{SUBJECTPAGENAMEE: 页面名}}

SUBJECTSPACE[编辑]

MediaWiki原生函数。
获取HTML编码后的关联页面的命名空间,关联页面即讨论页的所属的页面。

格式
{{SUBJECTSPACE: 页面名}}

SUBJECTSPACEE[编辑]

MediaWiki原生函数。
获取URL编码后的关联页面的命名空间,关联页面即讨论页的所属的页面。

格式
{{SUBJECTSPACEE: 页面名}}

SUBPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的子页面的名称(不含命名空间),例如“Help:Title/foo/bar”会返回“bar”。

格式
{{SUBPAGENAME: 页面名}}

SUBPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的子页面的名称(不含命名空间),例如“Help:Title/foo/bar”会返回“bar”。

格式
{{SUBPAGENAMEE: 页面名}}

switch[编辑]

来自ParserFunctions。
将输入值与若干个预设值对比,如果与预设值相匹配,则返回该预设值对应的输出字符串。

格式
{{#switch: 输入值 | 预设值1 = 对应值1 | 预设值2 = 对应值2 | ... | 预设值n = 对应值n | 默认值 }}
例子
{{#switch: baz | foo = Foo | baz = Baz | Bar}}Baz
{{#switch: foo | foo = Foo | baz = Baz | Bar}}Foo
{{#switch: zzz | foo = Foo | baz = Baz | Bar}}Bar
默认值
在当没有“输入值”与“预设值”相匹配时,该函数会返回“默认值”:
{{#switch: test | foo = Foo | baz = Baz | Bar}}Bar
此语法下“默认值”必须是最后一个参数,并且不能包含等号,需使用等号作为字符串或其中一部分请使用{{=}}
{{#switch: test | Bar | foo = Foo | baz = Baz}}
{{#switch: test | foo = Foo | baz = Baz | B=ar}}
“默认值”可以用#default来特别声明。
{{#switch: 输入值 | 预设值1 = 对应值1 | 预设值2 = 对应值2 | ... | 预设值n = 对应值n | #default = 默认值 }}
用这种方式声明下的“默认值”可以放在函数内的任何位置:
{{#switch: test | foo = Foo | #default = Bar | baz = Baz}}Bar
如果“默认值”被省略,当没有相符情况时,不会对应值:
{{#switch: test | foo = Foo | baz = Baz}}
多项匹配
当有多个“预设值”需返回同一个“对应值”时,每两个“预设值”之间使用管道符分隔。
{{#switch: 比较字符串 | 预设值1 = 对应值1 | 预设值2 | 预设值3 | 预设值4 = 对应值234 | 预设值5 = 对应值5 | 预设值6 | 预设值7 = 对应值67 | #default = 默认值 }}
这里预设值2、3、4都会返回“对应值234”,预设6、7都会返回“对应值67”。
比较
#ifeq相同,如果“输入值”和“预设值”都为数值,则会按照数值进行比较:
{{#switch: 0 + 1 | 1 = one | 2 = two | three}}three
{{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}}one
{{#switch: a | a = A | b = B | C}}A
{{#switch: A | a = A | b = B | C}}C
“预设值”可以为空:
{{#switch: | = Nothing | foo = Foo | Something}}Nothing
当有一个预设值被匹配到了后,其后的“预设值”会被忽略:
{{#switch: b | f = Foo | b = Bar | b = Baz |}}Bar
#switch#ifeq的数值比较方法与表达式比较不同:
{{#switch: 12345678901234567 | 12345678901234568 = A | B}}B
{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}}A

tag[编辑]

MediaWiki原生函数。
生成一个XML标签(只能是解析器扩展标签),可以设定其标签类型、内文和属性。有时候一些XML标签形式的解析器结构(即解析器扩展标签),不会解析和运算其内文,导致其无法在模板中使用或配合其他解析器结构使用(如tabber),此时则需要利用tag函数,生成一个内文已经解析了的标签。

格式
{{#tag: 标签类型 | 内文 | 属性}}
例子
{{#tag: nowiki | 这是nowiki里面,{{padleft: | 5 | 一二}}切运算都有效}} 这是nowiki里面,一二一二一切运算都有效
{{#tag: ref | 这是备注里面,{{padleft:|5|一二}}切运算都有效 | name="tag" group="tag"}}[1]
  1. 这是备注里面,一二一二一切运算都有效
{{#tag: references || group="tag"}} (如果内文一个空格都没有,则会生成一个自关闭标签)

TALKPAGENAME[编辑]

MediaWiki原生函数。
获取HTML编码后的讨论页页面全名(包含命名空间)。

格式
{{TALKPAGENAME: 页面名}}

TALKPAGENAMEE[编辑]

MediaWiki原生函数。
获取URL编码后的讨论页页面全名(包含命名空间)。

格式
{{TALKPAGENAMEE: 页面名}}

TALKSPACE[编辑]

MediaWiki原生函数。
获取HTML编码后的讨论页页面命名空间。

格式
{{TALKSPACE: 页面名}}

TALKSPACEE[编辑]

MediaWiki原生函数。
获取URL编码后的讨论页页面命名空间。

格式
{{TALKSPACEE: 页面名}}

time[编辑]

来自ParserFunctions。
将日期或时间(公历)按格式字符串规定的格式进行转换。可自行指定日期/时间对象,默认使用魔术字(Magic word{{CURRENTTIMESTAMP}}的值(该值使用世界协调时间,UTC),也就是页面最近一次渲染为HTML的时间。详细内容参见Help:Extension:ParserFunctions

代码 说明 当前输出值
清除此页面缓存以更新结果)
Y 4位数表示的年。 2024
y 2位数表示的年。 24
L 1表示闰年(Leap year),0表示非闰年。 1
o[注 1] ISO-8601规定的该周所属年份。[注 2] 2024[注 3]
  1. 需要PHP5.1.0 或更新版本和MediaWikirev:45208
  2. 一般与Y相同,除非ISO规定的周数(W)属于前一年或者后一年,则使用 ISO 规定的年份。
  3. 如果注1的条件不满足,会显示字母o
n 月份号,无前导零。 4
m 月份号,有前导零。 04
M 月份名称缩写,使用网站语言。(英文结果为 Apr 4月
F 月份名称全称,使用网站语言。(英文结果为 April 4月
xg 月份名称全称,使用网站语言的属格(Genitive)形式,注意区分其与主格(Nominative)形式的区别。

这项功能在斯拉夫语族(Slavic languages)中十分重要,如波兰语、俄语、白俄罗斯语、捷克语、斯洛伐克语、斯洛文尼亚语、乌克兰语等。

在中文环境下:
属格为全汉字月份名称;
主格为数字+汉字月份名称。

对于中文:

(主格)
{{#time: Y F d | 20 June 2010 | zh}}
→ 2010 6月 20

(属格)
{{#time: Y xg d | 20 June 2010 | zh}}
→ 2010 6月 20

W ISO 8601 规定的周数,有前导零。 17
j 月份内的日期号,无前导零。 28
d 月份内的日期号,有前导零。 28
z 年份内的日期号 (1月1日 = 0)。
“”“注意:”“”要获得ISO规定的日期号,需加上1。
118
D 星期的缩写。国际上不通用。
l 星期的全称。国际上不通用。 星期日
N ISO 8601 规定的星期编号(星期一 = 1,星期日 = 7)。 7
w 星期编号(星期日=0,星期六=6)。 0
a 早上为am(00:00:00 → 11:59:59);
其他时间为 pm(12:00:00 → 23:59:59)。
am
A 上方a的大写形式。 AM
g 12小时制的时,无前导零。 5
h 12小时制的时,有前导零。 05
G 24小时制的时,无前导零。 5
H 24小时制的时,有前导零。 05
分 和 秒
i 小时后的分钟数,有前导零。 48
s 分钟后的秒钟数,有前导零。 34
U UNIX时间(Unix time)。从格林尼治时间(GMT)1970年1月1日00:00:00开始计的秒钟数。 1714283314
时区(需MediaWiki1.22wmf2
e 时区标识符。 UTC
I 当前日期是否使用日光节约时间(夏令时)。 0
O 与格林尼治时间(GMT)的时差。 +0000
P 与格林尼治时间(GMT)的时差,带有冒号分隔。 +00:00
T 时区缩写。 UTC
Z 以秒计的时差。 0
杂项
t 当前月份的天数。 30
c ISO 8601 格式的日期,等价于 Y-m-d"T"H:i:s+00:00 2024-04-28T05:48:34+00:00
r RFC 5322格式的日期,等价于 D, j M Y H:i:s +0000,其中星期名和月份名国际上不通用。 Sun, 28 Apr 2024 05:48:34 +0000
非公历日历
伊斯兰历(Islamic calendar),又称希吉来历(Hijri calendar)
xmj 月份内的日期号。 19
xmF 月份名称全称。 闪瓦鲁月
xmn 月份号。 10
xmY 全长表示的年。 1445
伊朗历(Iranian calendar),又称贾拉利历(Jalali calendar)
xij 月份内的日期号。 9
xiF 月份名称全称。 Ordibehesht
xin 月份号。 2
xiY 全长表示的年。 1403
xiy 2位数表示的年。 03
希伯来历(Hebrew calendar
xjj 月份内的日期号。 20
xjF 月份名称全称。 尼散月
xjt 当前月份的天数。 30
xjx 属格形式的月份名称。 Nisan
xjn 月份号。 7
xjY 全长表示的年。 5784
泰国历(Thai solar calendar
xkY 泰国历的全长表示的年。
注意:公历1941年前的年份,1月到3月的范围内,计算得到的泰国历年份不正确。(原因
2567
民国纪年(Minguo calender
朝鲜历(North Korean calendar),又称主体历(Juche calendar)
xoY 全长表示的年。 113
日本年号(Japanese era name, or Japanese nengo)
xtY 全长表示的年(带有年号)。 令和6
转换标志
xn 将下一个数字代码转换为原始ASCII格式数字。 在印地语中,{{#time: H, xnH}} 得到的是 ०६, 06
xN xn 功能类似。但它持续起作用到字符串末尾,或字符串中的下一个xN处。
xr 将下一个数字代码转换为罗马数字格式。仅对10,000以内的数字有效
(MediaWiki 1.20 之前,仅对 3,000 以内的数字有效)
{{#time: xrY}}
MMXXIV
xh 将下一个数字代码转换为希伯来数字格式。 {{#time: xhY}}
ב'כ"ד
格式
{{#time: 格式字符串}}
{{#time: 格式字符串 | 日期/时间对象}}
{{#time: 格式字符串 | 日期/时间对象 | 语言代码}}
上面的表格中列出了支持的格式控制代码。“格式字符串”中的任何不被识别的字符将原样输出,包括空格(系统不用它们来编译代码)。
还有两种方法可以使“格式字符串”内的字符原样输出:
  1. 反斜杠\后加字符,可以原样输出单个字母:
  2. 一对半角双引号" "内的字符被当作文字,会原样输出,不带双引号。
另外,还可以用xx来输出单个字母x
例子
{{#time: \m}}m
{{#time: \xg}}x5x被原样输出,g被当作格式控制代码)
{{#time: Y-m-d}}2024-04-28
{{#time: [[Y]] m d}}2024 04 28
{{#time: [[Y (year)]]}}2024 (24UTCamSun, 28 Apr 2024 05:48:34 +0000) (year被当作格式控制代码year
{{#time: [[Y "(year)"]]}}2024 (year)
{{#time: i“s"}}48”34"
“语言代码”使用的是ISO 639-3标准,可以显示所选语言的时间格式:
{{#time:d F Y|1988-02-28|nl}}28 februari 1988
{{#time:l|now|uk}}неділя
{{#time:d xg Y|20 June 2010|pl}}20 czerwca 2010
如果需要在计算时使用UNIX时间,可以在UNIX时间前加上@
{{#time: U | now}}1714283314
{{#time: r|@1485582296}}Sat, 28 Jan 2017 05:44:56 +0000
超过9999年会得到不正确的结果:
{{#time: d F Y | 15 April 10000}}错误:无效时间。
{{#time: r | 10000-4-15}}Sat, 15 Apr 2000 10:00:00 +0000
0-99年被当作2000-2069年、1970-1999年来处理,除非使用4位数年格式来表示这些年份:
{{#time: d F Y | 1 Jan 6}}01 1月 2006
{{#time: d F Y | 1 Jan 06}}01 1月 2006
{{#time: d F Y | 1 Jan 006}}01 1月 2006
{{#time: d F Y | 1 Jan 0006}}01 1月 0006 (使用了4位数年)
可以指定完整的绝对日期,或者是一部分,该函数会将缺少的部分用当前日期的值填补。填补功能在不同情况下填补不同的内容:
{{#time: Y m d H:i:s | June}}2024 06 28 00:00:00 (使用了一天的开始时刻,填补了当前月份内的日期号、年份)
{{#time: Y m d H:i:s | 2003}}2003 04 28 00:00:00 (使用了一天的开始时刻,填补了当前年份内的日期号)
在MediaWiki r86805之后,4位数字一概会被认为是年份,而非小时与分钟:
{{#time: Y m d H:i:s | 1959}}1959 04 28 00:00:00
6位数字会被认为是小时、分钟和秒钟,如果得到的时间不正确,则会报错(一概不会当作年份和月份):
{{#time: Y m d H:i:s | 195909}}2024 04 28 19:59:09 (被当作时分秒而不是年月)
{{#time: Y m d H:i:s | 196009}}错误:无效时间。 (即使19:60:09不是正确的时间,196009也不会被当作年月)
该函数可对日期进行一定的数学运算:
{{#time: Y F d | January 0 2008}}2007 12月 31
{{#time: F d | January 32}}错误:无效时间。 (一个月超过31天会导致报错)
{{#time: F d | February 29 2008}}2月 29
{{#time: F d | February 29 2007}}3月 01
{{#time:Y F|now -1 months}}2024 3月
该函数中“格式字符串”的总长度限制为6000字符

timel[编辑]

来自ParserFunctions。
该函数与time类似,但该函数使用Wiki本地时间。(在$wgLocaltimezone中设置)。

格式
{{#time: 格式字符串}}
{{#time: 格式字符串 | 日期/时间对象}}
{{#time: 格式字符串 | 日期/时间对象 | 语言代码}}
例子
{{#timel:c|now|it}}2023-10-29T08:24:21+00:00

titleparts[编辑]

来自ParserFunctions。
把标题字符串用半形斜线“/”分隔,返回指定位置开始,指定长度的标题段落,段落位置从1开始计算。段落长度为0时会返回从段落位置开始的所有段落,段落位置为0时效果和为1时一样。

格式
{{#titleparts: 标题字符串 | 段落长度(默认为0) | 段落位置(默认为1)}}
所有半形斜线“/”都会被切割,不论是否已有一个标题字符串一模一样并以“/”作为页面名中一个普通字符的页面存在。标题字符串内的所有HTML实体均会自动转换成对应的字符,所以不能用“&#47;”来逃避切割。半形底线“_”会自动转换成半形空格“ ”,也会按照Wiki设定把首字母转成大写。
例子
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript}}Manual:开发/创作工具/ScriptAPI/JavaScript
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 1}}Manual:开发,效果同ROOTPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 2}}Manual:开发/创作工具
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 2 | 2}}创作工具/ScriptAPI
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | | 2}}创作工具/ScriptAPI/JavaScript
“段落长度”和“段落位置”均可以使用负数,负数“段落长度”表示从尾开始去掉该数量的段落,负数“段落位置”表示从尾开始计算段落位置。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1}}Manual:开发/创作工具/ScriptAPI,效果同BASEPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -4}},去掉的段落数等于段落总数。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -5}},去掉的段落数超出了段落总数。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | | -1}}JavaScript,效果同SUBPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1 | 2}}创作工具/ScriptAPI
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1 | -2}}ScriptAPI
标题字符串最多能含有255个半角字符或相应数量的全角字符,就跟正常页面标题一样。最多只会进行25次切割,25次以后的内容会被当作同一个段落处理。
{{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee | 1 | 25}}y/z/aa/bb/cc/dd/ee
若标题字符串含有标题内禁用的字符,此函数会返回原字符串或返回空字符串。
{{#titleparts: {one/two} | 1 | 1}}{one/two}
{{#titleparts: [[首页]]/123 | 1 | 2}}首页/123
{{#titleparts: red/#00FF00/blue | 1 | 3}}

uc[编辑]

MediaWiki原生函数。
把输入的字符串中所有字母变成大写。

格式
{{uc: 字符串}}
例子
{{uc: abc}}ABC

ucfirst[编辑]

MediaWiki原生函数。
把输入的字符串中第一个字母变成大写。

格式
{{ucfirst: 字符串}}
例子
{{ucfirst: minecraft}}Minecraft

urldecode[编辑]

MediaWiki原生函数。
解码被URL编码的字符串。

格式
{{#urldecode: URL编码字符串}}
例子
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25}}ABC中文 英文 123&456+1%
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25}}ABC中文 英文 123&456+1%(用urlencode加QUERY编码的字符串)
{{#urldecode: ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25}}ABC中文_英文_123&456+1%(用urlencode加WIKI编码的字符串)
{{#urldecode: ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25}}ABC中文 英文 123&456+1%(用urlencode加PATH编码的字符串)

urlencode[编辑]

MediaWiki原生函数。
获取URL编码后的字符串,并可以使用预设空格格式改变编码空格时的效果,可以使用的格式分别是:QUERY(空格变为“+”)、WIKI(空格变为“_”)、PATH(空格变为“%20”)。

格式
{{urlencode: 普通字符串 | 空格格式(QUERY、WIKI或PATH,默认为QUERY)}}
例子
{{urlencode: ABC中文 英文 123&456+1%}}ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | QUERY}}ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | WIKI}}ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | PATH}}ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25

var[编辑]

来自Variables。
获取特定变量的内容值,需配合vardefinevardefineecho使用,比如在这里用{{#vardefine: abc | def}}定义变量abc。无法获取在后面代码中才定义的变量。当要获取的变量没被定义时,会输出默认值,已被定义的判定可参考varexists

格式
{{#var: 变量名称 | 默认返回值(默认为空字符串)}}
例子
{{#var: count | 未定义}}未定义获取未定义的变量count,输出默认值。
{{#var: abc | xyz}}def获取已定义的变量abc。

var_final[编辑]

来自Variables。
只使用varvarexists的话,只能顺着代码的流向获取在前面的代码中已经定义的变量。
比如这里的代码位于vardefine下的例子前,如果现在获取{{#var: count}},因为定义count的代码还没处理,所以只能获取到变量未定义时默认的空白字符串“”;或者如果使用{{#var: count | 未定义}},则返回“未定义”。
而使用var_final就可以获取所有代码均已经过处理后,指定变量的最终内容值。

此函数在代码运算的最后关头才会获得返回值,因有此特殊性此函数在很多情况下都会出现未预期的表现,安全起见不建议把此函数放在模板、解析器函数及其他需要后台运算的代码之内,放在纯HTML内则是安全的。
格式
{{#var_final: 变量名称 | 默认返回值(默认为空字符串)}}
例子
{{#var_final: count | 未定义}}1在此处获取在后面代码中才会被定义的count的内容。

vardefine[编辑]

来自Variables。
把字符串内容作为一个变量储存,便于在后面代码中再次使用。此函数只会在内部改变变量的值,不会输出任何字符。

格式
{{#vardefine: 变量名称 | 内容值(默认为空字符串)}}
例子
{{#vardefine: count | 0}} 将定义一个名为“count”的变量,初始内容为“0”,需注意此为字符串“0”,现在变量count的内容为“0”。
{{#vardefine: text |}} 也可以定义初始内容为空白的变量,现在变量text的内容为“”。
{{#vardefine: text | 新}} 通过同样的方法可以覆盖已有变量的内容,现在变量text的内容为“新”。
{{#vardefine: text | {{#var: text}}内容}} 通过与var组合,给变量拼接更多内容,现在变量text的内容为“新内容”。
{{#vardefine: count | {{#expr: {{#var: count}}+1}}}} 通过与expr组合,递增变量,现在变量count的内容为“1”。

vardefineecho[编辑]

来自Variables。
用法和内部效果vardefine完全一致,只是会在改变变量值的同时输出改变后变量的值。

格式
{{#vardefineecho: 变量名称 | 内容值(默认为空字符串)}}
例子
{{#vardefineecho: text | 输出定义值}}输出定义值
定义变量同时输出变量内容,现在变量text的内容为“输出定义值”。

varexists[编辑]

来自Variables。
用于判断一个变量是否已由vardefinevardefineecho定义,即使初始值为空字符串,也会被判定为已被定义。若该变量已被定义,会返回“1”,否则返回空字符串,可以直接配合if使用。

格式
{{#varexists: 变量名称}}
例子
{{#varexists: text}}1
{{#varexists: count}}1
{{#varexists: null}}
{{#if: {{#varexists: extra}} | 存在 | 不存在}}不存在

while[编辑]

来自Loops。
当型循环。循环解析给定的表达式,当条件值为非空时结束。

格式
{{#while: | 条件 | 表达式}}

注意第一个参数不填。

例子
{{#vardefine: i | 0}}{{#while: | {{#ifexpr: {{#var: i}} < 5 | true}}{{#vardefine: i | {{#expr: {{#var: i }} + 1}}}} | <nowiki/> * {{#var: i}} }} → 按顺序生成数字列表。

  • 1
  • 2
  • 3
  • 4
  • 5

widget[编辑]

来自Widgets。 调用预先编写好的Widgets小工具,并可以将参数传入Widgets中。小工具的编写方法请参照Extension:Widgets

格式
{{#widget: 小工具名称 | 参数名1=值1 | 参数名2=值2 | ... | 参数名n=值n}}

参见[编辑]