MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

帮助:魔术字/解析器函数

来自MCBBS Wiki
Litwak913留言 | 贡献2023年5月3日 (三) 17:47的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索
这篇帮助文档的难度为:困难
这篇帮助文档比较复杂,适合资深编辑者阅读。阅读这篇帮助文档前,您需要熟练掌握Wiki知识,对复杂语法有一定的了解。

解析器函数与系统变量非常相似,但与后者相比,前者全部要求至少传入一个参数,所有的参数1与函数名之间均用:而不是|分割。

解析器函数有时会在函数名前加上#用以与模板区分。

本页面是萌娘百科[1]页面的拷贝,经过了一些修改。

列表

以下表格详细说明了Wiki可用的解析器函数,部分术语未作解释。

解析器函数 输入 → 输出 描述
URL与标题的数据和解析
{{localurl:页面名称}}
{{localurl:页面名称|查询字符串}}
{{localurl:首页}} → /wiki/%E9%A6%96%E9%A1%B5
{{localurl:首页|printable=yes}} → /index.php?title=%E9%A6%96%E9%A1%B5&printable=yes
指定页面的相对路径
{{fullurl:页面名称}}
{{fullurl:页面名称|查询字符串}}
{{fullurl:跨wiki前缀:远程页面名称|查询字符串}}
{{fullurl:Category:帮助}}https://mcbbs.wiki/wiki/%E5%88%86%E7%B1%BB:%E5%B8%AE%E5%8A%A9
{{fullurl:Category:帮助|action=edit}}https://mcbbs.wiki/index.php?title=%E5%88%86%E7%B1%BB:%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://mcbbs.wiki/wiki/%E5%88%86%E7%B1%BB:%E5%B8%AE%E5%8A%A9
{{canonicalurl:Category:帮助|action=edit}}https://mcbbs.wiki/index.php?title=%E5%88%86%E7%B1%BB:%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:文件名称|nowiki}}
{{filepath:文件名称|缩略图大小}}
{{filepath:混乱.png}}
{{filepath:混乱.png|120}}
{{filepath:混乱.png|nowiki}}
指定文件的绝对协议路径,可以指定缩略图大小(仅能指定宽度大小,单位为px),也可以指定是否被直接渲染为图片
{{urlencode:字符串}}
{{urlencode:字符串|QUERY}}{{urlencode:字符串|WIKI}}{{urlencode:字符串|PATH}}
{{urlencode:混乱}}{{urlencode:混乱|QUERY}} → %E6%B7%B7%E4%B9%B1
{{urlencode:混乱|WIKI}} → %E6%B7%B7%E4%B9%B1
{{urlencode:混乱|PATH}} → %E6%B7%B7%E4%B9%B1
输出指定字符串经编码后的结果。不同的参数指定不同的编码规则,用于解析页面标题到MediaWiki类站点链接时建议使用WIKI,解析字符串到文件名时建议使用PATH,解析字符串到搜索引擎链接时建议使用(空)、QUERY;如果你不清楚如何选择时,你可以到讨论:讨论板求助
{{anchorencode:字符串}} {{anchorencode:混乱}} → 混乱 输出指定字符串经MediaWiki页内标题链接编码规则编码后的结果,可用于指定内容的标题的页内导航
{{#rel2abs: 路径}}
{{#rel2abs: 路径 | 基础路径}}
{{#rel2abs: /quok | Help:Foo/bar/baz}} → Help:Foo/bar/baz/quok
本函数用于以通用的命令行目录变换格式来变换页面路径:
  • 如果没有给定参数2,基础路径为当前页面路径;
  • 参数1中可以使用以下格式来变换路径:
    • .指定基础路径;
    • ..使基础路径上移一层
    • /path使基础路径移动到下一层名为path的页面

对于不合法的参数1,函数并不会直接抛出错误,而是尝试剔除错误部分继续工作:

  • {{#rel2abs: ../quok/. | Help:Foo/bar/baz}} → Help:Foo/bar/quok
  • {{#rel2abs: ../../../quok | Help:Foo/bar/baz}} → quok
{{#titleparts: 要解析的标题 | 要返回的层数 | 返回部分的起始点}} {{#titleparts: Talk:Foo/bar/baz/quok | 2}} → 讨论:Foo/bar
{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2}} → bar/baz
{{#titleparts: Talk:Foo/bar/baz/quok | -2}} → 讨论:Foo/bar
{{#titleparts: Talk:Foo/bar/baz/quok | -1 | -2}} → baz
该函数用于输出给定标题的一部分:
  1. 参数1指定要解析的标题;
  2. 参数2指定返回的部分的层数,默认接受正整数向后计数,本参数也可以接受一个负整数,用以从最后一层向前计数舍去被计入的部分;
  3. 参数3指定从何处开始返回,默认接受正整数从根路径向后计数,本参数也可以接受一个负整数,用以从最后一层向前计数。

注意:

  • 本函数会对参数1先进行url解码再进行解析;
  • 本函数返回被解析后的部分;
  • 本函数返回的部分受MediaWiki标题限制:
    1. 所有下划线会被替换成空格:{{#titleparts: Talk:Foo/bah_boo|1|2}} → bah boo
    2. 只对前25层做划分,即第25层和第25层以下的内容会合并为1个第25层:{{#titleparts: 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28 | 2 | 24}} → 24/25/26/27/28
      为了避免这个缺陷,你可以用嵌套的方式:{{#titleparts: {{#titleparts: 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28 | 2 | 24}} | 1 | 2}} → 25
    3. 上一个函数提到的命令行目录变换格式不被接受;
    4. 参数1的首字母会变为大写:{{#titleparts: talk:a/b/c}} → 讨论:a/b/c
    5. 若参数1不合法则会被直接输出{{#titleparts: [[首页]]/123 | 1 | 2}}首页/123
名字空间
名字空间解析器函数{{ns:}}返回标准名字空间的本地化名称(Wiki使用标准名称作为本地化名称)或自定义名字空间的名称,参数1可以指定名字空间的ID,标准名字空间的MediaWiki标准名称、本地(语言变种)化名,自定义名字空间的名称:
  • {{ns:2}} = {{ns:User}} = {{ns:用户}} → 用户
  • {{ns:5}} = {{ns:Project Talk}} = {{ns:MCBBS Wiki讨论}} → MCBBS Wiki讨论

需要注意的是:

  1. 该解析器函数的参数1可以使用Image,效果与File一致;
  2. 在解析器函数名后加一个e可以得到经MediaWiki URL编码规则编码后的标准名字空间的本地化名称或自定义名字空间的名称,很适合用于外链中:
    • {{nse:5}} → MCBBS_Wiki%E8%AE%A8%E8%AE%BA
格式化函数
{{formatnum:未格式化的数字}}
{{formatnum:已格式化的数字|R}}
{{formatnum:未格式化的数字|NOSEP}}
简单例子:
  • {{formatnum:987654321.654321}} → 987,654,321.654321
  • {{formatnum:987,654,321.654321|R}} → 987654321.654321

高级例子:

  • {{formatnum:{{formatnum:987654321.654321}}|R}} → 987654321.654321(任何情况下)
  • {{formatnum:00001}} → 00,001
  • {{formatnum:987654321.654321 |NOSEP}} → 987654321.654321

错误的输入会导致无法预测的输出,不论是否有参数2|R

  • {{formatnum:987.654,321}} → 987.654,321
  • {{formatnum:987.654,321|R}} → 987.654321
参数1接受任何阿拉伯数字,按照站点默认区域数字格式用分位符号分组,将其本地化后输出。

参数2有两个可接受字符串:

  1. |R可以使函数的行为倒转,即输入已格式化的数字输出完全无格式数字(只有小数点.,没有其他的格式),可以用在数学计算中。但请注意只有在输入的数字是完全格式化后它的输出才符合预期;
  2. |NOSEP(“无分隔符”)参数会使数位分组分隔符和小数点分隔符不被修改,此时 formatnum 只会在不使用印度-阿拉伯数字系统的语言中将数字字符进行转换。NOSEP 参数还会防止出现意外的非标准数字分组。。

注意

  1. 开头的前导零不会被去除,如果你要去除请使用{{#expr:00001}}
  2. 如果输入的数字格式有误,那么输出的数字无法保证格式正确。

如果你真的需要输入一个无法保证格式正确的数字的话,你可以使用{{formatnum:}}两次,但请不要在输入数字可能有数位分组格式的情况下使用这种变通方式,否则分隔符可能会消失或数字无法被格式化。请注意这种方法是非常取巧的,因此它的输出结果可能不可靠。

{{#dateformat:日期}}
{{#formatdate:日期}}
{{#dateformat:日期|格式规则}}
{{#formatdate:日期|格式规则}}
  • {{#dateformat:25 dec 2009}} → 25 dec 2009
  • {{#formatdate:dec 25,2009|dmy}} → dec 25,2009
  • {{#dateformat:2009-12-25|mdy}}12月 25, 2009(本例子中只有这一行合法,mw添加了额外的信息:<span class="mw-formatted-date" title="2009-12-25">12月 25, 2009</span>
  • {{#formatdate:2009 dec 25|ISO 8601}} → 2009 dec 25
参数1接受一个未格式化的日期,按照设置#显示里的“日期格式”设置将其格式化。对于未登录的读者和未设置日期格式的用户,可以通过参数2指定格式:mdydmyymd(输出的字母全小写)。如果参数1只给出月日,那么只有mdydmy才是有效的格式。如果未指定格式或者格式无效,那么参数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:}}近乎一样,只是在右边补足
特殊嵌入
{{:(主)名字空间页面名}} (主名字空间页面) 通过:将名字空间强制指定为(主),从而嵌入(主)名字空间的页面
{{msg:与某一魔术字重名的模板名}}
{{raw:与某一魔术字重名的模板名}}
(模板正常渲染内容) {{Tempate:与某一魔术字重名的模板名}}一样可以避免魔术字与模板名冲突,而直接嵌入模板
{{msgnw:模板名}} {{msgnw:tl}} → <includeonly>&#123;&#123;{{#if:{{{3|}}}|{{{3|}}}:|}}[[Template:{{{1}}}|{{{1}}}]]{{#if:{{{2|{{{arg|}}}}}}|{{!}}{{{2|{{{arg}}}}}}}}&#125;&#125;</includeonly><noinclude>

{{Documentation}} [[Category:内部链接模板]] <templatedata> { "params": { "1": { "label": "模板名称", "example": "color", "type": "wiki-template-name", "required": true }, "2": { "label": "参数", "type": "string" } }, "description": "生成模板链接和用例", "format": "inline" } </templatedata></noinclude>

把模板的源码以纯文本形式输出,自带nowiki效果
{{subst:模板名}} (模板的正常渲染内容,而模板源码在替换完参数,删去<noinclude/>内容后粘贴到页面源码中) 把模板的源码嵌入到页面源码中,参见Help:替换引用
{{safesubst:模板名}} (模板的正常渲染内容。当上层模板是被正常嵌套时按正常方式被嵌套;而当上层模板是被替换引用时,模板源码在替换完参数,删去<noinclude/>内容后粘贴到页面源码中)
运算与逻辑判断(来自扩展:解析器函数)
{{#expr: 数学表达式 }} {{#expr: 1 and -1 }} → 1

{{#expr: ---...---1}}(95个“-”) = -1

本函数计算并返回数学表达式的结果,你可以使用+、-、*、/来进行计算。本函数将e(自然对数的底数)、pi(π)作为常数使用。本函数支持的运算符如下所示:
运算符 名称 优先级 元数 结合性 样例
+ 9 1 {{#expr: + 7}} = 7
- 9 1 {{#expr: - 7}} = -7
not 逻辑非 9 1 {{#expr: not 7}} = 0
* 8 2 {{#expr: 30 * 7}} = 210
/ 8 2 {{#expr: 30 / 7}} = 4.2857142857143
div 8 2 {{#expr: 30 div 7}} = 4.2857142857143
mod 8 2 {{#expr: 30 mod 7}} = 2
+ 6 2 {{#expr: 30 + 7}} = 37
- 6 2 {{#expr: 30 - 7}} = 23
round 舍入 5 2 {{#expr: 30 / 7 round 7}} = 4.2857143
= 等于 4 2 {{#expr: 30 = 7}} = 0
< 小于 4 2 {{#expr: 30 < 7}} = 0
> 大于 4 2 {{#expr: 30 > 7}} = 1
<= 小于等于 4 2 {{#expr: 30 <= 7}} = 0
>= 大于等于 4 2 {{#expr: 30 >= 7}} = 1
<> 不等于 4 2 {{#expr: 30 <> 7}} = 1
!= 不等于 4 2 {{#expr: 30 != 7}} = 1
and 逻辑与 3 2 {{#expr: 30 and 7}} = 1
or 逻辑或 2 2 {{#expr: 30 or 7}} = 1
abs 绝对值 10 1 {{#expr: abs 2}} = 2
{{#expr: abs -2}} = 2
^ 乘方 10 1 {{#expr: 2^3}} = 8
sqrt 开方 10 1 {{#expr: sqrt9}} = 3
ln 对数 10 1 {{#expr: ln10}} = 2.302585092994
log28(换底):{{#expr: ln8 div ln2}} = 3
floor 向下取整 ? 1 ? {{#expr:floor(5.2)}} = 5
ceil 向上取整 ? 1 ? {{#expr:ceil(5.2)}} = 6
支持:
sin、cos、tan
不支持:
csc、sec、cot
三角函数 10 1 弧度制:{{#expr:sin45}} = 0.85090352453412
角度制:{{#expr:cos(45 * pi div 180)}} = 0.70710678118655
支持:
asin、acos、atan
不支持:
acsc、asec、acot
反三角函数 10 1 弧度制:{{#expr:sin45}} = 0.5235987755983
角度制:{{#expr:(asin 0.5)*180/pi}} = 30

注意:

  1. round运算对运算数正负,位数正负有不同表现:
    • {{#expr: 999 * 999 round -2}} → 998000
    • {{#expr: 999 * 999 round -20}} → 0
    • {{#expr: 999 * 999 round -2.9}} → 998000(这是十分危险的作法,不推荐使用)
  2. 逻辑运算符把假映射为0,把真映射为非0,且返回值只有0(假)或1(真)。
  3. 同一表达式中先计算高优先级运算。括号优先级高于一切。
  4. 浮点误差有可能造成某些运算的不可预料的结果,特别是最后几位数字的不精确。因此在使用此函数进行非整数运算时,注意不要进行比较运算。
  5. 表达式的返回值可能是无法再计算的值(比如用科学计数法表示的数:{{#expr: 100000000000000000}} → 1.0E+17),或者有一部分有效数字没有显示出来。此时该值相当可能难以运算,因此在使用此函数进行运算时,须注意这些问题。

当表达式有误时函数会返回一个错误信息,此时无法再继续计算,请注意。

{{#if: X | A | B }} {{#if: X | A | B }} → A
{{#if: | A | B }} → B
{{#if: | A }}
该函数用于条件逻辑判断:
  • 如果X处为非空字符串(忽略前导后缀的空格)那么执行A(以wikitext格式解析);
  • 如果X处为空或只有空格那么执行B(以wikitext格式解析);
    • 如果B被省略则输出为空。
{{#ifeq: X | Y | A | B }} {{#ifeq: 1 | 0 | A | B }} → B
{{#ifeq: 1 | 1 | A | B }} → A
该函数用于条件逻辑判断:
  • 如果X == Y(忽略前导后缀的空格)那么执行A(以wikitext格式解析);
  • 否则执行B(以wikitext格式解析);
    • 如果B被省略则输出为空。

注:{{#if: X | A | B }} == {{#ifeq: X | | A | B }}

{{#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}}}}
该函数用于条件逻辑判断:
  • 如果X包含class="error"那么执行B(以wikitext格式解析);
    • 若B被省略则输出X;
  • 否则执行A(以wikitext格式解析);
    • 如果A被省略则输出为空。

该函数相当适合于执行可能会报错的其他的解释器函数(比如#expr,#time和#rel2abs)、隐藏模板错误(比如模板循环和模板递归)以及隐藏一些其它的解释器“软错误”(如Lua模块、Widget等)。

{{#ifexpr: Fx(表达式) | A | B }} {{#ifexpr: 1+1 | A | B }} → A
{{#ifexpr: 1-1 | A | B }} → B
{{#ifexpr: 1-1 | A }}
该函数用于条件逻辑判断:
  • 如果Fx != 0,那么执行A(以wikitext格式解析);
  • 否则执行B(以wikitext格式解析);
    • 如果B被省略则输出为空。

注:{{#ifexpr: Fx(表达式) | A | B }} == {{#ifeq: {{#expr: Fx(表达式)}} | 0 | B | A }}

{{#switch: X | Y = A | #default = B}}
{{#switch: 1
| 0 = A
| 1 = B
| #default = C
}}

→ B

{{#switch: 2
| 0 = A
| 1 = B
| C
}}

→ C

该函数用于条件逻辑判断:
  • 对于输入值X,函数会与每一个预设值Y做比较,如果相同(不考虑前导后缀空格)则执行对应结果(以wikitext格式解析);
    • 预设值与结果以=连接,作为参数提交给函数;
    • 如果预设值没有对应的结果则会将后面的第一个结果加以执行(例如:{{#switch: X | Y | Z = 1}}X == Y时输出1);
  • 如果没有任何一个预设值与输入值相同,则执行#default给出的默认结果;
    • 可以不设定默认结果;
    • 可以省略#default=,即用最后一个没有等号的参数作为默认值。

注意: 当一个参数没有带有=时,该参数会依照下列逻辑被分类:

  • 如果该参数不是最后一个没有等号的参数,那么它将被作为预设值考虑;
  • 否则它将被作为默认结果考虑。
{{#time: 格式参数 }}
{{#time: 格式参数 | 时间参数 }}
{{#time: 格式参数 | 时间参数 | 语言代码}}
{{#time: 格式参数 | 时间参数 | 语言代码 | 是否使用本地时区}}
{{#time: Y/m/d}} → 2024/04/27
{{#time: Y/m/d|2017-01-04}} → 2017/01/04
{{#time: F d H:i:s|+1 second}} → 4月 27 14:37:22
{{#time: F d H:i:s|+1 second|en}} → April 27 14:37:22
{{#time: F d H:i:s|+1 second|zh|1}} → 4月 27 22:37:22
该函数用来输出时间:
  • 格式参数用于指定输出的时间的格式,下表以样例时间为例说明各格式参数的作用。特别注意:系统默认时区为UTC+0,所以以下结果默认以协调世界时为依据,中国标准时间仅供本地时间对应,更改时区的办法参见表格后的说明部分。此处只列举常见的参数,更多参数请浏览幫助:扩展:解析器函數##time
    格式参数 说明 显示结果
    A 根据时间是上午还是下午,输出AM或PM PM
    a 根据时间是上午还是下午,输出am或pm pm
    c 输出长日期(ISO 8601格式) 2024-04-27T14:37:21+00:00
    D 星期数,以一个汉字显示
    d 日期日数,补足前导0 27
    F或M 月份,以当前语言输出 4月
    G或g 当前UTC时间小时数 14
    H或h 小时数,补足前导0 14
    i 分钟数,补足前导0 37
    j 日期日数 27
    L 日期星期数,1位数字,星期日为1,星期六为7 1
    l 日期星期数,3位汉字 星期六
    m 月份数,补足前导0 04
    N 星期数,星期一为1,星期日为7 6
    n 月份数 4
    r 英文长日期格式(ISO 8601格式) Sat, 27 Apr 2024 14:37:21 +0000
    s 秒数 21
    t 该月天数 30
    U UNIX时间戳 1714228641
    W 日期周数,显示日期为当年第几周,补足前导0 17
    w 星期数,星期日为0,星期六为6 6
    Y 日期年份,4位数字 2024
    y 日期年份,2位数字 24
    z 显示日期为当年第几日(1月1日是第0天) 117
  • 时间参数可以使用绝对时间,如“2008-12-31 23:59:59”,也可以使用相对时间,如“+7 days”或者“-5 hours”得到默认时间7日之后或默认时间5小时之前的时间。也可以二者混合使用,比如{{#time:Y-m-d H:i:s|2001-2-3 04:05:06 +1 year +2 months +3 days +4 hours +5 minutes +6 seconds}} → 2002-04-06 08:10:12
    时间参数也可以使用Unix时间戳,这需要在时间戳前添加@,如{{#time:Y-m-d H:i:s|@981144306}} → 2001-02-02 20:05:06,但如果在非Unix时间戳前添加@则很可能导致一个错误,详见幫助:扩展:解析器函數##time
  • 语言代码可以指定为mw支持的任意语言,例如en、zh-hant、ja之类的
  • 是否使用本地时区参数将会被传递给PHP解释器,若被解释为true则使用萌百本地时区(CST)

注意:

  • 如果想要输出字母本身,而该字母又是属于格式参数的一种时,可以用英文双引号包裹:{{#time: "Y/m/d" == Y/m/d}} → Y/m/d == 2024/04/27
  • 本函数支持的时间范围为1年1月1日~9999年12月31日,但特定的时间范围会有奇怪的结果,详见幫助:扩展:解析器函數##time
{{#timel: 格式参数 }}
{{#timel: 格式参数 | 时间参数 }}
{{#timel: 格式参数 | 时间参数 | 语言代码}}
{{#timel: Y/m/d}} → 2024/04/27
{{#timel: Y/m/d|2017-01-04}} → 2017/01/04
{{#timel: Y/m/d H:i:s|+1 second}} → 2024/04/27 22:37:22
{{#timel: Y/m/d H:i:s|+1 second|en}} → 2024/04/27 22:37:22
该函数与{{#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}} → '"`UNIQ--finalizedvar-0--QINU`"'
  • 该变量在下一行({{#while:)才被赋值,可用来观察效果

{{#var_final: foo | <u>no-op</u>}} → '"`UNIQ--finalizedvar-1--QINU`"'

在解析器解析到该魔术字时,先展开 默认值 对应的 wikitext,然后等待解析器解析完全文:
  • 若解析完全文后存在一个名为 变量名 的变量则输出该变量名(这意味着该魔术字不能用作其他模板/魔术字的参数);
  • 若解析完全文后发现不存在名为 变量名 的变量则输出 默认值

注意:不论 默认值 是否用得上,其内的 wikitext 都会被执行,您可以在沙盒里测试以下代码并观察页面标题:{{#vardefine: hello | world}}{{#var_final: hello | {{DISPLAYTITLE: var_final 测试}}}}

杂项
{{#language:语言代码}}
{{#language:语言代码|目标语言代码}}
{{#language:zh-cn}} → 中文(中国大陆)
{{#language:zh-cn|en-us}} → 中文(中国大陆)
以参数2的语言代码指定的语言(没有则以参数1的)输出参数1的语言代码对应的语言全名
{{#special:特殊页面名}} {{#special:watchlist}} → 特殊:监视列表 输出指定标准名称的特殊页面的本地化名。

可以在函数名后加e以输出经MediaWiki URL编码规则编码后的页面名:

  • {{#speciale:watchlist}} → %E7%89%B9%E6%AE%8A:%E7%9B%91%E8%A7%86%E5%88%97%E8%A1%A8
{{#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函数渲染之前完成渲染,并与往常一样阻止不受信任的代码渲染。如果内容需要为空,则参数2必须为空,而不是省略

{{#invoke:模块名|函数名|参数1|参数2|……}} (根据指定模块输出) Lua模块的调用方法
{{DISPLAYTITLE:标题}}
{{DISPLAYTITLE:标题|noerror}}
{{DISPLAYTITLE:标题|noreplace}}
- 本函数用以改变当前页面的标题的格式做出变换,该函数无法做出修改标题的行为,只能做出例如改变大小写、下划线替代空格等的修改。

参数1为“noerror”或“noreplace”时,会阻止由于使用多个该函数而导致的错误抛出。

{{DEFAULTSORT:分类索引}}
{{DEFAULTSORTKEY:分类索引}}
{{DEFAULTCATEGORYSORT:分类索引}}
{{DEFAULTSORT:分类索引|noerror}}
{{DEFAULTSORT:分类索引|noreplace}}
- 本函数用以改变当前页面在分类中的索引,比如{{DEFAULTSORT:A}}会把页面分到A部分下。

参数1为“noerror”或“noreplace”时,会阻止由于使用多个该函数而导致的错误抛出。

{{#editcredit:用户名|模式}} {{#editcredit:Litwak913}} → 5496
{{#editcredit:Litwak913|css}} → lv06
{{#editcredit:Litwak913|level}} → 60
输出指定用户的编辑积分,等级或积分对应的 CSS 类。

参见