社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103,点点小课堂(腾讯会议):5696651544

全站通知:

帮助:解析函数

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
(重定向自解析函数
跳到导航 跳到搜索

本页旨在介绍BWIKI支持的解析函数,针对平台特性和中文环境提供简单易懂的说明和用例。本页部分内容参考了东方WIKI[1]

解析函数(Parser function)是一种魔术字(Magic word),它动态地处理数据和逻辑,能根据不同的输入和条件,输出不同内容。如条件判断、数学计算、字符串处理和时间处理等等。 用户能用它自由的实现各种功能,如编写能自动更新的内容、简化复杂结构的实现或设计灵活强大的模板。

BWIKI支持192个解析函数,它们来自Mediawiki和第三方扩展。特殊:版本页面列出了所有扩展及其版本,点击扩展名可以访问扩展主页和文档(部分BWIKI开发/魔改的扩展可能无法找到文档,请参考本页)。特殊:版本页面还列出了软件版本、支持的解析函数和扩展标签等等信息。

目录

A B C D E F G I L N O P Q R S T U V W

解析函数的基本格式:

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

其中

{{}} 表明这是一个模板或魔术字。
#表明这是一个解析函数
函数名是解析函数的名称
参数1参数2参数n是传递给解析函数的参数。多个参数由管道符(竖线) | 分割。参数是wikitext,可以包含模板或解析函数等等。Wiki解析器会优先运算、展开参数中的代码(wikitext),这与数学公式中的括号相似,从内到外逐级展开。

注意:

  • 参数1必定会自动被展开,传入解析函数的是展开结果。在参数1中使用nowiki标签很可能导致非预期行为,尽量避免。
  • 所有参数都会被trim(移除头尾的空白字符,如空格和换行)后传入解析函数。因此如需传入空白字符需要用nowiki标签包裹参数。比如空格
    <nowiki> </nowiki>
  • 适当的空格和换行能显著提升代码可读性、可理解性和和可维护性。
  • 不能直接使用管道符|,因为这被用于分隔两个参数。因此,要用管道符就需要通过其他函数或模板提供如“
    {{!}}
    ”。
  • 部分函数对缺少参数和提供空白参数的行为不一致,比如regex
  • 字符和对应的HTML实体(如&lt;)受到的处理可能不一致。需要注意函数是否解码输入或编码输出。


解析函数目录
A
Anchorencode • Arraydefine • Arraydiff • Arrayindex • Arrayintersect • Arraymap • Arraymaptemplate • Arraymerge • Arrayprint • Arrayreset • Arraysearch • Arraysearcharray • Arraysize • Arrayslice • Arraysort • Arrayunion • Arrayunique • Ask • Autoedit
B
C
Calendarenddate • Calendarstartdate • Canonicalurl • Canonicalurle • Cascadingsources • Categorytree • Concept • Contributors • Count • Cscore • Css
D
Declare • Default_form • Defaultsort • Displaytitle • Dowhile • Dpl • Dplchapter • Dplmatrix • Dplnum • Dplreplace • Dplvar
E
Explode • Expr
F
Filepath • Follow • Forargs • Formatdate • Formatnum • Forminput • Formlink • Formredlink • Fornumargs • Fullpagename • Fullpagenamee • Fullurl • Fullurle
G
Gender • Grammar
I
If • Ifeq • Iferror • Ifexist • Ifexpr • Imgh • Imgw • Info • Int • Invoke
L
Language • Lc • Lcfirst • Len • Listfilter • Listmap • Listmerge • Listsort • Listunique • Localurl • Localurle • Loop • Lst • Lstapp • Lstcnt • Lstcntuniq • Lstelem • Lstfltr • Lstfnd • Lsth • Lstind • Lstjoin • Lstmap • Lstmaptemp • Lstprep • Lstrm • Lstsep • Lstsrt • Lstsub • Lstuniq • Lstx
N
Namespace • Namespacee • Namespacenumber • Ns • Nse • Numberingroup • Numberofactiveusers • Numberofadmins • Numberofarticles • Numberofedits • Numberoffiles • Numberofpages • Numberofpageviews • Numberofusers • Numberofviews
O
P
Padleft • Padright • Pageid • Pagename • Pagenamee • Pagesincategory • Pagesize • Plural • Pos • Protectionexpiry • Protectionlevel
R
Rel2abs • Replace • Revisionday • Revisionday2 • Revisionid • Revisionmonth • Revisionmonth1 • Revisiontimestamp • Revisionuser • Revisionyear • Rmatch • Rootpagename • Rootpagenamee • Rpos • Rreplace • Rsplit
S
Seo • Set • Set_recurring_event • Show • Smwdoc • Special • Speciale • Sub • Subjectpagename • Subjectpagenamee • Subjectspace • Subjectspacee • Subobject • Subpagename • Subpagenamee • Switch
T
Tag • Talkpagename • Talkpagenamee • Talkspace • Talkspacee • Template_display • Template_params • Time • Timel • Titleparts • Token • Tokenif • Trim • Trimuesc
U
Uc • Ucfirst • Ueif • Ueifeq • Uesc • Uescnowiki • Ueswitch • Urldecode • Urlencode
V
Var • Var_final • Vardefine • Vardefineecho • Varexists
W
While • Widget

A

anchorencode

将文本转换为HTML锚点格式(URL井号后的部分),确保其安全且符合Web标准。

为页面链接动态添加锚点时,它能确保锚点被正确编码。

语法

{{anchorencode:文本}}

例子

  1. {{anchorencode:<h2>1 z á 元</h2>}} → 1_z_á_元
  2. {{anchorencode:a:b/c d e}} → a:b/c_d_e
    • 注意与urlencode不同{{urlencode:a:b/c d e}} → a%3Ab%2Fc+d+e
  3. {{anchorencode:[[User:23333|诶嘿]]}} → 诶嘿
  4. {{anchorencode:[[Wiki:Skyrim#Section]]}} → Wiki:Skyrim#Section
  5. {{anchorencode:[https://wiki.biligame.com BWIKI]}} → BWIKI
  6. {{anchorencode:我“以前”跟一样是一个冒险者}} → 我“以前”跟你一样是一个冒险者
  7. {{anchorencode: ©B       Wi     _ __ _     Ki}} → ©B_Wi_Ki
  8. {{anchorencode:ISBN}}&#73;SBN
  9. {{anchorencode:ISBN RFC \n PMID <}}&#73;SBN&#95;__&#82;FC_\n_&#80;MID_&lt;

相关概念

锚点,URL井号后的部分,代表一个网页上的位置。
Wiki会自动为标题增加相同名字的锚点,也可以通过指定标签的id属性来设置标识符。比如:
  • 指定ID:<span id="diandian">...</span>
  • 标题:==hello lu== 生成的HTML是:<h2><span class="mw-headline" id="hello_lu">hello lu</span></h2>
  • 标题:==点点小课堂== 生成的HTML是:<h2><span id="..."></span><span class="mw-headline" id="点点小课堂">点点小课堂</span></h2>
一个带有锚点的URL能让页面滚动到指定位置。在打开的页面中修改URL锚点可以滚动页面到新位置,不重新加载页面。
基于此,锚点常被用于精确控制页面跳转,比如使用[[#章节名]][[页面#章节名]]可以滚动页面到指定章节,或跳转其他页面的指定章节
文档

底层代码

/** MediaWiki 1.37.0 CoreParserFunctions.php
* @param Parser $parser
* @param string $text.
* @return string
*/
public static function anchorencode( $parser, $text ) {
    $text = $parser->killMarkers( $text );
    $section = (string)substr( $parser->guessSectionNameFromWikiText( $text ), 1 );
    return Sanitizer::safeEncodeAttribute( $section );
}

代码逻辑:

  • 移除任何MediaWiki标记或特殊语法,确保后续处理只关注纯文本内容。
  • 保留锚点部分,移除、转换特定字符(移除HTML标签、移除粗体斜体的英文引号、清理链接; 合并多个空格、下划线为一个空格; 将字符引用如&nbsp &#65等转换为 UTF-8 字符串)
  • 安全编码为锚点格式。包括调用PHP的htmlspecialchars函数,此外,还替换了\n \r \t < > " { } [ ] '' ISBN RFC PMID | 和 __ 为字符引用

实际用例

BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arraydefine

定义临时存储数据的数组,以便后续使用。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

此函数需要输入数据字符串和分隔符,用分隔符切分字符串来构造数组。当然,数据字符串可以是固定值,也可以来自模板或SMW查询结果。

基于数组,用户能便捷的构造表格、列表和图鉴等各类重复性结构。

格式
{{#arraydefine: 数组名 | 数据字符串 }}
{{#arraydefine: 数组名 | 数据字符串 | 分隔符 }}
分隔符:默认逗号“,”,支持正则表达式
{{#arraydefine: 数组名 | 数据字符串 | 分隔符 | 选项 }}
选项 (可选) 是一个匿名字符串参数,支持unique、sort、print。
多个选项参数以英文逗号分隔,即“键=值, 键=值”,例如:“sort=desc, print=list”、“unique, print=list”
unique:去重
sort:排序,支持 none(默认),desc,asce/asc,random,reverse
print 输出格式: list 或 pretty
  • list: a、b、c
  • pretty: a、c和c
例子
{{#arraydefine:a|red}} → 定义数组a,只有1个元素:red
{{#arraydefine:b|orange,red ,yellow, yellow}} → 定义数组b,有4个元素(分隔符没有指定,默认为逗号):orange、red、yellow、yellow
{{#arraydefine:c}} → 定义空数组c:
{{#arraydefine:d|apple, pear; orange|/\s*[;,]\s*/}} → 定义数组d,分隔符是正则表达式。d有3个元素:apple、pear、orange
{{#arraydefine:e|orange,red ,yellow, yellow|,|unique,sort=desc, print=list}} → 定义数组e,以“,”为分隔符,数组元素去重,降序排列,并作为列表输出:yellow、red、orange
代码
代码虽长,但行为简单。
  1. 用分隔符(delimiter)分割数据字符串(value)。如分隔符为空则不分割,数组将只包含一个元素。
  2. 如有选项 unique,去重
  3. 如有选项 sort,按指定方式排序
  4. 如有选项 print,按指定格式输出
  5. 存储。按照指定数组名(忽略头尾空格)存储数组到变量中
  • 还支持选项singleempty。当数组仅有一个值,且为空字符串时,此选项能保留它(否则空字符串将被过滤,仅保留空数组)

arraydiff

计算数组差集。出自扩展Arrays

多个数组的差集,就是从第一个数组中去除所有存在于其他数组中的元素,得到的结果数组。参见:PHP array_diff 函数MediaWiki和Arrays扩展使用PHP语言开发,因此其底层行为取决于PHP的特性。

例如对集合 [math]\displaystyle{ A }[/math][math]\displaystyle{ B }[/math][math]\displaystyle{ C }[/math],差集可以表示为 [math]\displaystyle{ A - B - C }[/math],即从[math]\displaystyle{ A }[/math] 中去除存在于 [math]\displaystyle{ B }[/math][math]\displaystyle{ C }[/math] 中的元素。

格式
{{#arraydiff: 结果数组名 | 数组1 | 数组2 | ... | 数组N }}
例子
先定义数组:{{#arraydefine:a|2,1,1,3,blue,apple,apple}}{{#arraydefine:b|2,2,blue}}{{#arraydefine:c|3,blue}}
[math]\displaystyle{ A - B }[/math]{{#arraydiff:x | a | b }} → 1、1、3、apple、apple
[math]\displaystyle{ A - C }[/math]{{#arraydiff:x | a | c }} → 2、1、1、apple、apple
[math]\displaystyle{ A - B - C }[/math]{{#arraydiff:x | a | b | c }} → 1、1、apple、apple
[math]\displaystyle{ A - C - B }[/math]{{#arraydiff:x | a | c | b }} → 1、1、apple、apple
底层代码
代码包含了三个函数。其中函数 multiArrayOperation 会从给出的第一个数组(array_1)开始,逐一调用multi_arraydiff( array_1, array_i )。就是将首个数组逐一与其他数组求差集。
函数multi_arraydiff中调用了PHP array_diff 函数。两个元素只有在(string) $elem1 === (string) $elem2时视为一致。 即对PHP语言的字符串转换表达相同。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arrayindex

按指定序号,输出数组指定位置的值。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

语法
{{#arrayindex: 数组名 | 序号 | 默认值 }}
说明
序号是数字,从0开始(首个元素序号为0),负数用于从后向前定位(-1代表最后一个元素)
如果数组名或序号无效,函数将输出默认值。如果没有默认值,函数将返回空字符串。
数组名无效是指不存在该数组。如在定义数组前使用它的值。
序号无效是指,找不到对应位置的值。可能是序号非数字,或越界(超过实际数据范围)
例子
{{#arrayindex:a |2 }} → a数组的第3个元素
{{#arrayindex:b |-1 }} → b数组的最后一个元素
{{#arrayindex:c |foo |bad value }} → 因为序号无效,输出默认返回值
底层代码
输入参数会先展开wikitext(如展开模板、执行解析函数);
函数会尝试返回数组中指定位置的值,如没有则返回默认值。如果没有设置默认值,就返回空字符串。
其中$egArraysCompatibilityMode始终为 False, 因此代码逻辑非常简单;
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arrayintersect

返回多个数组的交集。出自扩展 Arrays BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

两个集合[math]\displaystyle{ A }[/math][math]\displaystyle{ B }[/math]的交集,指[math]\displaystyle{ x \in A }[/math][math]\displaystyle{ x \in B }[/math]

结果数组可能包含重复值,其元素顺序与第一个数组相同;从结果看,可以视为从第一个集合中移除所有其他集合都不存在的元素。

格式
{{#arrayintersect:新数组名 | 数组1 |数组2 |... |数组n }}
例子
有数组a: {{#arraydefine:a|orange, orange, red, blue}}
有数组b: {{#arraydefine:b|red, red, red, red, orange, yellow, yellow}}
有数组c: {{#arraydefine:c|blue, red}}
a ∩ b : {{#arrayintersect:x|a|b}}{{#arrayprint:x}} → orange、orange、red
b ∩ a :{{#arrayintersect:y|b|a}}{{#arrayprint:y}} → red、red、red、red、orange
a ∩ b ∩ c : {{#arrayintersect:z|a|b|c}}{{#arrayprint:z}} → red
底层代码
其中的multiArrayOperation,会从第一个数组(array_1)开始,对其他所有数组逐一执行 multi_arrayintersect( array_1, array_i )。也就是,将第一个数组与其他数组逐一计算交集;
求交集的核心函数是 PHP 的array_intersect 函数。其比较两个元素是否相同的标准是:(string) $elem1 === (string) $elem2 ,即对PHP语言的字符串转换表达相同。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arraymap

arraymap用于分割字符串并以指定格式输出。出自扩展 Page Forms


格式
{{#arraymap:字符串|分隔符|别名|输出wikitext|输出分隔符|输出连接词}}
比如
{{#arraymap:托奇_环理_小满_辰纱|_|name|'''name'''||}}
托奇环理小满辰纱
字符串为:「托奇_环理_辰纱」
分隔符为: 「 _ 」 用于拆分字符串为子字符串
别名是:「name」,将在输出wikitext中使用,以替换不同的子字符串
输出wikitext是「 '''name'''」,是一段包含别名的wikitext,别名将被替换为子字符串多次输出
输出分隔符是 「 、」,在两个输出wikitext之间,会被插入输出分隔符(默认为,)
输出连接词是 「和」,在最后一次输出wikitext前,将使用此连接词替代输出分隔符(可选参数)
例子
指定格式:{{#arraymap:a_b_c | _ | @ | '''@''' | 、 }}abc
指定格式:{{#arraymap:a_b_c | _ | @ | 有'''@'''的wikitext | ~间~隔~ }} → 有a的wikitext~间~隔~有b的wikitext~间~隔~有c的wikitext
指定格式和连接词:{{#arraymap:托奇_环理_小满_秘银_从云_辰纱 | _ | @ | '''@''' | , |和 }}一起开会托奇环理小满秘银从云辰纱一起开会
奇怪的连接词:{{#arraymap:点点,丩卩夂忄,马小萌,Lu | , | @ | {{key|@}} | 、 |同时发现了}}点点丩卩夂忄马小萌 同时发现了 Lu
批量处理:{{#arraymap:apple, banana, cherry | , | @ | {{ucfirst:@}}}} → Apple, Banana, Cherry
筛选:{{#arraymap: 2, 7, 4, 9, 3 |,|@|{{#ifexpr: @ > 5 | @ }} }} → 7, 9
更多用法
字符串可以来自SMW查询,模板参数或其他表达式
这可以在不额外使用模板的情况下,格式化SMW查询结果。
比如:
{{#arraymap:一个模板用于获取数据|分隔符|别称|{{一个模板|别称|其他参数}}}}
比如:
{{#arraymap:SMW查询|分隔符|别称|简单的wikitext}}
底层代码
从 $args 数组中提取传递给函数的参数,并进行必要的处理和展开。
根据指定的分隔符将输入字符串拆分为一个数组。
遍历数组中的每个元素,使用指定的输出wikitext($formula)进行替换和展开,wikitext中的别名($var)被替换为当前元素的值。
对处理后的结果进行修整和展开。
如果结果非空,则将其添加到结果数组中。
根据指定的输出分隔符和输出连接词,将结果数组中的元素连接成最终的结果字符串。
返回结果字符串,用于输出。


arraymaptemplate

出自扩展Page Forms

分割字符串并以新的格式输出

说明
有些类型的映射非常复杂,不能放在 #arraymap 函数中。为此,您可以使用类似的 #arraymaptemplate 函数。
要使用该函数,首先创建一个模板,接收一个字段(模板中应将其称为 {{{1}}}),并将您想要的映射应用到该字段。然后在主模板字段上应用 #arraymaptemplate,就像使用 #arraymap一样
其中 "模板 "是相关映射模板的名称。
格式
{{#arraymaptemplate:字符串|模板|分割符|输出间隔符}}
例子
要以编号列表的形式显示(用逗号分隔的)作者列表,可以先创建一个名为 "Numbered author "的模板,内容如下:
# [[Has author::{{{1}}}]]
然后
{{#arraymaptemplate:{{{authors|}}}|Numbered author|,|\n}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arraymerge

出自扩展Arrays

合并多个数组

格式
{{#arraymerge:new_key |key1 |key2 |... |key-n }}
例子
有数组a: {{#arraydefine:a|orange}}
有数组b: {{#arraydefine:b|red, red}}
有数组c: {{#arraydefine:c|blue, red}}
则: {{#arraymerge:x|a|b}} → orange、red、red
则: {{#arraymerge:x|a|c}} → orange、blue、red
则: {{#arraymerge:x|a|b|c}} → orange、red、red、blue、red
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arrayprint

出自扩展Arrays

以指定的格式输出数组。

格式
{{#arrayprint: 数组名称 | 分隔符 | 代名样式 | 主语句 | 选项 }}
说明
'主语句'接受维基链接、模板和解析函数。
在'主语句'中,你没有必要避开使用管道符|。在整个主语句中,'代名样式'会被搜索并轮流替换为数组的每个值(以转义形式)。最终再将整个字串解析,嵌入分隔符,输出结果。
如果应被输出的数组不存在,将会返回空字串。
默认的分隔符取决于语言,对于英文是半角逗号,,对于中文是顿号,日文当作中文处理。(具体见例子。分隔符项未出现时会使用,若分隔符项出现且为空,则为不输出分隔符。)
例子
{{#arrayprint:b}} → 直接打印:使用语言默认的分隔符
{{#arrayprint:b | }} → 直接打印:无分隔符
{{#arrayprint:b |<br/> }} → 直接打印:使用换行符<br />作为分隔符
{{#arrayprint:b ||@ |@ |print=pretty }} → 使用“漂亮列表输出”会把最后两个元素用and(英文时)、(中文、日文时)连接。虽然分隔符参数为空,但是为了“漂亮”,还是会用半角逗号,(英文时)、顿号(中文、日文时)作为间隔符。
{{#arrayprint:b |<br/> |@@@@ |[[:Category:@@@@|@@@@]] }} → 嵌入:到分类的维基链接
{{#arrayprint:b |<br/> |@@@@ |[[prop1::@@@@]] }} → 定义一个SMW属性值
{{#arrayprint:b |<br/> |@@@@ |length of @@@@:{{#len:@@@@}} }} → 嵌入:解析函数
{{#arrayprint:b|<br/>|@@@@|{{template|prop2|@@@@}} }} → 嵌入:模板(包括参数)

arrayreset

出自扩展Arrays

用于清除指定数组,或清除所有数组。

格式
{{#arrayreset:key1 |key2 |... |key-n }} 清除一或多个数组
{{#arrayreset:}} 清除所有数组
例子
有数组a, b, c:{{#arraydefine:a|orange, orange, red, blue}} {{#arraydefine:b|111, 22222}} {{#arraydefine:c}}
输出数组内容和其大小:
a:orange、orange、red、blue - size=4
b:111、22222 - size=2
c: - size=0
现在清除a:{{#arrayreset:a}}
再次输出数组内容和大小(包括不存在的ddddddd):
a - size:
b 111、22222 - size:2
c - size:0
ddddddd - size:
能看出,一个空数组c的size是0,而被清除后的数组a的size是空,与不存在的ddddddd一致,可以验证a确实被清楚了。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arraysearch

数组搜索。这个函数返回'输入值'第一次出现在数组中的位置序号。当未能找到时,返回空。指定了'成功返回值'和/或'失败返回值'时,如果找到,则会返回'成功返回值';如果未能找到,则会返回'失败返回值'。 出自扩展Arrays

格式
{{#arraysearch: 数组名称 | 输入值 | 开始序号 | 成功返回值 | 失败返回值 }}
例子
返回'输入值'第一次出现时的序号。
{{#arraysearch:b|white}}
{{#arraysearch:b|red}}
使用'开始序号'则会从'开始序号'位置开始寻找:
{{#arraysearch:b|red|0}}
{{#arraysearch:b|red|2}}
使用正则表达式匹配:
{{#arraysearch:b|/low/}}
{{#arraysearch:b|/LOW/i}} (不区分大小写)
{{#arraysearch:b|low}}
使用'成功/失败返回值':
{{#arraysearch:b|white|0|yes|no}}
{{#arraysearch:b|yellow|0|yes|no}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arraysearcharray

出自扩展Arrays

该函数搜索一个数组(用 key 标识),并根据搜索结果创建一个新数组(用 new_key 标识)。搜索条件值可以是字符串或正则表达式。如果给定了 index,搜索将从这里开始,limit 可以定义搜索结果的最大值。如果值是正则表达式,则可以使用 transform 标识的参数。它可以将匹配项的结果转换到 new_key 数组中,就像 PHP preg_replace 所做的那样。

格式
{{#arraysearcharray:new_key|key|value|index|limit|transform}}
例子
查找数组 "a "中所有以 A 开头、后跟空格的条目,并将其放入新数组 "x "中 {{#arraysearcharray:x |a |/^A\s.+/ }}
搜索数组 "a "中以数字结尾的所有条目,并将数字放入新数组 "y "中 {{#arraysearcharray:y |a |/^.*?(\d+)$/ |0 |-1 | $1 }}
搜索数组 "a "中以数字结尾的所有条目,并将这些条目的长度放入新数组中(这需要"'Regex Fun'"扩展)。 {{#arraysearcharray:y |y |/^.*?\d+$/e |0 |-1 | {{#len:$0}} }}
删除数组 "a "中的空值 {{#arraysearcharray:a|a|/\S+/}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arraysize

出自扩展Arrays。 用于获得一个数组的大小(元素的个数)。

格式
{{#arraysize: 数组名称 }}
例子
{{#arraysize:a}} → 数组a的大小
{{#if: {{#arraysize:b}} | ''array exists'' | ''array not defined'' }} → 检查一个数组是否存在
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arrayslice

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Arrays。 从一个数组提取一个子数组到一个新数组

格式
{{#arrayslice:new_key|key|offset|length}}offset:跳过数量;length:提取数量(超出有效数量只提取有效元素)
例子
{{#arrayslice:b|a|1|5}} → 将数组a从第2个元素开始的5个元素生成数组b(若a只有3个元素,那么效果是将数组a的第2个元素和第3个元素生成数组b)
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

arraysort

出自扩展Arrays

格式
{{#arraysort:数组名|排序规则}}
例子
我们先定义一个数组名称为x的数组并打印输出。
{{#arraydefine:数组|1,2,3,7,6,5|,|print}} → 1、2、3、7、6、5
此时我们再用arraysort函数让其按照降序重新排列后用arrayprint函数打印输出。
{{#arraysort:数组|desc}}{{#arrayprint:数组}} → 7、6、5、3、2、1
排序参数
none -不排序(默认)
desc -降序
asce/asc -升序
random -随机
reverse -逆序
笔记
每个数组元素都被视为一个字符串,如果排序数字时会按照数字首位排列。比如1,2,11按照升序排列时会变成1,11,2。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arrayunion

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Arrays

格式
<!-- 语法格式 -->
例子
<!-- 例子wikitext -->
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


arrayunique

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Arrays

格式
<!-- 语法格式 -->
例子
<!-- 例子wikitext -->
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


ask

出自扩展 Semantic MediaWiki

参见帮助:SMW#ask

autoedit

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Page Forms

格式
<!-- 语法格式 -->
例子
<!-- 例子wikitext -->


B

BASEPAGENAME

获取HTML编码后的上级页面名(不含命名空间)。

格式
{{BASEPAGENAME: 页面名}}
例子
{{BASEPAGENAME:Help:Title/foo/bar}} → Title/foo
{{BASEPAGENAME:Help:Title}} → Titler
{{BASEPAGENAME:Help:A and B}} → A and B


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


BASEPAGENAMEE

获取HTML编码后的上级页面名(不含命名空间),与BASEPAGENAME不同的是,BASEPAGENAMEE的结果是URL编码的。

格式
{{BASEPAGENAMEE: 页面名}}
例子
{{BASEPAGENAMEE:Help:Title/foo/bar}} → Title/foo
{{BASEPAGENAMEE:Help:Title}} → Titler
{{BASEPAGENAMEE:Help:A and B}} → A_and_B
{{BASEPAGENAMEE:一个文档}} → %E4%B8%80%E4%B8%AA%E6%96%87%E6%A1%A3
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


bidi

自动增加方向性控制字符,以同时正确的显示多种书写方向的字符串。

Bidi(双向)算法,也称为双向文本算法,是一种用于处理混合文本(包含从左到右和从右到左书写方向的字符)的文本排版算法。它的目标是正确地显示和处理混合方向文本,以确保文字的顺序和对齐方式在不同书写方向之间正确转换。
格式
{{bidi:字符串}}
例子
{{bidi:text transform}} → ‪‪text transform‬‬
{{bidi:كتابة عربية}} → ‫كتابة عربية‬
{{bidi:كتابة عربيةabc def}} → ‫كتابة عربيةabc def‬


C

calendarenddate

出自Semantic MediawikiCalendar format

参见帮助:SMW#calendarenddate

calendarstartdate

出自Semantic MediawikiCalendar format

参见帮助:SMW#calendarstartdate

canonicalurl

获取页面完整URL(包括协议和完整域名),可增加请求参数。

猜测设计意图上不做URL Encode,但实际上结果会被URL Encode,因此与#canonicalurle没有区别。

格式
{{canonicalurl: 词条名 | 请求参数 }}
例子
{{canonicalurl: 帮助:解析函数 }}https://wiki.biligame.com/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{canonicalurl: 帮助 | action=edit }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9&action=edit
不会校验参数是否有效:{{canonicalurl: 帮助 | acg=233 }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9&acg=233
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


canonicalurle

获取页面完整URL(包括协议和完整域名),可增加请求参数。

与Canonicalurl的行为一致,获得的URL是经过URL Encode的。

格式
{{canonicalurle: 词条名 | 请求参数 }}
例子
{{canonicalurle: 帮助:解析函数 }}https://wiki.biligame.com/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{canonicalurle: 帮助 | action=edit }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9&action=edit
不会校验参数是否有效:{{canonicalurle: 帮助 | acg=233 }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9&acg=233

cascadingsources

返回特定页面连锁保护的来源页面。

特殊情况:如果保护页面自己嵌入自己,会返回自身。

格式
{{CASCADINGSOURCES: 页面名 }}
例子
{{CASCADINGSOURCES: 帮助:Cascadingsources }} → (没有被保护)
{{CASCADINGSOURCES: 保护页面示例 }} → (没有因为其他页面被级联保护)
{{CASCADINGSOURCES: 保护页面示例/子页面 }} → 保护页面示例(子页面因嵌入保护页面受到了连锁保护)

categorytree

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

显示分类树,与分类页面相似。

出自扩展CategoryTree

格式
{{#categorytree:分类|参数1|参数2|...|参数n}}
例子
{{#categorytree:解析函数}}
无子分类

concept

出自Semantic Mediawiki

参见帮助:SMW#concept

contributors

列出指定页面的贡献者,每个贡献者的用户名都链接到他的用户页面。

出自扩展Contributors

格式
{{#contributors:页面名}}
{{#contributors:页面名|filteranon}} 过滤匿名用户,但BWiki不存在匿名编辑。
例子
{{#contributors:首页}}(39886146)(9388102)(123855714)(16083703)(111160720)(509732352)(29136181) (固定示例)
注意,一些小组件会改变用户名的外观

count

计算字符串中特定子串的出现次数。

出自扩展ParserFunctions中的String functions。

格式
{{#count:字符串|子串}}
例子
{{#count:aabbccddaaccdd|aa}} → 2
不提供子串则计算空格数量 {{#count:aa bb cc dd dd}} → 4
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


cscore

获取用户贡献,如贡献分数、编辑数、编辑页面数

出自扩展Contribution Scores

格式
指定用户贡献分数 {{#cscore:用户名(即bid)|score}}
指定用户编辑次数{{#cscore:用户名|changes}}
指定用户编辑页面数量{{#cscore:用户名|pages}}
例子
Lu(bid 39886146)的贡献分数:{{#cscore:39886146|score}} → 1,845
编辑次数:{{#cscore:39886146|changes}} → 7,522
编辑页面数量:{{#cscore:39886146|pages}} → 1,692
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


css

为页面增加CSS。

不支持链接,链接会让所在的#css内容全部失效。(需要可以用bstyle标签替代)

优先级较高,能覆盖mediawiki:common.css中的同名样式。

出自扩展CSS

格式
{{#css: CSS代码}}
例子
{{#css: .a_css_demo{color:red;} }}<span class="a_css_demo">文字</span>文字
更多用法
模板中防止多次调用导致重复CSS(代码冗余会影响搜索引擎收录){{#if:{{#varexists:防止多次加载CSS_XXX}} | |{{#vardefineecho:防止多次加载CSS_XXX | 这里是#CSS代码 }} }} }}
另请参见
帮助:在WIKI里引用CSS类样式
插件:CSS


D

declare

出自Semantic Mediawiki

参见帮助:SMW#declare

参见semantic-mediawiki Argument_declaration_in_templates

default_form

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Page Forms

格式
{{#default_form:form-name}}
例子
<!-- 例子wikitext --> → 效果
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

defaultsort

指定页面的排序依据:默认排序关键字(Default Sort Key,排序键),他决定了在分类、搜索时的页面顺序。

这在分类页面中特别有用,因为它们根据页面的排序键将页面按照字母顺序排列。

设置分类时指定排序关键字可以覆盖它:[[分类:某分类|排序关键字]]

格式
{{DEFAULTSORT: 排序键 }}
{{DEFAULTSORT: 排序键 | noerror或noreplace }}
noerror 用于阻止多次使用#defaultsort的报错
noreplace 禁止后续的#defaultsort覆盖
例子
对于页面 John Doe {{DEFAULTSORT:Doe}} → 分类页面将Doe作为排序关键词
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

displaytitle

修改页面的显示名。

有时,无法用预期的标题创建页面,可能需要额外的前后缀,或使用ID、英文作为页面名。此时可以通过DISPLAYTITLE使页面显示预期的标题。

此外,页面名有限制,一些符号无法使用。DISPLAYTITLE可用于显示正确的页面名。

格式
{{DISPLAYTITLE:title}}
{{DISPLAYTITLE:title|noerror}} 禁止报错(多次使用时)
{{DISPLAYTITLE:title|noreplace}} 防止覆盖
例子
对于页面“副本:煤块矿场” {{DISPLAYTITLE:煤块矿场}} → 页面的标题显示为煤块矿场
对于页面Armstrong {{DISPLAYTITLE:壮臂氏}} → Armstrong页面的标题显示为壮臂氏
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


dowhile

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

循环。与while不同的是,循环体的内容会至少执行一次。

出自扩展Loops

格式
{{#while: | 条件 | 循环体 }}
例子
<!-- 例子wikitext -->


dpl

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展DynamicPageList3

格式
{{#dpl: category = cat1{{!}}cat2 | linksto = {{{1}}} }}
例子
<!-- 例子wikitext -->
文档
DPL3文档
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


更多内容请参考:帮助:DPL3#dpl

dplchapter

出自扩展DynamicPageList3。 请参考:帮助:DPL3#dplchapter

dplmatrix

出自扩展DynamicPageList3。 请参考:帮助:DPL3#dplmatrix

dplnum

出自扩展DynamicPageList3。 请参考:帮助:DPL3#dplnum

dplreplace

出自扩展DynamicPageList3。 请参考:帮助:DPL3#dplreplace

dplvar

出自扩展DynamicPageList3。 请参考:帮助:DPL3#dplvar

E

explode

使用指定分隔符将字符串分割成多段,返回其中指定位置的一段。

此函数对大小写敏感,若要做更复杂的分隔请先使用帮助:解析函数#replace把不同的分隔符替换成同样的字串。位置编号由0开始计算(第一项是0号)。如果位置参数为负数(-n),则从末尾开始计算的第n个。分隔符在字串中连续出现的话,则会被分割成多个空白小段,会干扰到位置编号。

若要使用特殊字串(包括前后空格,因为函数会自动trim所有输入内容),请用

<nowiki></nowiki>

出自扩展 ParserFunctions的String functions。

格式
{{#explode:字符串|分隔符(默认空格)|位置|限制}}
例子
{{#explode:And if you tolerate this||2}}
→ you
{{#explode:String/Functions/Code|/|-1}}
→ Code
{{#explode:Split%By%Percentage%Signs|%|2}}
→ Percentage
{{#explode:And if you tolerate this thing and expect no more||2|3}}
→ you tolerate this thing and expect no more
{{#explode: 今天,天气,非常,好!||2}}
非常
{{#explode: 今天,天气,非常,好!||-1}}
好!
{{#explode: 0   1 ‌ 2 3 4 ‌ 5 6||5}}
2
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


expr

类型 运算符
组合(括号) ( )
数字 1234.5e (2.718) 、 pi (3.142)
科学计数法(二元) e 、 正负号(一元) +,-
一元运算符 not ceil trunc floor abs exp ln sin cos tan acos asin atan
二元运算符 ^
* / div mod
+ -
四舍五入 round
逻辑运算符 = != <> > < >= <=
and
or

用于验证一个数学表达式,并返回它的计算值。

出自扩展 ParserFunctions


此函数在Scribunto扩展中也可用,函数名为mw.ext.ParserFunctions.expr

格式
{{#expr: 表达式 }}
支持的运算符如右方表格所示,表格从上到下按运算符的计算优先顺序排列。
每个运算符的详细功能见Help:Calculation
计算结果的精度和格式取决于wiki服务器的操作系统,和网站语言的数字格式。
例子
当用于计算布尔代数值(Boolean algebra)时,零值表示false(假),任何非零值,无论正负,都表示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
注意
如果使用魔术字的输出值,必须使用其原始格式,如:移除所有分割逗号,转换为数字。
比如{{NUMBEROFUSERS}}输出的是7,263,214,但是实际需要的是7263214,原始格式可以用{{formatnum:{{NUMBEROFUSERS}}|R}}来得到,详见formatnum。例子如下:
{{#expr:{{NUMBEROFUSERS}}+100}}表达式错误:无法识别的符号“,”。
{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}7263314
注意
运算符mod会在某些除数值下给出错误的结果:
{{#expr: 123 mod (2^64-1)}}零除。(返回空字串,结果本应是123
补充
若想要进行关于日期的计算(比如:将当前日期与某日期进行比较),首先应将时间转化为“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


F

filepath

获取指定文件的路径。

文件名无须包含命名空间,可以选择加上缩略图宽度要求或nowiki防止直接插入图片。

格式
{{filepath: 文件名 | 要求 }}
例子
{{filepath: Toolswikilogo.png }}https://patchwiki.biligame.com/images/tools/4/41/fr3pnybxu6c0xtdypvwbfc5z1i1gcgy.png
{{filepath: Toolswikilogo.png | nowiki }}https://patchwiki.biligame.com/images/tools/4/41/fr3pnybxu6c0xtdypvwbfc5z1i1gcgy.png
{{filepath: Toolswikilogo.png | 60 }}https://patchwiki.biligame.com/images/tools/thumb/4/41/fr3pnybxu6c0xtdypvwbfc5z1i1gcgy.png/60px-Toolswikilogo.png
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


follow

给定一个页面名,如果是重定向页面,返回重定向目标页面名。否则返回输入的页面名本身。

出自扩展ParserPower

格式
{{#follow: 页面名}}
例子
设expr页面重定向到“帮助:Expr”:{{#follow: expr}} → 帮助:Expr
{{#follow: 首页}} → 首页
{{#follow: 不存在的页面}} → 不存在的页面

forargs

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Loops

格式
{{#forargs: <prefix> | <key> | <value> | <block statement> }}
  • prefix:参数名的前缀。想要循环处理一系列以特定前缀开头的命名参数时,这个前缀就会派上用场。
  • key:循环中当前参数的名称(不包括前缀)。
  • value:循环中当前参数的值。
  • block statement:每次循环时要执行的wiki文本或模板调用。
例子
模板:沙盒/forargs
{{#forargs:参数 |key |value |'''参数'''{{#var:key}} is {{#var:value}}<br> }}
使用模板:
{{沙盒/forargs |参数1=Apple |参数2=Banana |参数3=Cherry |其他参数4=此模板中不显示的内容 }}
参数1 is Apple
参数2 is Banana
参数3 is Cherry
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

formatdate

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

MediaWiki原生函数。

格式
{{#formatdate: 日期 | 格式 }}
例子
{{#dateformat:2015-08-14|ISO 8601}}2015-8-14
{{#dateformat:2015-08-14|dmy}}14 8月 2015
{{#dateformat:2015-08-14|mdy}}8月 14, 2015
{{#dateformat:2015-08-14|ymd}}2015 8月 14
{{#dateformat:2015-08-14|myd}}2015-08-14(不支持的格式)
{{#dateformat:2015-8-14|myd}}2015-8-14(输入不符合ISO 8601,月份缺少前导零)
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


formatnum

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

MediaWiki原生函数。

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

forminput

出自扩展Page Forms

请参阅帮助:PageForms#forminput

formlink

出自扩展Page Forms

请参阅帮助:PageForms#formlink

formredlink

出自扩展Page Forms

请参阅帮助:PageForms#formredlink

fornumargs

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展Loops

格式
{{#fornumargs: <key> | <value> | <block statement> }}
例子
<!-- 例子wikitext -->
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

fullpagename

获取词条全名(包含命名空间)。

MediaWiki原生函数。

格式
{{FULLPAGENAME}}
{{FULLPAGENAME: 页面名 }}
例子
{{FULLPAGENAME}} → 帮助:解析函数
{{FULLPAGENAME: 帮助:Fullpagename }} → 帮助:Fullpagename
{{FULLPAGENAME: a b c }} → A b c
{{FULLPAGENAME: /a b c }} → /a b c

fullpagenamee

获取UEL编码的词条全名(包含命名空间)。

MediaWiki原生函数。

格式
{{FULLPAGENAME}}
{{FULLPAGENAME: 页面名 }}
例子
{{FULLPAGENAMEE}} → %E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{FULLPAGENAMEE: 帮助:Fullpagename }} → %E5%B8%AE%E5%8A%A9:Fullpagename
{{FULLPAGENAMEE: a b c }} → A_b_c
{{FULLPAGENAMEE: /a b c }} → /a_b_c

fullurl

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

获取页面的URL,可以附加一个请求参数。

获得的URL包含域名,且被URL Encode。这与#fullurle一致(虽然设计上应该仅由fullurle提供Encode版本)。

MediaWiki原生函数。

格式
{{fullurl: 词条名}}
{{fullurl: 词条名 | 请求参数 }}
例子
{{fullurl: 帮助:解析函数 }}https://wiki.biligame.com/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{fullurl: 帮助:解析函数 | action=edit }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
{{fullurl: 帮助:解析函数 | aaa=111 }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&aaa=111

fullurle

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

获取页面的URL(URL Encode),可以附加一个请求参数。与#fullurl行为一致。

MediaWiki原生函数。

格式
{{fullurle: 词条名}}
{{fullurle: 词条名 | 请求参数 }}
例子
{{fullurle: 帮助:解析函数 }}https://wiki.biligame.com/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{fullurle: 帮助:解析函数 | action=edit }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
{{fullurle: 帮助:解析函数 | aaa=111 }}https://wiki.biligame.com/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&aaa=111


G

gender

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

根据用户设置的性别称呼输出不同文字。

BWiki中,用户默认称呼是中性,且每一个wiki均独立设置。因此这个Gender在绝大多数情况下没用。

格式
{{GENDER:用户名|男性文字|女性文字|中性文字}}
例子
{{GENDER:39886146|male text|female text|text for unspecified}} → male text (Lu设置了性别称呼为他)
{{GENDER:39886146|text for unspecified}} → text for unspecified
{{GENDER:|male text|female text|text for unspecified}} → text for unspecified
{{GENDER:[INVALID]|male text|female text|text for unspecified}} → text for unspecified 本wiki的默认性别称呼是中性。
{{GENDER:[INVALID]|male|female}} → male 如果不给出中性文字,默认是男性


grammar

根据词形变化代码输出给定的词的正确的词形变化(与语言相关)。语法变形被用于波兰语这样的屈折语。

对于BWiki这样的中文Wiki几乎无用。

格式
{{GRAMMAR:N|word}}
例子
{{GRAMMAR:elative|wiki}} → wikistä (对于芬兰语wiki)


I

if

用于鉴别一个测试字串是否为空。一个只含有空白字符的字串会被判定为空。

出自扩展 ParserFunctions

格式
{{#if: 测试字串|字串非空输出值|字串空(或只有空白字符)输出值}}
{{#if: 参数1|参数2|参数3}}
说明
这个函数首先检查'参数1'是否为空。如果'参数1'不为空,则显示'参数2'。如果'参数1'为空或只含有空白字符(如空格,换行符等),则显示'参数3'。
例子
{{#if:|yes|no}}
no
{{#if: string|yes|no}}
yes
{{#if:     |yes|no}}
no
{{#if:


|yes|no}}
no
测试字串总是被解释为纯文本,所以数学表达式不会被鉴别。
{{#if: 1==2|yes|no}}
yes
{{#if: 0|yes|no}}
yes
最后一个参数(字串空输出值)可以省略。
{{#if: foo|yes}}
yes
{{#if:|yes}}
{{#if: foo||no}}
这个函数可以被嵌套。嵌套时,需用完整格式的#if函数,替代外层#if函数的某个参数。最大可以嵌套七层,具体取决于网站和存储限制。
{{#if: 测试字串1|字串1非空输出值|字串2非空输出值}}
可以用一个参数当作#if函数的测试字串。必须在变量名的后面加上管道符|
{{#if:{{{1|}}}| 变量1中输入了文本 | 变量1中没有文本 }}
对于在模板中的应用,更多例子可参照:Help:Parser functions in templates


ifeq

比较两个字串是否相同。

出自扩展 ParserFunctions

格式
{{#ifeq: 测试字串1|测试字串2|相同时输出值|不相同时输出值}}
例子
如果两个字串都是有效的数值,则会按照数值进行比较。
{{#ifeq: 01|1|equal|not equal}}
equal
{{#ifeq: 0|-0|equal|not equal}}
equal
{{#ifeq: 1e3|1000|equal|not equal}}
equal
{{#ifeq: 1000|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 (注意与上方使用了#expr函数的区别)
注意
#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
如果被比较的字串 是由等价调用 含有这类标签的 同一模板 得到的,则值为真;但如果为 含有相同的这类标签的 两个模板,则值为假。
注意
在用页面名变量(如:
{{FULLPAGENAME}}
)比较当前页面标题时,应小心。这些变量会将特殊字符转换为数字HTML实体。这会造成具有误导性的结果。比如,在一个标题为“L'Aquila”的页面上:
{{#ifeq: L'Aquila|
{{FULLPAGENAME}}
|equal|not equal}}
not equal
上面的结果实际是错误的。经过改进之后,现在它会返回“equal”。但是对于其他情况可能不会如此。如
{{FULLPAGENAME}}
,在部分网站,可能会将第一个字母替换为大写,可能会将所有下划线替换为空格。
为了解决这个问题,可以在两个参数上都应用变量:
{{#ifeq:
{{FULLPAGENAME: L'Aquila}}
|
{{FULLPAGENAME}}
|equal|not equal}}
equal


iferror

用于分辨输入字串,并返回两个结果中的一个。如果输入字串中含有HTML元素包含class="error",则会被当作true(真)

class="error"能由其他解析函数,如exprtimerel2abs产生,模板(Templates)错误,如循环、递归和其他解析器错误也能产生。


出自扩展 ParserFunctions

格式
{{#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
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


ifexist

根据指定页面是否存在,返回两个指定值中的一个。

出自扩展 ParserFunctions

格式
{{#ifexist: 页面标题|页面存在输出值|页面不存在输出值}}
例子
此函数当页面存在时判定为true(真),不论它是否包含内容,是否为可见空白页(包含元数据,如分类链接和魔术字(Magic words),但不含可见内容),是否为空白页,是否为重定向页。
只有链接为红色(页面不存在,如帮助:如何打辰纱)的页面,才会被判定为false(假),包括曾经存在但已经被删除的页面。
{{#ifexist: 帮助:解析函数|exists|doesn't exist}}
exists
{{#ifexist: 帮助:如何打辰纱|exists|doesn't exist}}
doesn't exist
自定义过的系统消息页(System message)和由软件定义的特殊页(Special pages)会被判定为true(真)
2233好哇
{{#ifexist: 特殊:监视列表|exists|doesn't exist}}
exists
{{#ifexist: 特殊:用户查核|exists|doesn't exist}}
doesn't exist (因为没有安装CheckUser
{{#ifexist: MediaWiki:Copyright|exists|doesn't exist}}
doesn't exist (因为MediaWiki:Copyright页面没有被自定义过)
如果一个页面使用#ifexist:来检查目标页面是否存在,则该页面会出现在特殊:链入页面中目标页面的列表里。
所以如果本页面(帮助:解析函数)中存在
{{#ifexist:用户:114514}}
,则在特殊:链入页面/用户:114514中,会包含帮助:解析函数
在使用了共享媒体存储库(Shared media repository)的wiki上,#ifexist:还可以用来检查文件是否被上传到指定的存储库,而不是wiki自身:
{{#ifexist: 文件:现在.png|exists|doesn't exist}}
doesn't exist
{{#ifexist: 文件:测试.jpg|exists|doesn't exist}}
doesn't exist
{{#ifexist: 媒体:Test.png|exists|doesn't exist}}
exists
如果本地wiki已经创建了以上文件,则会显示exists
#ifexist:不对跨wiki链接起作用。
ifexist的限制
#ifexist:被认为是一个“高开销解析函数”;每个页面只能包含有限个这样的函数(包括模板中含的函数)。当超过限制的数量时,任何超出数量的#ifexist:函数会被自动判定为false(假),不论目标页面是否存在。并且页面会被添加至分类:页面中有太多耗费的语法功能呼叫。各个追踪分类(Tracking categories)的名字在不同语言的wiki内可能有所不同。
在一些应用场合下,可以使用CSS来模拟ifexist的效果,如使用选择器a.new(用于选择指向不存在页面的链接)或a:not(.new)(用于选择指向存在页面的链接)。更进一步,既然单个页面中高开销解析解析函数的数量限制是由$wgExpensiveParserFunctionLimit参数控制的,可以通过修改LocalSettings.php来满足使用要求。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时



ifexpr

根据指定表达式计算结果的布尔值,返回两个指定值中的一个。

出自扩展 ParserFunctions

格式
{{#ifexpr: 表达式|为真输出值|为假输出值}}
'表达式'的计算方法和上面expr完全一样,可用的运算符也相同。运算结果会被当作一个布尔值。
例子
输入任何空表达式会判断为false(假)
{{#ifexpr:|yes|no}}
no
和上面expr中所述相同:零值被判断为false(假),任何非零值被判断为true(真),所以这个函数的功能也可以用ifeqexpr来实现:
{{#ifeq:
{{#expr: 表达式}}
|0|为假输出值|为真输出值}}
但在表达式为空或有误时,这两种实现方式的效果不同(因为错误消息会被当作一个空字串,它不等于零,所以会得到'为真输出值'):
{{#ifexpr: =|yes|no}}
表达式错误:未预料的=操作符。
而:
{{#ifeq:
{{#expr: =}}
|0|no|yes}}
yes
两个'输出值'可省略其一或两者都省略。当该情况下的输出值被省略时,不会输出结果。
{{#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}}
支持逻辑运算 and 和 or:
{{#ifexpr: 0 = 0 or 1 = 0|yes}}
yes
{{#ifexpr: 0 = 0 and 1 = 0||no}}
no
{{#ifexpr: 2 > 0 or 1 < 0|yes}}
yes
{{#ifexpr: 2 > 0 and 1 > 0|yes|no}}
yes



imgh

获取指定图片高度。

出自扩展 ImageSizeInfoFunctions

格式
{{#imgh: 图片名}}
例子
{{#imgh: 文件:Wikilogo.png}}
101
{{#imgh: Wikilogo.png}}
101
{{#imgh: aaaaaaaaaaaaaaaaaaaaaaa.png}}
0 (不存在的图片)
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


imgw

获取指定图片宽度。

出自扩展 ImageSizeInfoFunctions

格式
{{#imgw: 图片名}}
例子
{{#imgw: 文件:Wikilogo.png}}
440
{{#imgw: Wikilogo.png}}
440
{{#imgw: aaaaaaaaaaaaaaaaaaaaaaa.png}}
0 (不存在的图片)
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


info

添加一个带有悬浮提示小图标。

对移动端用户不友好,使用需谨慎。

出自扩展 Semantic MediaWiki SMW功能强大,应用广泛。<br>如需单页内大量调用,请考虑使用模板、模块批量查询,这能提升综合体验、降低资源消耗。<br>另请参阅灰机、Fandom的相关文档,他们详述了对SMW的顾虑和限制。

格式
{{#info: <text>|<icon>|max-width=<width>|theme=<theme>}}
icon 可选:infoicon可选项info、noteicon可选项note、warningicon可选项warning、erroricon可选项error
max-width 最大宽度,正整数。
theme 可选,悬浮框样式:square-bordertheme可选项square-border、square-border-lighttheme可选项square-border-light
例子
一些内嵌文本
{{#info: 在悬浮提示中显示的文本。}}
一些内嵌文本 在悬浮提示中显示的文本。
电话号码
{{#info: 请按格式输入,例如:+86-13579246810|note}}
→ 电话号码 请按格式输入,例如:+86-13579246810
https:/‌/wiki.biligame.com/
{{#info: 请必须使用 https。|warning}}
https://wiki.biligame.com/ 请必须使用 https。
2011-02-29
{{#info: 日期不正确。|error}}
2011-02-29 日期不正确。
在悬浮提示中显示大量文字
{{#info: 悬浮提示中要显示大量文字。……|note|max-width=600}}
在悬浮提示中显示大量文字 悬浮提示中要显示大量文字。还有更多的文字。还有更多的文字。还有更多的文字。还有更多的文字。</br></br>悬浮提示中要显示大量文字。还有更多的文字。还有更多的文字。还有更多的文字。还有更多的文字。
使用不同主题样式的悬浮提示。
{{#info: 使用不同主题样式的悬浮提示。|note|theme=square-border-light}}
使用不同主题样式的悬浮提示。 使用不同主题样式的悬浮提示。


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时



int

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

MediaWiki原生函数。

格式
{{int: Message名称|参数1|参数2|...|参数N}}
例子
{{int: edit}}
编辑
{{int: Msu-comment}}
基于MsUpload的文件上传 (修改MediaWiki:Msu-comment页面,可以修改编辑器中拖动图片上传的默认说明)
{{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

调用使用Lua编写的模块。 模块提供了灵活、高性能的扩展方式。在一些自动化程度较高的Wiki中,模块极大减少了维护工作量,让少数贡献者维持大规模wiki的数据更新成为可能。

历史上,一些解析函数扩展的引入极大的增加了编写wikitext的复杂性上限,臃肿繁杂的wikitext不易阅读、维护困难。同时,如字符串解析函数等在大规模应用时出现了性能问题,这导致了Wikimedia的wiki停止使用String function,并用模块作为替代解决问题。请参见讨论phab:T8455获取更多信息。

出自扩展 Scribunto

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

更多信息请参阅

模块和Lua
灰机Wiki: 帮助:模块
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时



L

language

根据输入的语言代号获取对应的语言全名。

MediaWiki原生函数。

格式
{{#language: 语言代号}}
例子
{{#language: zh}}
中文
{{#language: zh-hans}}
中文(简体)
{{#language: zh-hant}}
中文(繁體)
{{#language: ja}}
日本語
{{#language: en}}
English
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


lc

把输入的字串中所有字母变成小写。

MediaWiki原生函数。

格式
{{lc: wikitext}}
例子
{{lc: QWER脸滚键盘}}
qwer脸滚键盘


lcfirst

把输入的字串中第一个字母变成小写。

MediaWiki原生函数。

格式
{{lcfirst: wikitext}}
例子
{{lcfirst: QEWR脸滚键盘}}
qEWR脸滚键盘
{{lcfirst: 你们说的QEWR脸滚键盘是什么意思啊}}
你们说的QWER脸滚键盘是什么意思啊


len

获取字串长度,多字节字符也算一个字,字串前后的空格和回车均不会算进长度中,若输入的字串中有HTML实体(&nbsp;等),该实体将不会被转换成一般文字,而是按原本的姿态(&nbsp;)计算。被nowiki括住的内容不会算进长度中。

出自扩展 ParserFunctions的String functions。

格式
{{#len: 字串}}
例子
{{#len: A字串 BC}}
6
{{#len: 字串&nbsp;BC}}
10
{{#len:
<nowiki>This is a</nowiki>
test}}
4
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

listfilter

出自扩展ParserPower

参见帮助:ParserPower#listfilter

listmap

出自扩展ParserPower

参见帮助:ParserPower#listmap

listmerge

出自扩展ParserPower

参见帮助:ParserPower#listmerge

listsort

出自扩展ParserPower

参见帮助:ParserPower#listsort

listunique

出自扩展ParserPower

参见帮助:ParserPower#listunique

localurl

获取指定页面的本地URL,可附加参数。

获取的URL不包括域名,且被URL Encode,这与#localurle行为一致。

MediaWiki原生函数。

格式
{{localurl: 页面名|参数}}
例子
{{localurl: 帮助:解析函数}}
/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{localurl: 帮助:解析函数|action=edit}}
/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
{{localurl: 帮助:解析函数|aaa=233}}
/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&aaa=233


localurle

获取指定页面的本地URL,可附加参数。

获取的URL不包括域名,且被URL Encode,这与#localurl行为一致。

MediaWiki原生函数。

格式
{{localurle: 页面名|参数}}
例子
{{localurle: 帮助:解析函数}}
/tools/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{localurle: 帮助:解析函数|action=edit}}
/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
{{localurle: 帮助:解析函数|aaa=233}}
/tools/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&aaa=233


loop

按指定次数循环处理一段wikitext。

出自扩展 Loops

格式
{{#loop: 变量名|开始值|执行次数|重复的wikitext}}
参数1:定义函数中的变量名,可在参数4中输出时使用。
参数2:开始值,上例中为1,即表示从1开始计算。也可以是其他数字,比如角色卡抽到手就已经是3星,填3,从3开始。
参数3:执行次数,如上例中的4。也可以是负数,如-4,同样执行4次,但参数1中变量变为递减。
参数4:重复输出的内容。可以利用
{{#var:变量名}}
来改变重复输出时的内容。
例子
{{#loop: loop_i|1|4|这是第
{{#var:loop_i}}
轮重复,还有
{{#expr: 4 -
{{#var: loop_i}}
}}
轮待输出。
<br>
}}
这是第1轮重复,还有3轮待输出。
这是第2轮重复,还有2轮待输出。
这是第3轮重复,还有1轮待输出。
这是第4轮重复,还有0轮待输出。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


lst

引用特定页面内已预先标记的内容段落。只要在目标页面内,把目标内容用

<section begin="段落名称"></section>

<section begin="段落名称"/>

包裹,就可以在任何页面中使用此函数引用该段内容。如果段落名称内不含空格等在XML语法中有特殊意思的字符,段落名称前后的半形引号则可略去。

出自扩展 Labeled Section Transclusion

格式
{{#lst: 页面名称|段落名称}}
例子
  • 以下例子引用了词条帮助:样板中名为“标记内容”的段落。
{{#lst: 帮助:样板|标记内容}}
这里显示的是样板内容
<section begin=标记内容 />
{| class="wikitable" style="width:50%"
|-
| 这里显示的是样板内容
|}
<section end=标记内容 />
本地化:

在内部,解析器函数都使用lst前缀,以与扩展名称保持一致。由于这个首字母缩略词可能会让非开发人员感到困惑,因此引入了可读的英语变体,因此目前可以从任一名称调用这些函数,使用方法和原函数一致。

函数 英语
#lst #section
#lstx #section-x
#lsth #section-h
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


lsth

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

引用特定页面内位于特定标题下的内容段落。此函数使用方法比lst简单,不需要使用section来定义段落,只需要使用标题(例如== 标题 ==)。此函数会引用指定的标题之后开始,下一个同级标题之前的结束的内容,并不会包含标题本身。另外可以设定结束子标题名称,让函数引用从子标题名称开始直到结束子标题名称之前的所有内容,此功能可以用于同时引用多个段落,只要遇到结束子标题,不管是不是同级标题也会立刻停止引用,并不会引用到结束子标题及其后的内容。

  • 由于此函数使用方法和lst对比,不需要使用section来定义段落开头和结尾,因此如果目标段落在原页面内使用了需要参数结束的模板,会将该模板内容一起引用,可能会导致页面排版混乱


出自扩展 Labeled Section Transclusion

格式
{{#lsth: 页面名称|子标题名称|结束子标题名称}}
例子
本地化:

在内部,解析器函数都使用lst前缀,以与扩展名称保持一致。由于这个首字母缩略词可能会让非开发人员感到困惑,因此引入了可读的英语变体,因此目前可以从任一名称调用这些函数,使用方法和原函数一致。

函数 英语
#lst #section
#lstx #section-x
#lsth #section-h
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时



lstx

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

引用特定页面内除了已预先标记的段落以外的内容,并可以选择用其他字串代替被去掉的段落。

出自扩展 Labeled Section Transclusion

格式
{{#lstx: 页面名称|除去段落名称|代替字串}}
例子
{{#lstx:帮助:样板|标记内容|请查看
[[帮助:样板#样板1]]
}}

==样板1==
请查看[[帮助:样板#样板1]]

==样板2==

 
本地化:

在内部,解析器函数都使用lst前缀,以与扩展名称保持一致。由于这个首字母缩略词可能会让非开发人员感到困惑,因此引入了可读的英语变体,因此目前可以从任一名称调用这些函数,使用方法和原函数一致。

函数 英语
#lst #section
#lstx #section-x
#lsth #section-h
  • 此函数比较难用,因为大部分词条除了文字内容还会有很多用于分类和导航的部分。比如使用以上的例子的话就会把原词条内的分类信息和导航段落也一并引用了,对分类管理和内容排版非常不友好。此函数亦无法同时不引用两段或以上的内容,所以设定更多段落排除分类等信息的方法也是不行的。


lstapp

出自扩展ParserPower

参见帮助:ParserPower#lstapp

lstcnt

出自扩展ParserPower

参见帮助:ParserPower#lstcnt

lstcntuniq

出自扩展ParserPower

参见帮助:ParserPower#lstcntuniq

lstelem

出自扩展ParserPower

参见帮助:ParserPower#lstelem

lstfltr

出自扩展ParserPower

参见帮助:ParserPower#lstfltr

lstfnd

出自扩展ParserPower

参见帮助:ParserPower#lstfnd

lstind

出自扩展ParserPower

参见帮助:ParserPower#lstind

lstjoin

出自扩展ParserPower

参见帮助:ParserPower#lstjoin

lstmap

出自扩展ParserPower

参见帮助:ParserPower#lstmap

lstmaptemp

出自扩展ParserPower

参见帮助:ParserPower#lstmaptemp

lstprep

出自扩展ParserPower

参见帮助:ParserPower#lstprep

lstrm

出自扩展ParserPower

参见帮助:ParserPower#lstrm

lstsep

出自扩展ParserPower

参见帮助:ParserPower#lstsep

lstsrt

出自扩展ParserPower

参见帮助:ParserPower#lstsrt

lstsub

出自扩展ParserPower

参见帮助:ParserPower#lstsub

lstuniq

出自扩展ParserPower

参见帮助:ParserPower#lstuniq


N

namespace

获取指定页面的命名空间。

MediaWiki原生函数。

格式
{{NAMESPACE: 页面名}}
例子
{{NAMESPACE:帮助:解析函数}}
帮助
{{NAMESPACE:首页}}
{{NAMESPACE:模板:2333}}
模板
{{NAMESPACE:帮助:解析函数}}
帮助
底层代码
尝试将输入字符串作为标题解析。如果解析成功,返回其命名空间名称。
其核心功能由Title类提供。
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


namespacee

获取指定页面的命名空间名称,并URL编码。

MediaWiki原生函数。

格式
{{NAMESPACEE: 页面名}}
例子
{{NAMESPACEE:帮助:解析函数}}
%E5%B8%AE%E5%8A%A9
{{NAMESPACEE:首页}}
{{NAMESPACEE:模板:2333}}
%E6%A8%A1%E6%9D%BF
{{NAMESPACEE:帮助:解析函数}}
%E5%B8%AE%E5%8A%A9
底层代码
尝试将输入字符串作为标题解析。如果解析成功,将其命名空间名称URL编码后返回。
其核心功能由Title类提供。

namespacenumber

获取指定页面的命名空间代码。

MediaWiki原生函数。

格式
{{NAMESPACENUMBER: 页面名}}
例子
{{NAMESPACENUMBER:首页}}
0
{{NAMESPACENUMBER:帮助:解析函数}}
12
{{NAMESPACENUMBER:模板:2333}}
10
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


ns

获取命名空间在当前语言中的名称。

MediaWiki原生函数。

格式
{{ns: 命名空间编号}}
{{ns: 命名空间名称}}
{{ns: 命名空间别名}}
例子
{{ns: -2}}
媒体文件
{{ns: -1}}
特殊
{{ns: Special}}
特殊
{{ns: 特殊}}
特殊
{{ns: 10}}
模板
{{ns: 11}}
模板讨论
{{ns: Category}}
分类
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

nse

获取命名空间在当前语言中的名称,并URL编码。

MediaWiki原生函数。

格式
{{nse: 命名空间编号}}
{{nse: 命名空间名称}}
{{nse: 命名空间别名}}
例子
{{nse: -2}}
%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6
{{nse: -1}}
%E7%89%B9%E6%AE%8A
{{nse: Special}}
%E7%89%B9%E6%AE%8A
{{nse: 特殊}}
%E7%89%B9%E6%AE%8A
{{nse: 10}}
%E6%A8%A1%E6%9D%BF
{{nse: 11}}
%E6%A8%A1%E6%9D%BF%E8%AE%A8%E8%AE%BA
{{nse: Category}}
%E5%88%86%E7%B1%BB


numberingroup

获取特定用户组权限的用户数量。

MediaWiki原生函数。

格式
{{NUMBERINGROUP: 群组名称}}
例子
{{NUMBERINGROUP: bureaucrat}}
8
{{NUMBERINGROUP: confirm}}
0
{{NUMBERINGROUP: sysop}}
17
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


numberofactiveusers

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

MediaWiki原生函数。

格式
{{NUMBEROFACTIVEUSERS}}
例子
{{NUMBEROFACTIVEUSERS}}
11
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

numberofadmins

获取管理员数量,与特殊:统计信息中显示的一致。

MediaWiki原生函数。

格式
{{NUMBEROFADMINS}}
例子
{{NUMBEROFADMINS}}
17


numberofarticles

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

MediaWiki原生函数。

格式
{{NUMBEROFARTICLES}}
例子
{{NUMBEROFARTICLES}}
149
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


numberofedits

获取总编辑次数,与特殊:统计信息中显示的一致(项目:自 WIKI实验室 建立以来的页面编辑数)。

MediaWiki原生函数。

格式
{{NUMBEROFEDITS}}
例子
{{NUMBEROFEDITS}}
15,790
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

numberoffiles

获取媒体文件数量,与特殊:统计信息中显示的一致(项目:上传的文件)。

MediaWiki原生函数。

格式
{{NUMBEROFFILES}}
例子
{{NUMBEROFFILES}}
171
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


numberofpages

获取所有页面数量,与特殊:统计信息中显示的一致(项目:页面(本wiki的所有页面,包括讨论页面、重定向等。))。

MediaWiki原生函数。

格式
{{NUMBEROFPAGES}}
例子
{{NUMBEROFPAGES}}
2,271
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

numberofpageviews

【已弃用MediaWiki Version: ≤ 1.25页面浏览次数。由于缓存,它通常是不准确的。

MediaWiki原生函数。

格式
{{NUMBEROFPAGEVIEWS}}
例子
{{NUMBEROFPAGEVIEWS}}
500


numberofusers

站点注册用户数量。

在BWIKI上,登录B站的用户第一次浏览某Wiki时,会自动创建wiki用户(基于B站账号),并自动赋予bilibili和自动确认用户等用户组。

MediaWiki原生函数。

格式
{{NUMBEROFUSERS}}
例子
{{NUMBEROFUSERS}}
7,263,214
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


numberofviews

【已弃用MediaWiki Version: ≤ 1.25站点浏览次数。与特殊:统计信息中的 查看统计 - 总计查看 一致。

MediaWiki原生函数。

格式
{{NUMBEROFVIEWS}}
例子
{{NUMBEROFVIEWS}}
1,134,136


O

or

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

出自扩展 ParserPower

格式
{{#or: 字符串1|字符串2||字符串n}}
例子
{{#or: 1|2}}
1
{{#or:|2}}
2
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


P

padleft

往字串左边填充特定符号直到一定长度,多字节文字也算一个字,原字串为空的话还可以当作repeat用,如果原字串长度比需要的长度长,则不会做任何处理。

MediaWiki原生函数。

格式
{{padleft: 原字串|需要的长度(字符数)|填充字串(默认为“0”)}}
例子
{{padleft: 15|5}}
00015
{{padleft: xyz|5}}
00xyz
{{padleft: 原字串|10|}}
填填填填填填填原字串
{{padleft: 原字串|10|填充}}
填充填充填充填原字串
{{padleft:|5|你好}}
你好你好你
{{padleft:|5|大家好}}
大家好大家
{{padleft: 这个真心太长了吧|5|}}
这个真心太长了吧


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


padright

往字串右边填充特定符号直到一定长度,多字节文字也算一个字,原字串为空的话还可以当作repeat用,如果原字串长度比需要的长度长,则不会做任何处理。

MediaWiki原生函数。

格式
{{padright: 原字串|需要的长度(字符数)|填充字串(默认为“0”)}}
例子
{{padright: 15|5}}
15000
{{padright: xyz|5}}
xyz00
{{padright: 原字串|10|}}
原字串填填填填填填填
{{padright: 原字串|10|填充}}
原字串填充填充填充填
{{padright:|5|你好}}
你好你好你
{{padright:|5|大家好}}
大家好大家
{{padright: 这个真心太长了吧|5|}}
这个真心太长了吧


pageid

获取页面的ID,是页面的唯一标识符。

MediaWiki原生函数。

格式
{{PAGEID:页面名}}
例子
{{PAGEID:首页}}
1
{{PAGEID:帮助:解析函数}}
2216
{{PAGEID:不存在的页面233333}}
0
其他用法
可以用于构建页面“短链”如 https://wiki.biligame.com/wikipath/?curid=页面ID
帮助:解析函数页:https://wiki.biligame.com/tools/?curid=2216
需要注意,这个URL会有独立的缓存能加速访问,类似wiki对js/css资源的缓存,约半小时。

pagename

获取页面名,不带有命名空间。

MediaWiki原生函数。

格式
{{PAGENAME}}
例子
{{PAGENAME}}
解析函数
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


pagenamee

获取URL编码的页面名,不带有命名空间。

MediaWiki原生函数。

格式
{{PAGENAMEE}}
例子
{{PAGENAMEE}}
%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0


pagesincategory

返回属于特定分类的页面数量。

MediaWiki原生函数。

格式
{{PAGESINCATEGORY: 分类名}}
{{PAGESINCATEGORY: 分类名 | all / pages / subcats / files}} 默认all
例子
{{PAGESINCATEGORY: 施工中}}
32
{{PAGESINCATEGORY: 施工中|files}}
0
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


pagesize

获取指定页面大小(字节)。

可以指定不格式化数字;不存在的页面大小为0。

MediaWiki原生函数。

格式
{{PAGESIZE: 页面名}}
{{PAGESIZE: 页面名|R}}
不格式化数字
例子
{{PAGESIZE: 帮助:解析函数}}
18,479
{{PAGESIZE: 帮助:解析函数|R}}
18479
{{PAGESIZE: 不存在的页面23333333}}
0


plural

用于语言复数判断。如果参数1是一个绝对值等于1的表达式,返回参数2(单数情况),否则返回参数3(复数情况)。部分语言如俄语支持第四个参数。

MediaWiki原生函数。

格式
{{plural: wikitext|单数情况|复数情况}}
例子
{{plural: 0|is|are}}
are
{{plural: 1|is|are}}
is
{{plural: -1|is|are}}
is
{{plural: 2|is|are}}
are
{{plural:
{{#expr:21 mod 10}}
|is|are}}
is


pos

查找指定字符串首次出现的位置,从左到右搜索,没有则返回空。

区分大小写。nowiki标签及其中内容算作一个不匹配任何内容的字符。

出自扩展 ParserFunctions的String functions。

格式
{{#pos: 字符串|搜索目标}}
{{#pos: 字符串|搜索目标|偏移量}}
指定偏移量,从第几个字符开始搜索
例子
{{#pos: 这是长字串|字串}}
3
{{#pos: 这是长字串长|}}
2
{{#pos: 这是长字串长||4}}
5
{{#pos: 这是长字串|}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

protectionexpiry

查询某页面指定动作的保护时间。

页面不存在或错误的动作返回空,无限期则返回infinity。

MediaWiki原生函数。

格式
{{PROTECTIONEXPIRY: 动作}}
查询本页面
{{PROTECTIONEXPIRY: 动作|页面名}}
【高开销】查询指定页面对指定动作的保护时间
例子
{{PROTECTIONEXPIRY: edit}}
infinity
{{PROTECTIONEXPIRY: move}}
infinity
{{PROTECTIONEXPIRY: edit|不存在的页面233333}}
{{PROTECTIONEXPIRY: move|不存在的页面233333}}
{{PROTECTIONEXPIRY: edit|保护页面示例}}
infinity
{{PROTECTIONEXPIRY: move|保护页面示例}}
infinity
{{PROTECTIONEXPIRY: edit|保护页面示例/有期限的}}
20990908160000
{{PROTECTIONEXPIRY: move|保护页面示例/有期限的}}
20990908160000
{{PROTECTIONEXPIRY: abcdefg|保护页面示例}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


protectionlevel

查询某页面指定动作的保护等级。

没有保护返回空,仅限特定用户组会返回用户组名,例如仅限管理员会返回sysop。

MediaWiki原生函数。

格式
{{PROTECTIONLEVEL: 动作}}
查询本页面
{{PROTECTIONLEVEL: 动作|页面名}}
【高开销】查询指定页面对指定动作的保护时间
例子
{{PROTECTIONLEVEL: edit}}
{{PROTECTIONLEVEL: move}}
{{PROTECTIONLEVEL: edit|保护页面示例}}
sysop
{{PROTECTIONLEVEL: move|保护页面示例}}
sysop
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


Q

queryformlink

缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
  • 参考官方文档和其他文档完善内容
  • 增加实际用例和技巧

特殊:执行查询

出自扩展 Page Forms

格式
{{#queryformlink:form=query form name}}
{{#queryformlink:form=|link text=|link typ=|query string=query string parameters|tooltip=|popup}}
例子
code demo → 效果


R

rel2abs

将相对路径转换为绝对路径。

出自扩展 ParserFunctions

格式
{{#rel2abs: 相对路径}}
{{#rel2abs: 相对路径|基础路径}}
说明
'相对路径'参数中,支持下列格式:
. → 当前路径级别
.. → “至上一级路径”
/foo → “至下一级子目录 /foo”
如果'基础路径'参数没有被指定,则会使用当前页面的完整页面名称(可使用
{{FULLPAGENAME}}
获得,本页为帮助:解析函数)。
例子
一般情况如下:
{{#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”(尝试访问根节点以上节点)
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


replace

返回给定的字符串,其中所有出现的搜索词都被替换为替换词。

此功能区分大小写。

如果搜索词未指定或为空,则将搜索单个空格。

如果替换词未指定或者为空,则所有出现的搜索词都将从字符串中删除。

即使替换词是空格,也会使用空字符串。这是 MediaWiki 解析器的副作用。要使用空格作为替换词,请将其放在 nowiki 标记中。

要用正则表达式匹配替换,请用:rreplace

出自扩展 ParserFunctions的String functions。

格式
{{#replace: 源字符串|搜索项|替换项}}
例子
{{#replace:Clown piece}}
Clownpiece
{{#replace:My_little_home_page|_|
<nowiki> </nowiki>
}}
Mylittlehomepage
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


revisionday

获取指定页面更新日期的日(day),无前导0。

MediaWiki原生函数。

格式
{{REVISIONDAY}}
{{REVISIONDAY: 词条名}}
【高开销】
例子
{{REVISIONDAY}}
26
{{REVISIONDAY: Test}}
10
{{REVISIONDAY: 首页}}
8
{{REVISIONDAY: 模板:面包屑}}
8
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


revisionday2

获取指定页面更新日期的日(day),有前导0(如06)。

MediaWiki原生函数。

格式
{{REVISIONDAY2}}
{{REVISIONDAY2: 词条名}}
【高开销】
例子
{{REVISIONDAY2}}
26
{{REVISIONDAY2: Test}}
10
{{REVISIONDAY2: 首页}}
08
{{REVISIONDAY2: 模板:面包屑}}
08


revisionid

获取页面最新的修订ID。

修订ID是一个wiki站点对每次编辑按顺序分配的唯一标识。更大的revisionid代表着更近更新的编辑。

MediaWiki原生函数。

格式
{{REVISIONID}}
{{REVISIONID: 词条名}}
【高开销】
例子
{{REVISIONID}}
49370
{{REVISIONID: 首页}}
46790
不存在的页面返回空
{{REVISIONID: 不存在的233333333333}}
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


revisionmonth

获取指定页面更新日期中的月,有前导零(即01月)。

MediaWiki原生函数。

格式
{{REVISIONMONTH}}
{{REVISIONMONTH|页面名}}
【高开销】
例子
{{REVISIONMONTH}}
06
{{REVISIONMONTH: 首页}}
05
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

revisionmonth1

获取指定页面更新日期中的月,无前导零(即1月)。

MediaWiki原生函数。

格式
{{REVISIONMONTH1}}
{{REVISIONMONTH1|页面名}}
【高开销】
例子
{{REVISIONMONTH1}}
6
{{REVISIONMONTH1: 首页}}
5


revisiontimestamp

获取指定页面更新时间的时间戳,格式:YYYYMMDDHHMMSS

MediaWiki原生函数。

格式
{{REVISIONTIMESTAMP}}
{{REVISIONTIMESTAMP: 页面名}}
【高开销】
例子
{{REVISIONTIMESTAMP}}
20240626194451
{{REVISIONTIMESTAMP: 首页}}
20240508192335
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

revisionuser

获取指定页面最后编辑的用户名(bid,B站用户唯一标识)。

因为BWIKI与B站账号互通,首次访问某wiki时,系统会自动在对应wiki创建以bid为用户名的用户,因此对于所有BWIKI上的站点,用户的用户名都是bid。 (需要注意,BWIKI职员/管理账号、导入的编辑可能会出现非bid、非数字的用户名)

比如对于bid 39886146的用户,可以通过https://space.bilibili.com/39886146访问一个人的B站用户页。 也可以通过B站/BWiki的API查询获取用户的公开信息。

MediaWiki原生函数。

格式
{{REVISIONUSER}}
{{REVISIONUSER: 页面名}}
例子
{{REVISIONUSER}}
123855714
{{REVISIONUSER: 首页}}
123855714
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

revisionyear

获取指定页面最近更新日期的年,如:2024。

MediaWiki原生函数。

格式
{{REVISIONYEAR}}
{{REVISIONYEAR: 页面名}}
【高开销】
例子
{{REVISIONYEAR}}
2024
{{REVISIONYEAR: 首页}}
2024
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

rmatch

基于正则表达式匹配文本

正则表达式对任何字符都敏感,包括空格。

如果匹配成功 $#\# 包含捕获的文本。如果您想要一个组后跟另一个数字,请使用 ${#}##为数字。

出自扩展 RegexFunctions

格式
{{#rmatch:string|pattern|then|else}}
{{#rmatch:源字符串|正则表达式|匹配|不匹配}}
例子
{{#rmatch: toolswiki是WIKI实验室|\w+|匹配|不匹配}}
匹配
{{#rmatch: toolswiki是WIKI实验室| \w+ |匹配|不匹配}}
不匹配(由于表达式中包含了空格导致匹配失败,因为空格也属于表达式的一部分)
{{#rmatch: toolswiki是WIKI实验室|([a-z]+)|$1}}
toolswiki
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


rootpagename

对于子页面,获取根页面名(不包括命名空间)。

MediaWiki原生函数。

格式
{{ROOTPAGENAME}}
例子
当前页
{{ROOTPAGENAME}}
→ 解析函数
对于“帮助:Title/foo/bar” 页面
{{ROOTPAGENAME}}
Title
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

rootpagenamee

对于子页面,获取URL编码的根页面名(不包括命名空间)。

MediaWiki原生函数。

格式
{{ROOTPAGENAMEE}}
例子
当前页
{{ROOTPAGENAMEE}}
→ %E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
对于“帮助:点点/赛/高” 页面
{{ROOTPAGENAMEE}}
%E7%82%B9%E7%82%B9 (点点的URL编码)


rpos

基于正则表达式匹配文本

正则表达式对任何字符都敏感,包括空格。

如果匹配成功 $#\# 包含捕获的文本。如果您想要一个组后跟另一个数字,请使用 ${#}##为数字。

出自扩展 RegexFunctions

格式
{{#rmatch:string|pattern|then|else}}
{{#rmatch:源字符串|正则表达式|匹配|不匹配}}
例子
{{#rmatch: toolswiki是WIKI实验室|\w+|匹配|不匹配}}
匹配
{{#rmatch: toolswiki是WIKI实验室| \w+ |匹配|不匹配}}
不匹配(由于表达式中包含了空格导致匹配失败,因为空格也属于表达式的一部分)
{{#rmatch: toolswiki是WIKI实验室|([a-z]+)|$1}}
toolswiki
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


rreplace

基于正则表达式替换文本

正则表达式对任何字符都敏感,包括空格。

如果匹配成功 $#\# 包含捕获的文本。如果您想要一个组后跟另一个数字,请使用 ${#}##为数字。

出自扩展 RegexFunctions

格式
{{#rreplace:string|pattern|replacement}}
{{#rreplace:源字符串|正则表达式|替换文本}}
例子
{{#rreplace:bilibiliBWIKIbilibili|bilibili|哔哩哔哩}}
哔哩哔哩BWIKI哔哩哔哩
  • 这个例子中,将待处理文本中的所有“bilibili”替换成了“哔哩哔哩”。
{{#rreplace:bilibiliBWIKIbilibili|(b
{{!}}
l)|replacement=
<span style="color:red">\1</span>
}}
bilibiliBWIKIbilibili
  • 这个例子中,将待处理的文本通过正则表达式,把bl处理成红色标记。
{{#rreplace:bilibiliBWIKIbilibili|(KI)|replacement=
<span style="color:red">${1}1</span>
}}
bilibiliBWIKI1bilibili
  • 这个例子中,将待处理的文本通过正则表达式,把KI替换成了KI1并标红。由于$11表示的是第11个匹配的内容,并不是我们想要的正确表达式,所以这里需要将$11写成${1}再加上添加的1,即${1}1
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

rsplit

基于正则表达式分割字符串,并返回指定片段。

正则表达式对任何字符都敏感,包括空格。

片段序号从左往右数为0开始的正整数,从右往左数则为-1开始的负整数。

出自扩展 RegexFunctions

格式
{{#rsplit:string|pattern|piece}}
{{#rsplit:源字符串|正则表达式}}
{{#rsplit:源字符串|正则表达式|片段序号}}
例子
{{#rsplit:One Two Three Four|\s+}}
One
{{#rsplit:One Two Three Four|\s+|1}}
Two
{{#rsplit:One Two Three Four|\s+|2}}
Three
{{#rsplit:One Two Three Four|\s+|-1}}
Four


S

seo

设置页面的SEO(搜索引擎优化)信息,如title和meta标签内容。

出自扩展 WikiSEO

格式
{{#seo:|title=页面标题}}
{{#seo:|title=页面标题|title_mode=replace / prepend / append}}
标题位置。replace是替换(默认),prepend是前置增加,append是追加。
{{#seo:|title=页面标题|title_mode=prepend|title_separator=<<}}
title_separator是分隔符,位于前置/追加的标题与原标题中间的分割。默认是 -
{{#seo:|keywords=Apple, Pears, Oranges}}
页面关键词,以半角逗号分割
{{#seo:|description=This page contains information about...}}
页面简述
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


set

出自Semantic Mediawiki。请参见帮助:SMW#set

set_recurring_event

出自Semantic Mediawiki。请参见帮助:SMW#set_recurring_event

show

出自Semantic Mediawiki。请参见帮助:SMW#show

smwdoc

出自Semantic Mediawiki。请参见帮助:SMW#smwdoc

special

指定的特殊页面在当前语言中的全名(包含命名空间)。

MediaWiki原生函数。

格式
{{#special: 页面名称}}
例子
{{#special: 特殊页面}}
特殊:特殊页面
{{#special: specialpages}}
特殊:特殊页面
{{#special: ask}}
特殊:询问
{{#special: ExpandTemplates}}
特殊:展开模板
{{#special: 2333333333}}
特殊:2333333333 (不存在的特殊页面)


speciale

指定的特殊页面在当前语言中的全名(包含命名空间),并以URL编码。

MediaWiki原生函数。

格式
{{#speciale: 页面名称}}
例子
{{#speciale: 特殊页面}}
%E7%89%B9%E6%AE%8A:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: specialpages}}
%E7%89%B9%E6%AE%8A:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: ask}}
%E7%89%B9%E6%AE%8A:%E8%AF%A2%E9%97%AE
{{#speciale: ExpandTemplates}}
%E7%89%B9%E6%AE%8A:%E5%B1%95%E5%BC%80%E6%A8%A1%E6%9D%BF
{{#speciale: 2333333333}}
%E7%89%B9%E6%AE%8A:2333333333 (不存在的特殊页面)
{{#speciale: 一个GPT助手}}
%E7%89%B9%E6%AE%8A:%E4%B8%80%E4%B8%AAGPT%E5%8A%A9%E6%89%8B (不存在的特殊页面)


sub

字符串截取

出自扩展 ParserFunctions的String functions。

格式
{{#sub: 字符串|起始位置|长度}}
例子
如果'起始位置'参数为正数(或者为零),按首字符的'位置'为'0'的规则,返回相应的字串:
{{#sub:Icecream|3}}
cream
{{#sub:Icecream|0|3}}
Ice
如果'起始位置'参数为负数,则从字串末尾开始,返回相应长度的的字串:
{{#sub:Icecream|-3}}
eam
'长度'参数如果出现,并且为正数,则表示返回字串的最大长度:
{{#sub:Icecream|3|3}}
cre
如果'长度'参数为负数,则表示从字串末尾略去几个字符:
{{#sub:Icecream|3|-3}}
cr
注意
如果'长度'参数是零,则不会起作用:
{{#sub:Icecream|3|0}}
cream
如果'起始位置'参数指定的位置,落在负的'长度'参数所略去的字符上,则会返回空字串:
{{#sub:Icecream|3|-6}}
(空字串)
此函数兼容UTF-8多字节字符,如:
{{#sub:Žmržlina|3}}
žlina
如同len一样,
<nowiki>
等标签扩展,不计长度,也不占'位置',如:
{{#sub:
<nowiki>This is a</nowiki>
test|0}}
test


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

subjectpagename

获取讨论页对应的内容页面名,带命名空间。

镜像功能是TALKPAGENAME(获取页面对应的讨论页面名)

SUBJECTPAGENAME与ARTICLEPAGENAME相同。

MediaWiki原生函数。

格式
{{SUBJECTPAGENAME}}
{{SUBJECTPAGENAME: 页面名}}
例子
对于点点的“HiWiki”页面
{{TALKPAGENAME: HiWiki}}
讨论:HiWiki
对于“讨论:HiWiki”页面
{{SUBJECTPAGENAME: 讨论:HiWiki}}
HiWiki
对于“帮助:解析函数”页面
{{TALKPAGENAME: 帮助:解析函数}}
帮助讨论:解析函数
对于“帮助讨论:解析函数”页面
{{SUBJECTPAGENAME: 帮助讨论:解析函数}}
帮助:解析函数
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


subjectpagenamee

获取讨论页对应的内容页面名,带命名空间,以URL编码。

镜像功能是TALKPAGENAMEE(获取页面对应的讨论页面名)

SUBJECTPAGENAMEE与ARTICLEPAGENAMEE相同。

MediaWiki原生函数。

格式
{{SUBJECTPAGENAMEE}}
{{SUBJECTPAGENAMEE: 页面名}}
例子
对于点点的“HiWiki”页面
{{TALKPAGENAMEE: HiWiki}}
%E8%AE%A8%E8%AE%BA:HiWiki (即“讨论:HiWiki”的URL编码)
对于“讨论:HiWiki”页面
{{SUBJECTPAGENAMEE: 讨论:HiWiki}}
HiWiki
对于“帮助:解析函数”页面
{{TALKPAGENAMEE: 帮助:解析函数}}
%E5%B8%AE%E5%8A%A9%E8%AE%A8%E8%AE%BA:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
对于“帮助讨论:解析函数”页面
{{SUBJECTPAGENAMEE: 帮助讨论:解析函数}}
%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0


subjectspace

在讨论页获取内容页面的命名空间名。主命名空间为空。镜像功能是TALKSPACE

MediaWiki原生函数。

格式
{{SUBJECTSPACE: 讨论页名称}}
例子
{{SUBJECTSPACE: 帮助讨论:解析函数}}
帮助
{{SUBJECTSPACE: 讨论:解析函数}}
对应的
{{TALKSPACE: 解析函数}}
讨论
{{TALKSPACE: 帮助:解析函数}}
帮助讨论
实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


subjectspacee

在讨论页获取内容页面的命名空间名,并以URL编码。主命名空间为空。镜像功能是 TALKSPACEE

MediaWiki原生函数。

格式
{{SUBJECTSPACEE: 讨论页名称}}
例子
{{SUBJECTSPACEE: 帮助讨论:解析函数}}
%E5%B8%AE%E5%8A%A9 (帮助)
{{SUBJECTSPACEE: 讨论:解析函数}}
对应的
{{TALKSPACEE: 解析函数}}
%E8%AE%A8%E8%AE%BA (讨论)
{{TALKSPACEE: 帮助:解析函数}}
%E5%B8%AE%E5%8A%A9%E8%AE%A8%E8%AE%BA (帮助讨论)


subobject

出自Semantic Mediawiki。请参见帮助:SMW#subobject

subpagename

获取子页面标题。例如“Help:Title/foo/bar”会返回“bar”。

MediaWiki原生函数。

格式
{{SUBPAGENAME}}
{{SUBPAGENAME: 页面名}}
例子
{{SUBPAGENAME: Help:Title/foo/bar}}
bar


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


subpagenamee

获取子页面标题,以URL编码。例如“Help:Work/toki/托奇”会返回“%E6%89%98%E5%A5%87”。

MediaWiki原生函数。

格式
{{SUBPAGENAMEE}}
{{SUBPAGENAMEE: 页面名}}
例子
{{SUBPAGENAMEE: Help:Title/foo/bar}}
bar
{{SUBPAGENAMEE: Help:Work/toki/托奇}}
%E6%89%98%E5%A5%87 (托奇)


switch

多分支语句,类似于编程语言中的switch。

其第一个参数是要进行条件判断的表达式或值。后续的参数是一系列的条件和对应的结果。

出自扩展 ParserFunctions

格式
{{#switch: 表达式|case1 = 结果1|case2 = 结果2|case3 = 结果3|...|caseN = 结果N|默认}}
{{#switch: 表达式|case1 = 结果1|case2 = 结果2|case3 = 结果3|...|caseN = 结果N|#default = 默认}}
例子
{{#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和部分转换标签可以作用于配置文件,从而可以使不熟悉模板代码的编辑者编辑可配置元素。
关于默认结果
在当没有'情况字串'与'比较字串'相符时,会返回'默认结果':
{{#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: test|foo=Foo|#default=Bar|baz=Baz}}
Bar
如果'默认结果'被省略,当没有相符情况时,不会返回结果:
{{#switch: test|foo=Foo|baz=Baz}}
一组情况的结果
可以使用“fallthrough”值,即若干'情况字串'返回相同的'返回结果'。这能减少重复。
{{#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的数值比较方法与#ifexpr比较不同:
{{#switch: 12345678901234567|12345678901234568 = A|B}}
B
{{#ifexpr: 12345678901234567 = 12345678901234568|A|B}}
A
具体见ifeq处的第一条“注意”。
关于原始等号符
'情况字串'不能包含原始等号符。为了解决这个问题,创建了一个只包含一个等号符=的模板
{{=}}
应用的例子:
{{#switch: 1=2
 |1=2 = raw
 |1
<nowiki>=</nowiki>
2 = nowiki
 |1
{{=}}
2 = template
 |1&#61;2 = html
 |default
}}

template

关于替换#ifeq
#switch可以用来减少扩展深度。
比如:
{{#switch:
{{{1}}}
|情况1=分支1|情况2=分支2|情况3=分支3|分支4}}
等价于:
{{#ifeq:
{{{1}}}
|情况1|分支1|
{{#ifeq:
{{{1}}}
|情况2|分支2|
{{#ifeq:
{{{1}}}
|情况3|分支3|分支4}}
}}
}}
写成便于阅读的格式即为:
{{#ifeq:
{{{1}}}
|情况1
 |
<!--then-->
分支1
 |
<!--else-->
{{#ifeq:
{{{1}}}
|情况2
 |
<!--then-->
分支2
 |
<!--else-->
{{#ifeq:
{{{1}}}
|情况3
 |
<!--then-->
分支3
 |
<!--else-->
分支4
}}

}}

}}


实际用例
BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时



T

tag

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

MediaWiki原生函数。

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

    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


    talkpagename

    在内容页面获取对应的讨论页名(带有命名空间)

    MediaWiki原生函数。

    格式
    {{TALKPAGENAME}}
    {{TALKPAGENAME: 页面名}}
    例子
    {{TALKPAGENAME}}
    帮助讨论:解析函数
    {{TALKPAGENAME:首页}}
    讨论:首页
    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


    talkpagenamee

    在内容页面获取对应的讨论页名,以URL编码(带有命名空间)

    MediaWiki原生函数。

    格式
    {{TALKPAGENAMEE}}
    {{TALKPAGTALKPAGENAMEEENAME: 页面名}}
    例子
    {{TALKPAGENAMEE}}
    %E5%B8%AE%E5%8A%A9%E8%AE%A8%E8%AE%BA:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0 (帮助讨论:解析函数)
    {{TALKPAGENAMEE:首页}}
    %E8%AE%A8%E8%AE%BA:%E9%A6%96%E9%A1%B5 (讨论:首页)


    talkspace

    获取内容页面对应的讨论页面的命名空间名。

    MediaWiki原生函数。

    格式
    {{TALKSPACE}}
    {{TALKSPACE:页面名}}
    例子
    {{TALKSPACE}}
    帮助讨论
    {{TALKSPACE:首页}}
    讨论
    {{TALKSPACE:模板:=}}
    模板讨论
    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


    talkspacee

    获取内容页面对应的讨论页面的命名空间名,以URL编码。

    MediaWiki原生函数。

    格式
    {{TALKSPACEE}}
    {{TALKSPACEE:页面名}}
    例子
    {{TALKSPACEE:首页}}
    %E8%AE%A8%E8%AE%BA (讨论)
    {{TALKSPACEE}}
    %E5%B8%AE%E5%8A%A9%E8%AE%A8%E8%AE%BA (帮助讨论)
    {{TALKSPACEE:模板:=}}
    %E6%A8%A1%E6%9D%BF%E8%AE%A8%E8%AE%BA (模板讨论)


    template_display

    出自扩展Page Forms。请参阅帮助:PageForms#template_display

    template_params

    出自扩展Page Forms。请参阅帮助:PageForms#template_params

    time

    代码 说明 当前输出值
    清除此页面缓存以更新结果)
    Y 4位数表示的年。 2024
    y 2位数表示的年。 24
    L 1表示闰年(Leap year),0表示非闰年。 1
    o[注 1] ISO-8601 规定的该周所属年份。[注 2] 2024[注 3]
    1. 需要 PHP 5.1.0 或更新版本和 MediaWiki rev:45208
    2. 一般与 Y 相同,除非 ISO 规定的周数(W)属于前一年或者后一年,则使用 ISO 规定的年份。
    3. 如果 注 1 的条件不满足,会显示字母 o
    n 月份号,无前导零。 11
    m 月份号,有前导零。 11
    M 月份名称缩写,使用网站语言。(英文结果为 Nov 11月
    F 月份名称全称,使用网站语言。(英文结果为 November 11月
    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 规定的周数,有前导零。 47
    j 月份内的日期号,无前导零。 21
    d 月份内的日期号,有前导零。 21
    z 年份内的日期号 (1月1日 = 0)。
    注意:要获得 ISO 规定的日期号,需加上1。
    325
    D 星期的缩写。国际上不通用。
    l 星期的全称。国际上不通用。 星期四
    N ISO 8601 规定的星期编号(星期一 = 1,星期日 = 7)。 4
    w 星期编号(星期日 = 0,星期六 = 6)。 4
    a 早上为 am(00:00:00 → 11:59:59);
    其他时间为 pm(12:00:00 → 23:59:59)。
    am
    A 上方 a 的大写形式。 AM
    g 12小时制的时,无前导零。 10
    h 12小时制的时,有前导零。 10
    G 24小时制的时,无前导零。 10
    H 24小时制的时,有前导零。 10
    分 和 秒
    i 小时后的分钟数,有前导零。 27
    s 分钟后的秒钟数,有前导零。 16
    U UNIX时间(Unix time)。从格林尼治时间(GMT)1970年1月1日00:00:00开始计的秒钟数。 1732184836
    时区(需 MediaWiki 1.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-11-21T10:27:16+00:00
    r RFC 5322 格式的日期,等价于 D, j M Y H:i:s +0000,其中星期名和月份名国际上不通用。 Thu, 21 Nov 2024 10:27:16 +0000
    非公历日历
    伊斯兰历(Islamic calendar),又称 希吉来历(Hijri calendar)
    xmj 月份内的日期号。 19
    xmF 月份名称全称。 主马达·敖外鲁月
    xmn 月份号。 5
    xmY 全长表示的年。 1446
    伊朗历(Iranian calendar),又称 贾拉利历(Jalali calendar)
    xij 月份内的日期号。 1
    xiF 月份名称全称。 Azar
    xin 月份号。 9
    xiY 全长表示的年。 1403
    xiy 2位数表示的年。 03
    希伯来历(Hebrew calendar
    xjj 月份内的日期号。 20
    xjF 月份名称全称。 玛西班月
    xjt 当前月份的天数。 30
    xjx 属格形式的月份名称。 Cheshvan
    xjn 月份号。 2
    xjY 全长表示的年。 5785
    泰国历(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}}

    ב'כ"ד

    将日期和/或时间(公历)按格式字串规定的格式进行转换。

    可自行指定日期/时间对象,默认使用魔术字(Magic word

    {{CURRENTTIMESTAMP}}

    的值(该值使用世界协调时间,UTC),也就是页面最近一次渲染为HTML的时间。

    出自扩展 ParserFunctions

    格式
    {{#time: 格式字串}}
    {{#time: 格式字串|日期/时间对象}}
    {{#time: 格式字串|日期/时间对象|语言代码}}
    在右边的表格中列出了支持的格式控制代码。'格式字串'中的任何不被识别的字符将原样输出,包括空格(系统不用它们来编译代码)。
    还有两种方法可以使'格式字串'内的字符原样输出:
    1. 反斜杠\后加字符,可以原样输出单个字母:
    2. 一对半角双引号" "内的字符被当作文字,会原样输出,不带双引号。
    另外,还可以用xx来输出单个字母x
    例子
    {{#time:\m}}
    m
    {{#time:\xg}}
    x10x被原样输出,g被当作格式控制代码)
    {{#time: Y-m-d}}
    2024-11-21
    {{#time:
    [[Y]]
    m d}}
    2024 11 21
    {{#time:
    [[Y (year)]]
    }}
    2024 (24UTCamThu, 21 Nov 2024 10:27:16 +0000) (year被当作格式控制代码year
    {{#time:
    [[Y "(year)"]]
    }}
    2024 (year)
    {{#time: i's"}}
    27'16"
    '日期/时间对象'可以使用任何PHP中strtotime()函数支持的格式。可以使用绝对时间(如20 December 2000)和相对时间(如+20 hours):
    {{#time: r|now}}
    Thu, 21 Nov 2024 10:27:17 +0000
    {{#time: r|+2 hours}}
    Thu, 21 Nov 2024 12:27:17 +0000
    {{#time: r|now + 2 hours}}
    Thu, 21 Nov 2024 12:27:17 +0000
    {{#time: r|20 December 2000}}
    Wed, 20 Dec 2000 00:00:00 +0000
    {{#time: r|December 20, 2000}}
    Wed, 20 Dec 2000 00:00:00 +0000
    {{#time: r|2000-12-20}}
    Wed, 20 Dec 2000 00:00:00 +0000
    {{#time: r|2000 December 20}}
    错误:无效时间。
    '语言代码'使用的是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
    译者注:以上三例本wiki内不起作用,因为不支持该语言。
    如果需要在计算时使用UNIX时间,可以在UNIX时间前加上@
    {{#time: U|now}}
    1732184837
    {{#time: r|@1485582296}}
    Sat, 28 Jan 2017 05:44:56 +0000
    注意:可接受的输入时间范围0111年1月1日9999年12月31日。100年到110年的各个格式控制代码的输出不一致:YL按照100-110年来计算;但rDlU是按照2000-2010年来计算的:
    {{#time: d F Y|29 Feb 0100}}
    01 3月 0100
    上面的结果正确,但是:
    {{#time: r|29 Feb 0100}}
    Mon, 01 Mar 0100 00:00:00 +0000
    上面的结果错误,因为100年不是闰年,但2000年是闰年,上面的结果是按照2000年计算的。
    超过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位数年)
    星期名称支持100-110年和1753年以后的年份。111-1752年的r中星期输出为Unknownl的输出为<>,且这几年的r输出值不能当作有效的输入值。
    译者注:
    测试了一些111-1752之间的年份,已经可以正常显示星期,且正确:
    {{#time: r|1 Jan 1600}}
    Sat, 01 Jan 1600 00:00:00 +0000 (应为星期六)
    {{#time: r|23 Dec 802}}
    Mon, 23 Dec 0802 00:00:00 +0000 (应为星期一)
    使用日期转换进行验证。
    可以指定完整的绝对日期,或者是一部分,此函数会将缺少的部分用当前日期的值填补:
    {{#time: Y|January 1}}
    2024
    注意:填补功能在不同情况下填补不同的内容:
    {{#time: Y m d H:i:s|June}}
    2024 06 21 00:00:00 (使用了一天的开始时刻,填补了当前月份内的日期号、年份)
    {{#time: Y m d H:i:s|2003}}
    2003 11 21 00:00:00 (使用了一天的开始时刻,填补了当前年份内的日期号)
    在MediaWiki r86805之后,4位数字一概会被认为是年份,而非小时与分钟:
    {{#time: Y m d H:i:s|1959}}
    1959 11 21 00:00:00
    6位数字会被认为是小时、分钟和秒钟,如果得到的时间不正确,则会报错(一概不会当作年份和月份):
    {{#time: Y m d H:i:s|195909}}
    2024 11 21 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 10月
    #time中'格式字串'的总长度限制为6000字符
    关于时区
    解析函数#time中有一个bug(更确切的说是PHP日期时间的bug),不允许传入非整数的相对时差。这个问题在整点时区不会出现,如东部夏令时间(EDT):
    {{#time:g:i A|-4 hours}}
    6:27 AM
    但是,委内瑞拉(委内瑞拉标准时间,VET)与世界协调时间(UTC)的时差是-4.5小时,如果直接输入则不会得到正确的结果,如下:
    {{#time:g:i A|-4.5 hours}}
    7:27 PM
    可以将时差转换为分钟或者秒钟来解决这个问题:
    {{#time:g:i A|-270 minutes}}
    5:57 AM
    {{#time:g:i A|-16200 seconds}}
    5:57 AM
    (上述方法由此函数开发者 Tim Starling 提供)


    timel

    与time一致,默认使用当地时间(在'日期/时间对象'留空时)。

    出自扩展 ParserFunctions

    例子
    {{#time: Y-m-d}}
    2024-11-21 (世界协调时间,UTC)
    {{#timel: Y-m-d}}
    2024-11-21 (北京时间,UTC+8)
    {{#time: Y F d H:i:s}}
    2024 11月 21 10:27:16 (世界协调时间,UTC)
    {{#timel: Y F d H:i:s}}
    2024 11月 21 18:27:16 (北京时间,UTC+8)


    titleparts

    获取子页面的一部分标题。以“/”分割,返回从指定开始位置,指定长度的标题。

    处理时,会按照Wiki标题规则:下划线作为空格处理;HTML字符实体会被转化;页面首字母是大写的。

    出自扩展 ParserFunctions

    格式
    {{#titleparts: 页面名|数量|开始位置}}
    例子
    {{#titleparts: 帮助:解析函数/T/titleparts/Code}}
    帮助:解析函数/T/titleparts/Code
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|1}}
    帮助:解析函数,效果同ROOTPAGENAME
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|2}}
    帮助:解析函数/T
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|2|2}}
    T/titleparts
    {{#titleparts: 帮助:解析函数/T/titleparts/Code||2}}
    T/titleparts/Code
    注意
    段落长度和段落位置均可以使用负数,负数段落长度表示从尾开始去掉该数量的段落,负数段落位置表示从尾开始计算段落位置。
    例子
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|-1}}
    帮助:解析函数/T/titleparts,效果同BASEPAGENAME
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|-4}}
    ,去掉的段落数等于段落总数。
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|-5}}
    ,去掉的段落数超出了段落总数。
    {{#titleparts: 帮助:解析函数/T/titleparts/Code||-1}}
    Code,效果同SUBPAGENAME
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|-1|2}}
    T/titleparts
    {{#titleparts: 帮助:解析函数/T/titleparts/Code|-1|-2}}
    titleparts
    注意
    标题字串最多能含有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}}
    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


    token

    返回给定的字符串,其中所有出现的搜索词都被替换为替换词。

    此功能与 replace 一样,但参数顺序相反

    出自扩展 ParserPower

    格式
    {{#token: 替换项|搜索项|源字符串}}
    例子
    {{#token:Clown piece}}
    Clown piece
    {{#token:
    <nowiki> </nowiki>
    |_|My_little_home_page}}
    My little home page



    tokenif

    出自扩展ParserPower

    参见帮助:ParserPower#tokenif

    trim

    出自扩展ParserPower

    参见帮助:ParserPower#trim

    trimuesc

    出自扩展ParserPower

    参见帮助:ParserPower#trimuesc

    U

    uc

    把输入的字串中所有字母变成大写。

    MediaWiki原生函数。

    格式
    {{uc: wikitext}}
    例子
    {{uc: qwer脸滚键盘}}
    QWER脸滚键盘


    ucfirst

    把输入的字串中第一个字母变成大写。

    MediaWiki原生函数。

    格式
    {{ucfirst: wikitext}}
    例子
    {{ucfirst: qwer脸滚键盘}}
    Qwer脸滚键盘
    {{ucfirst: 你们说的qwer脸滚键盘是什么意思啊}}
    你们说的qwer脸滚键盘是什么意思啊


    ueif

    出自扩展ParserPower。 参见帮助:ParserPower#ueif

    ueifeq

    出自扩展ParserPower。 参见帮助:ParserPower#ueifeq

    uesc

    出自扩展ParserPower。 参见帮助:ParserPower#uesc

    uescnowiki

    出自扩展ParserPower。 参见帮助:ParserPower#uescnowiki

    ueswitch

    出自扩展ParserPower。 参见帮助:ParserPower#ueswitch

    urldecode

    解码URL编码的字符串。

    MediaWiki原生函数。

    格式
    {{#urldecode: 字符串}}
    例子
    {{#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

    URL编码指定字符串。

    MediaWiki原生函数。

    格式
    {{urlencode: 字符串}}
    {{urlencode: 字符串|格式}}
    格式可选 QUERY / WIKI / PATH 。默认为QUERY
    • QUERY 空格变为 +
    • WIKI 空格变为 _
    • PATH 空格变为 %20
    例子
    {{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


    V

    var

    输出变量。 变量需要事先用vardefinevardefineecho定义。

    出自扩展 Variables BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

    格式
    {{#var: 变量名}}
    {{#var: 变量名|默认值}}
    变量不存在则输出默认值
    例子
    先定义变量
    {{#vardefine: abc|123456}}
    {{#var: count|未定义}}
    未定义 输出不存在的变量count,会获得默认值。
    {{#var: abc|未定义}}
    123456获取已定义的变量abc。


    var_final

    【将弃用】输出变量,使用页面解析结束时变量的值。因此,这允许在未定义变量前使用变量。

    注意
    在MediaWiki 1.35版本后,var_final被标记为弃用,MediaWiki 1.39版本后将移除。目前,在BWIKI可以使用,灰机Wiki已弃用。
    由于行为复杂,它可能会出现未预期的表现,容易让代码难以理解和阅读。

    出自扩展 Variables BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

    格式
    {{#var_final: 变量名}}
    {{#var_final: 变量名|默认值}}
    如果变量未定义,返回默认值
    例子
    {{#var_final: count233|未定义}}
    谨慎使用Variables在此处获取在后面代码中才会被定义的count的内容。
    此处定义 count233:
    {{#vardefine: count233|谨慎使用Variables}}
    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时


    vardefine

    定义变量。即将一个字符串存储到指定变量中,以便于在后续代码中多次使用。此函数不会输出任何内容。

    出自扩展 Variables BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

    格式
    {{#vardefine: 变量名|}}
    例子
    {{#vardefine: count|0}}
    定义count变量,值为0
    {{#vardefine: text}}
    定义空变量text
    {{#vardefine: text|新的233}}
    可以重复定义以覆盖已有变量,现在text的值是新的233
    {{#vardefine: text|
    {{#var: text}}
    内容}}
    可以使用更复杂的wikitext来为变量赋值,现在text的值是:新的233内容
    {{#vardefine: count|
    {{#expr:
    {{#var: count}}
    +1}}
    }}
    通过与expr组合,实现计算,现在变量count的内容为1


    vardefineecho

    定义并输出变量。行为上相当于vardefine和var先后调用。

    出自扩展 Variables BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

    格式
    {{#vardefineecho: 变量名称|内容值(默认为空字串)}}
    例子
    {{#vardefineecho: text|变量的内容,看到了吗}}
    变量的内容,看到了吗定义变量同时输出变量内容,现在变量text的内容为“变量的内容,看到了吗”。
    其他用法
    配合varexists,实现防止多次加载资源
    {{#if:
    {{#varexists:防止多次加载JS_XXX}}
    ||
    {{#vardefineecho:防止多次加载JS_XXX|这里加载JS}}
    }}
    这里加载JS避免JS重复加载
    {{#if:
    {{#varexists:防止多次加载CSS_XXX}}
    ||
    {{#vardefineecho:防止多次加载CSS_XXX|这里是CSS内容或加载CSS}}
    }}
    这里是CSS内容或加载CSS避免CSS重复加载


    varexists

    判断变量是否存在。存在则返回1,否则返回空。经常配合#if使用。

    出自扩展 Variables BWIKI和各大Wiki平台广泛使用此扩展。<br>在遥远的未来,它可能与Mediawiki新的并行解析器不兼容,请参阅扩展主页了解更多信息。

    格式
    {{#varexists: 变量名}}
    例子
    先定义变量 varexiststext:
    {{#vardefine:varexiststext|想吃烤肠}}
    判断存在否
    {{#varexists: varexiststext}}
    1
    未定义的变量
    {{#varexists: count123465}}
    配合if使用
    {{#if:
    {{#varexists: count123465}}
    |存在|不存在}}
    不存在


    W

    while

    只要循环条件的wikitext输出非空,就循环执行。

    注意
    死循环可能导致页面无响应,甚至增加服务器压力。使用请谨慎。

    出自扩展 Loops

    格式
    {{#while:
     |条件
     |循环内容
    }}
    例子
    {{#vardefine: i|0}}
    {{#while:
     |
    {{#ifexpr:
    {{#var: i}}
    < 5|true}}

     |
    <nowiki/>

    *
    {{#var: i}}
    {{#vardefine: i|
    {{#expr:
    {{#var: i}}
    + 1}}
    }}

    }}

    • 0
    • 1
    • 2
    • 3
    • 4


    实际用例
    BWIKI中实际应用它的页面。这个静态列表可能在下列页面更改后过时

    widget

    缺少内容。本Wiki由与你一样的用户共同编写,请帮助我们完善内容:开始编辑
    • 参考官方文档和其他文档完善内容
    • 增加实际用例和技巧

    调用小部件(Widgets)。

    Widgets允许用户创建HTML页面,能更灵活的为Wiki添加功能。

    出自扩展 Widgets

    格式
    {{#widget: 小部件名|参数1=值1|参数2=值2|...|参数n=值n}}
    例子
    请参见Widgets


    参考资料