Help:魔术字/解析器函数
解析器函数与系统变量非常相似,但与后者相比,前者全部要求至少传入一个参数,所有的参数1与函数名之间均用:
而不是|
分割。
解析器函数有时会在函数名前加上#
用以与模板区分。
列表
以下表格详细说明了萌百可用的解析器函数,部分术语未作解释。
解析器函数 | 输入 → 输出 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
URL与标题的数据和解析 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{localurl:页面名称}} {{localurl:页面名称|查询字符串}}
|
{{localurl:Mainpage}} → /Mainpage{{localurl:Mainpage|printable=yes}} → /index.php?title=Mainpage&printable=yes
|
指定页面的相对路径 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{fullurl:页面名称}} {{fullurl:页面名称|查询字符串}} {{fullurl:跨wiki前缀:远程页面名称|查询字符串}}
|
{{fullurl:Category:帮助}} → https://moegirl.icu/Category:%E5%B8%AE%E5%8A%A9{{fullurl:Category:帮助|action=edit}} → https://moegirl.icu/index.php?title=Category:%E5%B8%AE%E5%8A%A9&action=edit{{fullurl:mw:MediaWiki/zh|action=edit}} → https://www.mediawiki.org/wiki/MediaWiki/zh?action=edit{{fullurl:mw:Help:Magic words|action=edit}} → https://www.mediawiki.org/wiki/Help:Magic_words?action=edit
|
指定页面的相对协议路径,该解析器函数也能识别跨wiki前缀。 注意:未被方括号包裹起来的相对协议路径不会自动生成为链接 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{canonicalurl:页面名称}} {{canonicalurl:页面名称|查询字符串}} {{canonicalurl:interwiki:远程页面名称|查询字符串}}
|
{{canonicalurl:Category:帮助}} → https://moegirl.icu/Category:%E5%B8%AE%E5%8A%A9{{canonicalurl:Category:帮助|action=edit}} → https://moegirl.icu/index.php?title=Category:%E5%B8%AE%E5%8A%A9&action=edit{{canonicalurl:mw:Help:Magic words|action=edit}} → https://www.mediawiki.org/wiki/Help:Magic_words?action=edit
|
指定页面的绝对协议路径,该解析器函数也能识别跨wiki前缀。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{filepath:文件名称}} {{filepath:文件名称|缩略图大小}} {{filepath:文件名称|nowiki}}
|
{{filepath:Box-1.png}} → {{filepath:Box-1.png|120}} → {{filepath:Box-1.png|nowiki}} → https://moegirl.icu/media/Box-1.png
|
指定文件的绝对协议路径,可以指定缩略图大小(仅能指定宽度大小,单位为px),也可以指定是否被直接渲染为图片 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{urlencode:字符串}} {{urlencode:字符串|QUERY}} 、{{urlencode:字符串|WIKI}} 、{{urlencode:字符串|PATH}}
|
{{urlencode:x:y/z á é-萌娘百科}} 、{{urlencode:x:y/z á é-萌娘百科|QUERY}} → x%3Ay%2Fz+%C3%A1+%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91{{urlencode:x:y/z á é-萌娘百科|WIKI}} → x:y/z_%C3%A1_%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91{{urlencode:x:y/z á é-萌娘百科|PATH}} → x%3Ay%2Fz%20%C3%A1%20%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91
|
输出指定字符串经编码后的结果。不同的参数指定不同的编码规则,用于解析页面标题到MediaWiki类站点链接时建议使用WIKI,解析字符串到文件名时建议使用PATH,解析字符串到搜索引擎链接时建议使用(空)、QUERY;如果你不清楚如何选择时,你可以到Talk:提问求助区求助
注意:现阶段萌百MediaWiki版本不支持参数指定,可尝试使用{{replace}}等进行替换 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{anchorencode:字符串}}
|
{{anchorencode:x:y/z á é-萌娘百科}} → x:y/z_á_é-萌娘百科
|
输出指定字符串经MediaWiki页内标题链接编码规则编码后的结果,可用于指定内容的标题的页内导航 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#rel2abs: 路径}} {{#rel2abs: 路径 | 基础路径}}
|
{{#rel2abs: /quok | Help:Foo/bar/baz}} → Help:Foo/bar/baz/quok{{#rel2abs: ../../../../quok | Help:Foo/bar/baz}} → 错误:路径深度无效:“Help:Foo/bar/baz/../../../../quok”(试图访问根节点之上的节点)。
|
本函数用于以通用的命令行目录变换格式来变换页面路径:
对于不合法的参数1,函数并不会直接抛出错误,而是尝试剔除错误部分继续工作:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#titleparts: 要解析的标题 | 要返回的层数 | 返回部分的起始点}}
|
{{#titleparts: Talk:Foo/bar/baz/quok | 2}} → Talk:Foo/bar{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2}} → bar/baz{{#titleparts: Talk:Foo/bar/baz/quok | -2}} → Talk:Foo/bar{{#titleparts: Talk:Foo/bar/baz/quok | -1 | -2}} → baz
|
该函数用于输出给定标题的一部分:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
名字空间 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
名字空间解析器函数{{ns:}} 返回标准名字空间的本地化名称(萌百使用标准名称作为本地化名称)或自定义名字空间的名称,参数1可以指定名字空间的ID,标准名字空间的MediaWiki标准名称、本地(语言变种)化名,自定义名字空间的名称:
需要注意的是:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
格式化函数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{formatnum:未格式化的数字}} {{formatnum:已格式化的数字|R}} {{formatnum:未格式化的数字|NOSEP}}
|
简单例子:
高级例子:
错误的输入会导致无法预测的输出,不论是否有参数2
|
参数1接受任何阿拉伯数字,按照站点默认区域数字格式用分位符号分组,将其本地化后输出。
参数2有两个可接受字符串:
注意:
如果你真的需要输入一个无法保证格式正确的数字的话,你可以使用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#dateformat:日期}} {{#formatdate:日期}} {{#dateformat:日期|格式规则}} {{#formatdate:日期|格式规则}}
|
|
参数1接受一个未格式化的日期,按照设置#显示里的“日期格式”设置将其格式化。对于未登录的读者和未设置日期格式的用户,可以通过参数2指定格式:mdy 、dmy 、ymd (输出的字母全小写)。如果参数1只给出月日,那么只有mdy 和dmy 才是有效的格式。如果未指定格式或者格式无效,那么参数1的格式将被指定为输出格式。如果参数1的日期格式无效,那么函数输出参数1的原样。
警告:即使ISO 8601格式要求参数1的日期是公历日期,若参数2指定ISO 8601,函数也能对那些超出通常公历范围的日期进行格式化(例如1583年之前的日期)。不过,函数无法正确转换ISO 8601格式下的负数年份和通常格式下的公元前的年份。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{lc:字符串}}
|
{{lc:DATA CENTER}} → data center
|
将字符串完全小写化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{lcfirst:字符串}}
|
{{lcfirst:DATA center}} → dATA center
|
将字符串首字母小写化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{uc:字符串}}
|
{{uc:text transform}} → TEXT TRANSFORM
|
将字符串完全大写化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{ucfirst:字符串}}
|
{{ucfirst:text TRANSFORM}} → Text TRANSFORM
|
将字符串首字母大写化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{padleft:原字符串|补足后的字符串长度}} {{padleft:原字符串|补足后的字符串长度|补足用的字符串}}
|
{{padleft:xyz|5}} → 00xyz{{padleft:xyz|5|_}} → __xyz{{padleft:xyz|5|abc}} → abxyz{{padleft:xyz|7|abc}} → abcaxyz{{padleft:xyz|2}} → xyz{{padleft:|4|xyz}} → xyzx
|
将参数1通过在左侧补上参数3指定的字符串(默认为0)补足到参数2指定的长度,参数3指定的字符串可能被截断以保证补足后的字符串长度满足要求 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{padright:原字符串|补足后的字符串长度}} {{padright:原字符串|补足后的字符串长度|补足用的字符串}}
|
{{padright:xyz|5}} → xyz00{{padright:xyz|5|_}} → xyz__{{padright:xyz|5|abc}} → xyzab{{padright:xyz|7|abc}} → xyzabca{{padright:xyz|2}} → xyz{{padright:|4|xyz}} → xyzx
|
与{{padleft:}} 近乎一样,只是在右边补足
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地化函数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{plural:数字|单数形式|复数形式}}
|
{{plural:0|is|are}} → are{{plural:1*1|is|are}} → is{{plural:21 mod 10|is|are}} → are{{plural:{{#expr:21 mod 10}}|is|are}} → is
|
根据参数1是单数还是复数,输出不同的字符串:单数输出参数2,复数输出参数3。判断是否单复数的标准是{{#switch: 1 | {{{1}}} | {{#expr: {{{1}}} }} = true | #default = false}} 。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{gender:指定用户名|男性时的文本|女性时的文本|未选择性别时的文本}} {{gender:|男性时的文本|女性时的文本|未选择性别时的文本}} {{gender:.|男性时的文本|女性时的文本|未选择性别时的文本}}
|
{{gender:AnnAngela|男性时的文本|女性时的文本|未选择性别时的文本}} →未选择性别时的文本{{gender:|男性时的文本|女性时的文本|未选择性别时的文本}} →未选择性别时的文本(此处使用{{UserGender}}渲染){{gender:.|男性时的文本|女性时的文本|未选择性别时的文本}} →未选择性别时的文本
|
根据指定的用户的设置#用户资料的“语言”设置中的性别部分,返回该性别对应的文本。
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{int:信息名称}}
|
{{int:edit}} → 编辑{{int:editsectionhint|MediaWiki}} → 编辑章节:MediaWiki
|
返回指定信息的界面语言变种翻译。可以在MediaWiki:信息标准名(en-US)/界面语言变种 里找到,亦可以修改。
对于部分信息,可以提供参数给它们,它们可以通过$1、$2……获取这些参数,在第二个例子里,MediaWiki替换了$1。 这种用法相较于 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
特殊嵌入 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{:(主)名字空间页面名}}
|
(主名字空间页面) | 通过: 将名字空间强制指定为(主),从而嵌入(主)名字空间的页面
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{msg:与某一魔术字重名的模板名}} {{raw:与某一魔术字重名的模板名}}
|
(模板正常渲染内容) | 与{{Tempate:与某一魔术字重名的模板名}} 一样可以避免魔术字与模板名冲突,而直接嵌入模板
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{msgnw:模板名}}
|
{{msgnw:tl}} → {{{{ {{{|safesubst:}}}#if:{{{3|}}}|{{{3|}}}:|}}[[{{ {{{|safesubst:}}}ns:Template}}:{{{1}}}|{{{1}}}]]{{ {{{|safesubst:}}}#if:{{{2|{{{arg|}}}}}}|{{!}}{{{2|{{{arg}}}}}}}}}}<noinclude>
{{Documentation}} <!-- 請在將分類與跨語言連結增加在 /doc 子頁面 --> [[Category:内部链接模板]] </noinclude> |
把模板的源码以纯文本形式输出,自带nowiki效果 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{subst:模板名}}
|
(模板的正常渲染内容,而模板源码在替换完参数,删去<noinclude/> 内容后粘贴到页面源码中)
|
把模板的源码嵌入到页面源码中,参见Help:替换引用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{safesubst:模板名}}
|
(模板的正常渲染内容。当上层模板是被正常嵌套时按正常方式被嵌套;而当上层模板是被替换引用时,模板源码在替换完参数,删去<noinclude/> 内容后粘贴到页面源码中)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
运算与逻辑判断(来自扩展:解析器函数) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#expr: 数学表达式 }}
|
{{#expr: 1 and -1 }} → 1
|
本函数计算并返回数学表达式的结果,你可以使用+、-、*、/ 来进行计算。本函数将e (自然对数的底数)、pi (π)作为常数使用。本函数支持的运算符如下所示:
注意:
当表达式有误时函数会返回一个错误信息,此时无法再继续计算,请注意。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#if: X | A | B }}
|
{{#if: X | A | B }} → A{{#if: | A | B }} → B{{#if: | A }} →
|
该函数用于条件逻辑判断:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifeq: X | Y | A | B }}
|
{{#ifeq: 1 | 0 | A | B }} → B{{#ifeq: 1 | 1 | A | B }} → A
|
该函数用于条件逻辑判断:
注: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#iferror: X | A | B }}
|
{{#iferror: <span class="error"></span> | error | correct}} → error{{#iferror: I'm fine. | error}} → I'm fine.{{#iferror: {{#rel2abs: ../../../../quok | Help:Foo/bar/baz}}}} →
|
该函数用于条件逻辑判断:
该函数相当适合于执行可能会报错的其他的解释器函数(比如#expr,#time和#rel2abs)、隐藏模板错误(比如模板循环和模板递归)以及隐藏一些其它的解释器“软错误”(如Lua模块、Widget等)。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifexist: 页面标题 | A | B }}
|
{{#ifexist: Main Page | A | B }} → A{{#ifexist: 肯定不存在的标题 | A | B }} → B{{#ifexist: 肯定不存在的标题 | A }} → {{#ifexist: File:Box-1.png | A | B }} → B{{#ifexist: Image:Box-1.png | A | B }} → B{{#ifexist: Media:Box-1.png | A | B }} → A
|
[高开销][1] 该函数用于条件逻辑判断:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifexpr: Fx(表达式) | A | B }}
|
{{#ifexpr: 1+1 | A | B }} → A{{#ifexpr: 1-1 | A | B }} → B{{#ifexpr: 1-1 | A }} →
|
该函数用于条件逻辑判断:
注: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#switch: X | Y = A | #default = B}}
|
{{#switch: 1 | 0 = A | 1 = B | #default = C }} → B {{#switch: 2 | 0 = A | 1 = B | C }} → C |
该函数用于条件逻辑判断:
注意:
当一个参数没有带有
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#time: 格式参数 }} {{#time: 格式参数 | 时间参数 }} {{#time: 格式参数 | 时间参数 | 语言代码}} {{#time: 格式参数 | 时间参数 | 语言代码 | 是否使用本地时区}}
|
{{#time: Y/m/d}} → 2024/11/21{{#time: Y/m/d|2017-01-04}} → 2017/01/04{{#time: F d H:i:s|+1 second}} → 11月 21 23:14:40{{#time: F d H:i:s|+1 second|en}} → November 21 23:14:40{{#time: F d H:i:s|+1 second|zh|1}} → 11月 22 07:14:40
|
该函数用来输出时间:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#timel: 格式参数 }} {{#timel: 格式参数 | 时间参数 }} {{#timel: 格式参数 | 时间参数 | 语言代码}}
|
{{#timel: Y/m/d}} → 2024/11/22{{#timel: Y/m/d|2017-01-04}} → 2017/01/04{{#timel: Y/m/d H:i:s|+1 second}} → 2024/11/22 07:14:40{{#timel: Y/m/d H:i:s|+1 second|en}} → 2024/11/22 07:14:40{{#timel: e}} → PRC{{#timel: O}} → +0800{{#timel: P}} → +08:00{{#timel: T}} → CST{{#timel: Z}} → 28800
|
该函数与{{#time}} 几乎一致,除了没有参数4并且强制使用本地时区以外。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
变量(来自扩展:Variables) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#vardefine: 变量名 | 变量值}}
|
- | 将 变量值 赋给一个名为 变量名 的变量 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#vardefineecho: 变量名 | 变量值}}
|
{{#vardefineecho: hello | world}} → world
|
将 变量值 赋给一个名为 变量名 的变量,并输出 变量值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#var: 变量名}} {{#var: 变量名 | 默认值}}
|
{{#var: hello}} → world{{#var: foo | no-op}} → no-op
|
输出名为 变量名 的变量的值,如果没有名为 变量名 的变量则输出默认值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#varexists: 变量名}} {{#varexists: 变量名 | 存在时的返回值}} {{#varexists: 变量名 | 存在时的返回值 | 不存在时的返回值}}
|
{{#varexists: hello}} → 1{{#varexists: foo | exist}} → {{#varexists: foo | exist | does not exist}} → does not exist
|
判断是否存在一个名为 变量名 的变量,若存在则返回 存在时的返回值(默认为 1 ),若不存在则返回 不存在时的返回值(默认为 空)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#var_final: 变量名}} {{#var_final: 变量名 | 默认值}}
|
{{#var_final: index}} → 5
|
在解析器解析到该魔术字时,先展开 默认值 对应的 wikitext,然后等待解析器解析完全文:
注意:不论 默认值 是否用得上,其内的 wikitext 都会被执行,您可以在沙盒里测试以下代码并观察页面标题: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
循环(来自扩展:Loops) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
每个页面中循环次数都不能大于99次,否则将抛出错误,因此,必须控制循环次数合理使用,对于模板中使用循环更是应该小心,最好不要超过20次,如果是某些可能在同一页面重复调用的模板,就一定不要使用循环了,若流程大体可控可以手动写出循环,或者在Lua模块中进行循环的操作。[2]
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#while: | 条件 | 语句}}
|
{{#vardefine: index | 0 }}{{#while: | {{#ifexpr: {{#var: index }} < 5 | true }} | <nowiki></nowiki> * {{#var: index }}{{#vardefine: index | {{#expr: {{#var: index }} + 1 }} }} }}→
|
当 条件 不为空时执行 语句
注意:扩展:Loops会对所有传入的参数值去除开头结尾的空白字符(包括空格、换行等)后再处理,如果你不想你的换行被删除请使用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#dowhile: | 条件 | 语句}}
|
{{#vardefine: i | 99 }}{{#dowhile: | {{#ifexpr: {{#var: i}} < 5 | true }} | <nowiki></nowiki> * {{#var: i}}{{#vardefine: i| {{#expr: {{#var: index }} + 1 }} }} }}→
|
先执行一次 语句,然后当 条件 不为空时继续执行语句(注意例子里的初始值) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#loop: 变量名 | 初始值 | 循环次数 | 语句}}
|
{{#loop: count | 1 | 4 | <nowiki></nowiki> * This is round {{#var: count }} and we have {{#expr: 4 - {{#var: count }} }} more to go }}→
|
循环执行语句:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#forargs: 变量名前缀 | 索引变量名 | 值变量名 | 语句}}
|
若模板 Template:Loops Test 的内容如下:{{#forargs: arg | key | value | <nowiki></nowiki> * {{#var: key }} = {{#var: value }} }}那么若调用如下代码: {{Loops Test | arg1=val1 | spam=spammity | arg5=val5 | argument=value }} 则输出:
|
遍历参数:
变量名前缀 可以为空,此时将会对所有的参数进行循环且不对参数名做操作直接赋值给名为 索引变量名 的变量。 循环顺序按照参数传入的先后顺序。注意Lua展开模板无视参数顺序,所以使用Lua展开带有 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#fornumargs: 索引变量名 | 值变量名 | 语句}}
|
若模板 Template:Loops Test 的内容如下:{{#fornumargs: number | value | <nowiki></nowiki> * {{#var: number }} = {{#var: value }} }}那么若调用如下代码: {{Loops Test | Alfa | B = Bravo | Charlie | 5 = Echo }} 则输出:
|
遍历参数:
循环顺序按照数字参数的数字大小顺序:即使上例中5 = Echo放在Alfa之前,5 = Echo仍会最后输出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
杂项 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#language:语言代码}} {{#language:语言代码|目标语言代码}}
|
{{#language:zh-cn}} → 中文(中国大陆){{#language:zh-cn|en-us}} → 中文(中国大陆)
|
以参数2的语言代码指定的语言(没有则以参数1的)输出参数1的语言代码对应的语言全名 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#special:特殊页面名}}
|
{{#special:watchlist}} → Special:监视列表
|
输出指定标准名称的特殊页面的本地化名。
可以在函数名后加e以输出经MediaWiki URL编码规则编码后的页面名:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#tag:标签名称|内容|属性1=属性值1|属性2=属性值2|……}}
|
{{#tag:div|右浮动|style="border: 1px gray solid; float: right; clear: both; padding: 1em;"}} → 右浮动
|
输出一个元素的HTML源码,参数1为其标签名,参数2为其内容,参数3及之后为其属性值对。请不要向参数1传入自闭合标签名,如br、img、hr等。
内容中的wikitext会在tag函数渲染之前完成渲染,并与往常一样阻止不受信任的代码渲染。 因此若标签为nowiki且内容有使用模板则会输出其模板输出结果的代码。 (pre标签同理) 如果内容需要为空,则参数2必须为空,而不是省略。 不支持noinclude、includeonly。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#invoke:模块名|函数名|参数1|参数2|……}}
|
(根据指定模块输出) | Lua模块的调用方法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{DISPLAYTITLE:标题}} {{DISPLAYTITLE:标题|noerror}} {{DISPLAYTITLE:标题|noreplace}}
|
- | 本函数用以对当前页面的标题的格式做出变换,该函数并不会修改页面本来的标题(注)在url中显示的标题,只是更改了页面中标题显示的文字和效果,例如改变大小写、下划线替代空格等。
参数1为“noerror”或“noreplace”时,会阻止由于使用多个该函数而导致的错误抛出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{DEFAULTSORT:分类索引}} {{DEFAULTSORTKEY:分类索引}} {{DEFAULTCATEGORYSORT:分类索引}} {{DEFAULTSORT:分类索引|noerror}} {{DEFAULTSORT:分类索引|noreplace}}
|
- | 本函数用以改变当前页面在分类中的索引,比如{{DEFAULTSORT:A}} 会把页面分到A部分下。
参数1为“noerror”或“noreplace”时,会阻止由于使用多个该函数而导致的错误抛出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#choose:选项1|选项2|选项3}}
|
{{#choose:选项1|选项2|选项3}} → 选项3
|
等概率随机选择选项中的一个作为输出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#cscore:UserName|参数}}
|
{{#cscore:示例用户|score}} → {{#cscore:示例用户|score}}{{#cscore:示例用户|changes}} → {{#cscore:示例用户|changes}}{{#cscore:示例用户|pages}} → {{#cscore:示例用户|pages}}
|
获取用户的编辑页面数(pages)/编辑次数(changes)/战斗力(score)。 |
|
参见
- MediaWiki官方文档
- 魔术字
- 帮助:扩展:解析器函数
- ↑ 由于萌百使用了缓存,因此使用该函数检测主站页面可能不会被标记为高开销,只有检测多媒体文件(Media虚拟名字空间)会触发,但仍应该避免在同一页面中大量使用。
- ↑ User:東東君/从零开始的模板教程#循环语句