Help:解析器函数

来自Minecraft基岩版开发Wiki

本页面主要介绍本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}}8884
{{#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,238,但是实际需要的是6238,原始格式可以用{{formatnum:{{NUMBEROFPAGES}}|R}}来得到,详见formatnum。例子如下:
{{#expr:{{NUMBEROFPAGES}}+100}}表达式错误:无法识别的符号“,”。
{{#expr:{{formatnum:{{NUMBEROFPAGES}}|R}}+100}}6338
日期
若想要进行关于日期的计算(比如:将当前日期与某日期进行比较),首先应将时间转化为“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 月份号,无前导零。 3
m 月份号,有前导零。 03
M 月份名称缩写,使用网站语言。(英文结果为 Mar 3月
F 月份名称全称,使用网站语言。(英文结果为 March 3月
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 规定的周数,有前导零。 13
j 月份内的日期号,无前导零。 30
d 月份内的日期号,有前导零。 30
z 年份内的日期号 (1月1日 = 0)。
“”“注意:”“”要获得ISO规定的日期号,需加上1。
89
D 星期的缩写。国际上不通用。
l 星期的全称。国际上不通用。 星期六
N ISO 8601 规定的星期编号(星期一 = 1,星期日 = 7)。 6
w 星期编号(星期日=0,星期六=6)。 6
a 早上为am(00:00:00 → 11:59:59);
其他时间为 pm(12:00:00 → 23:59:59)。
am
A 上方a的大写形式。 AM
g 12小时制的时,无前导零。 8
h 12小时制的时,有前导零。 08
G 24小时制的时,无前导零。 8
H 24小时制的时,有前导零。 08
分 和 秒
i 小时后的分钟数,有前导零。 25
s 分钟后的秒钟数,有前导零。 15
U UNIX时间(Unix time)。从格林尼治时间(GMT)1970年1月1日00:00:00开始计的秒钟数。 1711787115
时区(需MediaWiki1.22wmf2
e 时区标识符。 UTC
I 当前日期是否使用日光节约时间(夏令时)。 0
O 与格林尼治时间(GMT)的时差。 +0000
P 与格林尼治时间(GMT)的时差,带有冒号分隔。 +00:00
T 时区缩写。 UTC
Z 以秒计的时差。 0
杂项
t 当前月份的天数。 31
c ISO 8601 格式的日期,等价于 Y-m-d"T"H:i:s+00:00 2024-03-30T08:25:15+00:00
r RFC 5322格式的日期,等价于 D, j M Y H:i:s +0000,其中星期名和月份名国际上不通用。 Sat, 30 Mar 2024 08:25:15 +0000
非公历日历
伊斯兰历(Islamic calendar),又称希吉来历(Hijri calendar)
xmj 月份内的日期号。 20
xmF 月份名称全称。 赖买丹月
xmn 月份号。 9
xmY 全长表示的年。 1445
伊朗历(Iranian calendar),又称贾拉利历(Jalali calendar)
xij 月份内的日期号。 11
xiF 月份名称全称。 Farvardin
xin 月份号。 1
xiY 全长表示的年。 1403
xiy 2位数表示的年。 03
希伯来历(Hebrew calendar
xjj 月份内的日期号。 20
xjF 月份名称全称。 第二亚达月
xjt 当前月份的天数。 29
xjx 属格形式的月份名称。 Adar II
xjn 月份号。 14
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}}x8x被原样输出,g被当作格式控制代码)
{{#time: Y-m-d}}2024-03-30
{{#time: [[Y]] m d}}2024 03 30
{{#time: [[Y (year)]]}}2024 (24UTCamSat, 30 Mar 2024 08:25:15 +0000) (year被当作格式控制代码year
{{#time: [[Y "(year)"]]}}2024 (year)
{{#time: i“s"}}25”15"
“语言代码”使用的是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}}1711787115
{{#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 30 00:00:00 (使用了一天的开始时刻,填补了当前月份内的日期号、年份)
{{#time: Y m d H:i:s | 2003}}2003 03 30 00:00:00 (使用了一天的开始时刻,填补了当前年份内的日期号)
在MediaWiki r86805之后,4位数字一概会被认为是年份,而非小时与分钟:
{{#time: Y m d H:i:s | 1959}}1959 03 30 00:00:00
6位数字会被认为是小时、分钟和秒钟,如果得到的时间不正确,则会报错(一概不会当作年份和月份):
{{#time: Y m d H:i:s | 195909}}2024 03 30 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}}

参见[编辑]