- 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
- 有任何意见、建议、求助、反馈都可以在 讨论板 提出
- THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
帮助:解析函数
|
目录 |
---|
本页介绍本WIKI内大部分解析函数(Parser Functions,由扩展插件(Extensions1)通过Parser::setFunctionHook
定义2)的用途和用法,扩展列表参照特殊:版本信息,MediaWiki原生函数基本参照[1]。全部用法介绍均以中文环境为主,并侧重于全面介绍用法和易懂例子,不完全是其他介绍网页的翻译,不重要的废话可免则免。如有疑难可以加Q群285426714。
所有函数均适用的注意事项
以下是一个解析函数的基本格式:
{{#函数名: 参数1 | 参数2 | ... | 参数n }}
在页面中写上如此一般的代码后,后台解析页面是就会呼叫解析函数“函数名”,并传入相应的参数。如果输入的参数内同样的含有函数(或模板等需要展开运算的代码),解析器将会先运算和展开参数里的代码。这种先后次序与数学公式中的括号是同等效果,由内至外逐一展开运算。
对于扩展插件开发者来说,可以通过对Parser::setFunctionHook
传入各种参数稍微改变解析函数的引用格式:
- 可以去掉函数名前面的井号“#”,让格式更简单,更靠拢模板。
- 例如:
{{color: red | 文字 }}
→文字
(color用法)
- 可以禁止对传入的参数自动展开,这个设定非常有用,对于一些参数复杂、经常需要包含其他代码的函数来说,这样省了却大量的<nowiki></nowiki>。
- 例如:
{{#arraymap: 1,2,3 | , | @ | {{#expr: @+10}} | / }}
→11/12/13
(expr用法)
- 可以强制解析器展开输出的内容,通常配合上一条使用,常见用法是先获取未展开的代码,经过处理和拼合后一并展开。对一般编辑者没什么影响。
- 可以让解析器对输出的内容进行nowiki处理。对一般编辑者没什么影响。
- 还有其他几种对输出的内容进行额外处理或禁止自动处理的设定,均对一般编辑者没什么影响。
但有几个重要特性是没有任何方法改变的,即使你是扩展插件开发者:
- 解析函数的第一个参数(紧接冒号“:”的“参数1”)必定会自动被展开,即使使用了前述的方法,最多也只能防止参数2及以后的参数被展开。因为这个特性,开发者一般都不会把复杂的参数放在第一。另外在第一个参数的内容中使用<nowiki></nowiki>通常都会引致非预期的效果,应尽量避免。
- 解析函数所有参数都必定会自动被修剪(trim,去掉头尾的空白字符,例如半形空格和换行),如果需要输入纯空白字符的字串、或者需要输入由空白字符开始或结束的字串,则需要使用<nowiki></nowiki>包裹输入的内容。常见情况是输入分隔符参数时,需要输入“, ”的话,就必须写“<nowiki>, </nowiki>”,使用“ ”不会有你预期的效果。
- 不能直接使用管道符“|”,要么管道符存在于其他函数或模板中,否则必须使用“{{!}}”。
- 这样可以:
{{#arraymap: 1,2,3 | , | @ | {{color: red | E-@}} | / }}
→E-1/E-2/E-3
- 这样不可以:
{{#arraymap: 13,14,19 | , | @ | 伊@ | | }}
→伊13伊14伊19
(使用管道符作为输出分隔符,arraymap用法) - 这样才可以:
{{#arraymap: 13,14,19 | , | @ | 伊@ | {{!}} }}
→伊13|伊14|伊19
其他注意事项:
- 某些函数对“该参数的值为空白”及“缺少该参数”的理解会有差异,导致运算处理和最终输出出现差错,需要留意该函数有没有这种设定。例如regex就有这种设定。
- 字符本身和对应的HTML实体(HTML Entity3)不一定会受到一致的处理,甚至不会相互等于,需要留意函数是否会将输入解码或将输出编码。
- 如果函数突然出现不符合预期的输出,那很有可能是你忘记了对某些特殊字符转义。
- 参数内容的前后可以随意添加空格和换行,可以适当使用让排版更整齐易懂。
A
addlink
来自Duration Extension。
简单分析输入的字串,根据字串的内容生成内链或外链。
- 格式
{{#addlink: 字串 }}
- 例子
{{#addlink:沙盒}}
→沙盒
{{#addlink:[沙盒]}}
→沙盒
{{#addlink:[[沙盒]]}}
→沙盒
{{#addlink:https://thbwiki.cc/ THBWiki}}
→THBWiki
{{#addlink:[[https://thbwiki.cc/ THBWiki]]}}
→THBWiki
anchorencode
MediaWiki原生函数。
把输入的字串转换成锚点编码,即是网址栏中#号后面的文字,可以用于生成锚点链接,但一般情况只需要[[词条名#锚点]]
就行了。
- 格式
{{anchorencode: 锚点字串 }}
- 例子
{{anchorencode: 字串 }}
→字串
{{anchorencode: ABC中文 英文 123&456+1% }}
→ABC中文_英文_123&456+1%
arraydefine
来自Arrays。
用于定义一个新的数组,数组的内容可以用相关的函数获取。此函数会把原字串以分隔符分隔成数组,分隔符也可以是正则表达式。
- 格式
{{#arraydefine: 数组名称 | 原字串 | 分隔符(默认“,”) | 选项(unique、sort和print) }}
- 说明
- '原字串'应是一列由'分隔符'隔开的字串。
- 输出的数组是一个字串数组。
- 如果未指定,默认的分隔符是半角逗号
,
,分隔符可以是:1.一个字串(分隔符前后的空格会被忽略),或:2.一个正则表达式,如:/\s*,\s*/
。 - 可以定义一个空数组。(见例子)
- 可以指定选项:
unique
,sort
和print
。(见例子)- 如果分隔符没有被指定,选项会被忽略。
- 例子
{{#arraydefine:a|red}}
→ 定义一个叫做a的只有1个元素的数组{{#arraydefine:b|orange,red ,yellow, yellow}}
→ 使用默认分隔符定义一个叫做b的有4个元素的数组{{#arraydefine:c}}
→ 定义一个叫做c的空数组{{#arraydefine:d|apple, pear; orange|/\s*[;,]\s*/}}
→ 使用正则表达式匹配分隔符定义一个叫做d的有3个元素的数组{{#arraydefine:e|orange,red ,yellow, yellow|,|unique,sort=desc, print=list}}
→ 用“,”作为分隔符,定义一个元素均是唯一的、以降序排列的数组,并以list形式打印它。
- sort可以用的参数为none(不排序)、desc(降序)、asce(升序)、asc(升序) 、random(随机)和reverse(反序)。
arraydiff
- 格式
{{#arraydiff: | }}
arrayindex
来自Arrays。
用于输出一个数组某个元素的值,依据元素的序号。
- 格式
{{#arrayindex: 数组名称 | 序号 | 默认返回值 }}
- 说明
- 无效的序号(如:非数字、界外值)会导致输出空字串(定义了默认返回值时例外)。
- 序号是以0为基准的,第1个元素的序号是0。
- 在序号处输入负值,则会从后往前定位元素。(如:序号-1代表数组的最后一个元素。)
- 在当不存在数组,不存在该名称的数组,或者当返回值为空字串时,会输出'默认返回值'。
- 例子
{{#arrayindex:a |2 }}
→ a数组的第3个元素{{#arrayindex:b |-1 }}
→ b数组的最后一个元素{{#arrayindex:c |foo |bad value }}
→ 因为序号无效,输出默认返回值
arrayintersect
- 格式
{{#arrayintersect: | }}
arraymap
来自Multi Array Map。
把输入字串以分隔符切开后逐个代入格式字串中求值,最后用输出分隔符串合输出。分隔符开头或结尾是空格时必须用nowiki包裹,输出分隔符也是如此,亦可以用\n表示换行。格式字串中可以随便使用模板和函数而不需要使用nowiki,所有运算都会在代入之后发生,只有使用管道符“|”的时候才必须使用“{{!}}”(花括号同理)。如需处理二维阵列请用#multimap。
- 格式
{{#arraymap: 字串 | 分隔符(默认为“,”) | 代号 | 格式字串 | 输出分隔符(默认为“, ”,注意有空格) }}
- 例子
{{#arraymap:花妈 紫妹妹 八意大妈 八坂老太 二妹 | <nowiki> </nowiki> | @ | {{color:red|@}} | , }}
→花妈,紫妹妹,八意大妈,八坂老太,二妹
arraymaptemplate
来自Multi Array Map。
arraymap的模板变体,切开后会输入模板再以分隔符串合输出。如需处理二维阵列请用#multitem。
- 格式
{{#arraymaptemplate: 字串 | 模板名 | 分隔符(默认为“,”) | 输出分隔符(默认为“, ”,注意有空格) }}
- 例子
{{#arraymaptemplate: Comic Market#88,Comic Market#89,Comic Market#90,Comic Market#91 | 展会作品列表链接 |,|,}}
→Comic Market 88,Comic Market 89,Comic Market 90,Comic Market 91
arraymerge
- 格式
{{#arraymerge: | }}
arraynext
- 格式
{{#arraynext: | }}
arraypos
- 格式
{{#arraypos: | }}
arrayprev
- 格式
{{#arrayprev: | }}
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
- 格式
{{#arrayreset: | }}
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}}
arraysearcharray
- 格式
{{#arraysearcharray: | }}
arraysize
来自Arrays。
用于获得一个数组的大小(元素的个数)。
- 格式
{{#arraysize: 数组名称 }}
- 例子
{{#arraysize:a}}
→ 数组a的大小{{#if: {{#arraysize:b}} | ''array exists'' | ''array not defined'' }}
→ 检查一个数组是否存在
arrayslice
- 格式
{{#arrayslice: | }}
arraysort
- 格式
{{#arraysort: | }}
arrayunion
- 格式
{{#arrayunion: | }}
arrayunique
- 格式
{{#arrayunique: | }}
ask
来自Semantic MediaWiki。
参见帮助:SMW#ask。
avatar
来自Social Profile。
获取指定用户的头像,并可以限定图片尺寸。注意需要的是用户名,不是昵称,一般点击用户名称进入用户页面后,页面标题里“用户:”后的就是用户名。尺寸可以是像素值(100px、10px等)或预设的尺寸:“s”(16px)、“m”(30px)、“ml”(50px)和“l”(75px)。
- 格式
{{#avatar: 用户名 | 尺寸 }}
- 例子
{{#avatar: Arumi | 40px }}
→{{#avatar: 睿域重工研究院 | s }}
→{{#avatar: 幻想旅人 | f }}
→{{#avatar: Hency chine | ml }}
→{{#avatar: Rinmoe | l }}
→
B
basepagename
MediaWiki原生函数。
获取HTML编码后的上级词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title/foo”。
- 格式
{{BASEPAGENAME: 词条名 }}
basepagenamee
MediaWiki原生函数。
获取URL编码后的上级词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title/foo”。
- 格式
{{BASEPAGENAMEE: 词条名 }}
basepagenameh
来自ExtraMagicWords。
获取未经处理的上级词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title/foo”。
- 格式
{{BASEPAGENAMEH: 词条名 }}
bidi
MediaWiki原生函数。
标记双向书写字串。
- 格式
{{bidi: 字串 }}
C
calendarenddate
来自Semantic Result Formats。
参见帮助:SMW#calendarenddate。
calendarstartdate
来自Semantic Result Formats。
参见帮助:SMW#calendarstartdate。
canonicalurl
MediaWiki原生函数。
获取词条的完整超链接(包含域名和协议,不过本WIKI中fullurl也包含协议),可以选择加上请求字串。
- 格式
{{canonicalurl: 词条名 | 请求字串 }}
- 例子
{{canonicalurl: 帮助:解析函数 }}
→https://thbwiki.cc/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{canonicalurl: 帮助:解析函数 | action=edit }}
→https://thbwiki.cc/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
canonicalurle
MediaWiki原生函数。
和#canonicalurl不知有啥区别。
- 格式
{{canonicalurle: 词条名 | 请求字串 }}
- 例子
{{canonicalurle: 帮助:解析函数 }}
→https://thbwiki.cc/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{canonicalurle: 帮助:解析函数 | action=edit }}
→https://thbwiki.cc/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
cascadingsources
MediaWiki原生函数。
返回特定词条级联保护(因该词条被嵌入了另一启用级联保护的词条而同样受到保护)的来源,一般情况并不会返回自己,除非该词条嵌入了自己。
- 格式
{{CASCADINGSOURCES: 词条名 }}
- 例子
{{CASCADINGSOURCES: 首页 }}
→(并不会返回自己)
{{CASCADINGSOURCES: 首页/关于本站 }}
→首页
(受到首页级联保护){{CASCADINGSOURCES: 沙盒 }}
→(并没有保护)
categorytree
来自CategoryTree。
在页面中生成一个分类树,显示效果与分类页一致(例如分类:插件相关页面的分类),并可以点击子分类前面的三角形展开子分类下的内容。
另外可以通过各种参数调整显示方式和内容:
- mode参数
- 此参数用于筛选在列表中显示的子分类及词条,效果会被namespaces参数覆盖。可用值:
- categories,列表中只显示子分类,上限200个。
- pages,列表中只显示子分类和词条,不显示媒体文件,上限200个。
- all,列表中显示全部内容,包括子分类、词条和媒体文件,上限200个,mode参数默认为此。
- parents,列表中只显示父分类(上级分类),而不是子分类(下级)。
- depth参数
- 此参数用于限制初始时子分类的最大嵌套显示深度,若为0则只会显示最根基的那一层的分类(即是你输入的那个分类)。只会限制初始时自动展开的嵌套层数(不过不管depth输入了多少,初始最多只会展开1层,也就是说实际上此参数只有0和1两个有效值),浏览时仍然可以通过点击子分类前面的三角形展开子分类下的内容。
- hideroot参数
- 若把此参数设为“on”(例
hideroot=on
),你输入的那个分类则不会被显示在列表中。 - hideprefix参数
- 此参数用于指定命名空间前缀的显示方式,目前看来是有bug的,不管写什么都会隐藏所有前缀。可用值:
- always,隐藏所有前缀,应该只在能确定所有内容页均来自同一命名空间时才使用。
- never,显示所有前缀,分类的前缀也会被显示,看来是有bug的,即使写了仍然会隐藏所有前缀。
- auto,若列表中只包含分类,前缀均会被隐藏,否则将显示所有前缀。
- categories,隐藏分类的前缀,只显示分类以外的,hideprefix参数默认为此。
- showcount参数
- 若把此参数设为“on”(例
showcount=on
),所有分类名旁边均会显示内含页面的数量。 - namespaces参数
- 此参数用于按命名空间照筛选在列表中显示的页面,参数内容必须是一个以半形空格分隔的命名空间名称列表(例
namespaces=帮助 文件
),主空间可以用“-”或“0”表达。会覆盖mode参数的效果。 - class、style、id等参数
- 此函数支持一般HTML属性,可以直接为列表添加class和style(例如让列表显示在右边可以用
style=float:right;
)。 - 格式
{{#categorytree: 分类名 | 参数1 | 参数2 | ... | 参数n }}
- 例子
- 这里用分类:帮助文档来做例子,因为该分类含有子分类,多个命名空间的词条和文件。
{{#categorytree:帮助文档|style=float:right;}}
→ 效果显示在右边
{{#categorytree:帮助文档|mode=parents}}
→ 反向获取父分类
{{#categorytree:帮助文档|depth=0}}
→ 深度为0,点击分类前面的三角形展开。
{{#categorytree:帮助文档|depth=0|hideprefix=never}}
→ “never”看来是有bug的,仍然会隐藏所有前缀。
{{#categorytree:帮助文档|depth=0|showcount=on}}
→ 显示内容数量
{{#categorytree:帮助文档|namespaces=帮助 分类}}
→ 现在只显示帮助和分类空间下的页面(这个例子中的首页和文件会被隐藏)
cnrconvert
来自Chinesenumerals Extension,参见帮助:汉字数字扩展#数字转汉字。
- 格式
{{#cnrconvert: | 数字 }}
cnrrecover
来自Chinesenumerals Extension,参见帮助:汉字数字扩展#汉字转数字。
- 格式
{{#cnrrecover: | 汉字数字 }}
colfind
来自Collision Manager。
根据给出的原标题和分类规则寻找正确的标题名。
- 格式
{{#colfind: 原标题字串 | 分类规则1 | 分类规则2 | ... | 分类规则n }}
- 例子
{{#colfind:DiGiTAL WiNG|同人社团}}
→DiGiTAL WiNG
{{#colfind:DiGiTAL WiNG|同人专辑|2011}}
→DiGiTAL WiNG(同人专辑)
{{#colfind:COLORS|同人专辑}}
→COLORS(同人专辑)
{{#colfind:COLORS|同人专辑|38BEETS}}
→COLORS(38BEETS)
{{#colfind:COLORS|同人专辑|ALiCE'S EMOTiON}}
→COLORS(ALiCE'S EMOTiON)
{{#colfind:COLORS|同人专辑|ViViX}}
→Colors(ViViX)
{{#colfind:COLORS|同人专辑|絶対4℃}}
→COLORS(絶対4℃)
collapsenum
来自Multi Array Map。
使用“至分隔符”缩短数字列表,例如把“1,2,3,4,5”缩短成“1-5”,或者把“1,2,3,4-10”缩短成“1-10”。是expandnum的反向操作。
- 格式
{{#collapsenum: 字串 | 及分隔符(默认为“,”) | 至分隔符(默认为“-”) }}
- 例子
{{#collapsenum:1,2,3,7,65,67-78,45}}
→1-3,7,45,65,67-78
{{#collapsenum:1及2及3及7及65及67至78|及|至}}
→1至3及7及65及67至78
color
来自Multi Array Map。
生成有颜色的文字,只能用于单行文字。颜色可以是HTML颜色名、#RRGGBB、rgba(rrr,ggg,bbb,a)等CSS能识别的字串。
- 格式
{{color: 颜色 | 文字 }}
- 例子
{{color: red | 红色文字 }}
→红色文字
{{color: #FFFF00 | 黄色文字 }}
→黄色文字
colrelate
来自Collision Manager。
为页面添加额外的同义标题,同义标题不会成为检查碰撞的根据,但和同义标题撞名的词条会出现在页面顶部消歧义列表中。
- 格式
{{#colrelate: 同义标题 | 消歧义描述 }}
- 在词条“天音”写上
{{#colfind:あまね|COOL&CREATE的Vocal}}
→
|
colrule
来自Collision Manager。
定义碰撞处理规则,需要注意只有定义了碰撞处理规则的页面才会纳入碰撞处理的范围内,如果页面没有写上colrule,不论如何()和撞名,也是不会被处理的。
当一个页面定义了colrule,那么首先就会用分类规则检查也没标题是不是意见有括号,如果有,就去掉括号的内容把原标题当做检查碰撞的根据。
为标题去掉括号的时候,只会去掉已定义的分类括号,如果标题是“凋叶棕(withered leaf)”,而分类规则只定义了“曲目”,“withered leaf”并不是分类之一,“(withered leaf)”就不会被去掉。
请不要在标题里面写多个分类,诸如“(同人专辑,2012)”、“(同人专辑)(2012)”、“(GET IN THE RING,TUMENECO)”是绝对不可以的。
- 格式
{{#colrule: 消歧义文字描述字串 | 分类规则1 | 分类规则2 | ... | 分类规则n }}
- 例子
- 在词条“DiGiTAL WiNG”写上
{{#colrule:同人社团|同人社团|同人音乐社团}}
→
|
- 在词条“DiGiTAL WiNG(同人专辑)”写上
{{#colrule:2011年DiGiTAL WiNG制作的同人专辑|同人专辑|DiGiTAL WiNG|2011}}
→
|
concept
来自Semantic Mediawiki。
参见帮助:SMW#concept。
convertspec
来自Duration Extension。
把不适合作为标题的字符替换成对应的全形字符
- 格式
{{#convertspec: 字串 }}
- 例子
{{#convertspec:0#1<2>3[4]5{{!}}6{7}8:9}}
→0#1<2>3[4]5|6{7}8:9
count
计算在给定字串中特定子字串出现的次数。子字串为空时会使用单个半形空格为需要搜索的子字串。需要搜索特殊字符时可以使用nowiki标签。
- 格式
{{#count: 字串 | 子字串 }}
- 例子
{{#count:3.141592653589793238462643383|3}}
→7
{{#count:i have a pen, i have an apple}}
→7
{{#count:a, b,c, d|<nowiki>, </nowiki>}}
→2
countmap
来自Multi Array Map。
变相的for loop,能更直接地运算并输出结果,生成的最大结果数由$wgMultiArrayMapCountLimit限制。
- 格式
{{#countmap: 代号 | 格式字串 | 输出分隔符 | 起始值(默认为1) | 最终值(默认为1) | 增加值(默认为1) }}
- 例子
{{#countmap:@|{{#expr:@*@}}|,|1|10}}
→1,4,9,16,25,36,49,64,81,100
counttem
来自Multi Array Map。
countmap的模板变体。
- 格式
{{#counttem: 模板名 | 参数名 | 自定义参数 | 输出分隔符 | 起始值 | 最终值 | 增加值 }}
注意参数名均不能为空。
- 输入
{{#counttem:{{!}}|1|#=1|<br />|5|-5|-2}}
- 输出
{{||1=5|#=1}}
{{||1=3|#=1}}
{{||1=1|#=1}}
{{||1=-1|#=1}}
{{||1=-3|#=1}}
{{||1=-5|#=1}}
createuser
来自ExtraMagicWords。
获取词条创建者的用户名。
- 格式
{{CREATEUSER: 词条名 }}
- 例子
{{CREATEUSER: 沙盒 }}
→JoesSR
{{CREATEUSER: 首页 }}
→MediaWiki default
cscore
来自Contribution Scores。
获取特定用户的贡献分数。注意使用此函数会自动禁用该页面的内部缓存功能。注意返回的数值会含有千位分隔符。项目参数用于指定返回的分数项目,可用值:
- score,返回该用户经过加权运算的贡献分数(与特殊:贡献得分中显示的一致),默认为此。
- changes,返回该用户总编辑数。
- pages,返回该用户编辑过的页面数。
- 格式
{{#cscore: 用户名 | 项目(score、changes或pages,默认为score) }}
- 例子
- 为了不破坏本页的缓存功能,这里不会真的使用cscore函数,数字均是编写本段落时的取值,可能会与实际数值不符
{{#cscore: Arumi | score }}
→17,976
{{#cscore: Arumi | changes }}
→66,440
{{#cscore: Arumi | pages }}
→17,534
currency
来自Duration Extension。
转换价格格式,转换货币。
- 格式
{{#currency: 价格字串 | 格式字串 }}
- 例子
- 显示汇率:
{{#currency:美金|港币}}
→ 7.8260869565217 - 显示货币的标准代号:
{{#currency:RMB|id}}
→ CNY - 显示货币的默认别名:
{{#currency:RMB|normal}}
→ 人民币 - 转为其他货币显示:
{{#currency:100 RMB|美金}}
→ 13.8美金 - 转为其他货币并加上空格( ):
{{#currency:100 RMB| 港元}}
→ 2000 港元 - 转为其他货币并反转单位和数值的位置:
{{#currency:100 RMB|-¥}}
→ ¥2000 - 直接显示:
{{#currency:100 RMB}}
→ 100RMB - 同上:
{{#currency:100 RMB|}}
→ 100RMB - 直接反转:
{{#currency:100 RMB|-}}
→ RMB100 - 把单位显示成默认别名:
{{#currency:100 RMB|normal}}
→ 100人民币 - 把单位显示成默认别名并反转:
{{#currency:100 RMB|-normal}}
→ 人民币100 - 把单位显示成标准代号:
{{#currency:100 RMB|id}}
→ 100CNY - 把单位显示成标准代号并反转:
{{#currency:100 RMB|-id}}
→ CNY100 - 只显示数值:
{{#currency:100 RMB|value}}
→ 100 - 只显示单位:
{{#currency:100 RMB|unit}}
→ CNY
D
declare
来自Semantic Mediawiki。
参见帮助:SMW#declare。
defaultsort
MediaWiki原生函数。
设定词条默认在分类中的排序键,设定前默认为词条名,在添加分类时写[[分类:分类名|排序键]]
可以覆写这个默认排序键。同一词条里有两次DEFAULTSORT的时候会报错,可以使用选项noerror来防止,noreplace则用来防止后面的DEFAULTSORT覆写前面的DEFAULTSORT。
- 格式
{{DEFAULTSORT: 排序键 | 选项(noerror或noreplace) }}
displaytitle
MediaWiki原生函数。
修改词条显示的标题,一般用于修正由词条名符号限制印制的大小写、底线、空格错误。
- 格式
{{DISPLAYTITLE: 词条标题字串 }}
durage
来自Duration Extension。
计算年龄。
- 格式
{{#durage: 生日日期(会被自动当成UTC时间,需要设定时区时必须加上) | 当前时区(默认为UTC) }}
- 例子
{{#durage:1977-03-18 +0900|Asia/Shanghai}}
→47
duralter
来自Duration Extension。
时长四则运算,具体可用显示格式可以参照#durformat。
- 格式
{{#duralter: 时长字串1 | 时长字串2 | 模式 | 显示格式 }}
模式可以是+、-、*或/。
- 例子
{{#duralter:01:23:45.678|09:87.65|-|MEDIAWIKI}}
→01:13:18
{{#duralter:03:15.05|3|*|SHORT}}
→09:45
{{#duralter:10:00|3:00|/|PLAIN}}
→3.333333
durformat
来自Duration Extension。
转换时长格式,具体可用格式为:
- $O,以小时为单位的时长
- $I,以分钟为单位的时长
- $E,以秒为单位的时长
- $i,以分钟为单位的时长(向下取整)
- $e,以秒为单位的时长(向下取整)
- $H,时长的小时部分(前导零)
- $M,时长的分钟部分(前导零)
- $S,时长的秒部分(前导零)
- $D,时长的小数部分,唯存在时才显示小数点,可能会返回空值所以在某些格式中不能单独使用
- $h,时长的小时部分
- $m,时长的分钟部分
- $s,时长的秒部分
- $d,时长的小数部分,取整并后导零至四位
- 格式
{{#durformat: 时长字串 | 显示格式(默认为MEDIAWIKI) }}
- 例子
{{#durformat:01:23:45.678|SHORT}}
→83:45
{{#durformat:12:34:56.789|LONG}}
→01:23:45.0000
{{#durformat:01:23:45.678|$h小时$m分钟}}
→1小时23分钟
{{#durformat:12:34:56.789|$E秒}}
→5025秒
durnow
来自Duration Extension。
调用PHP函数microtime,返回当前Unix时间戳和微秒数。
- 格式
{{#durnow:}}
- 例子
{{#durnow:}}
→1723744935.2431
dursum
来自Duration Extension。
时长加总,具体可用显示格式可以参照#durformat。
- 格式
{{#dursum: 时长字串列表 | 分隔符(默认为,) | 显示格式 }}
- 例子
{{#dursum:0:1,2:0,3:40,0:40,5:6,6:02,4:37,2:28,1:09:04}}
→01:33:38
E
exeparam
执行解析WIKI文本,除了用来配合#rawparam,并没有什么特别的用途。
- 格式
{{#exeparam: 文本 }}
expandnum
来自Multi Array Map。
分析各种分隔符展开数字列表,例如把“1-5”展开成“1,2,3,4,5”,或者把“1,2,3,4-10”缩短成“1,2,3,4,5,6,7,8,9,10”。是collapsenum的反向操作。
- 格式
{{#expandnum: 字串 | 及分隔符(默认为“,”) | 至分隔符(默认为“-”) }}
- 例子
{{#expandnum:1-3,7,65,67-78,45}}
→1,2,3,7,65,67,68,69,70,71,72,73,74,75,76,77,78,45
{{#expandnum:1 to 3 and 7 and 65 and 67 to 78|<nowiki> and </nowiki>|<nowiki> to </nowiki>}}
→1 and 2 and 3 and 7 and 65 and 67 and 68 and 69 and 70 and 71 and 72 and 73 and 74 and 75 and 76 and 77 and 78
explode
来自StringFunctions。
将一个字串用分隔符分割成多个小段,再返回由位置指定的其中一个小段。此函数对大小写敏感,若要做更复杂的分隔请先使用#replace把不同的分隔符替换成同样的字串。位置编号由0开始计算(第一项是0号)。如果位置参数为负数(-n),则从末尾开始计算的第n个。分隔符在字串中连续出现的话,则会被分割成多个空白小段,会干扰到位置编号。若要使用特殊字串(包括前后空格,因为函数会自动trim所有输入内容),请用“<nowiki></nowiki>”
- 格式
{{#explode: 字串 | 分隔符(默认为空格) | 位置 }}
- 例子
{{#explode: 灵梦,魔理沙,早苗,正邪 |,| 2 }}
→早苗
{{#explode: 灵梦,魔理沙,早苗,正邪 |, | -1 }}
→正邪
{{#explode: 0 1 2 3 4 5 6 || 5 }}
→2
expr
类型 | 运算符 |
---|---|
组合(括号) | ( )
|
数字 | 1234.5 、 e (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}}
输出的是80,471
,但是实际需要的是80471
,原始格式可以用{{formatnum:{{NUMBEROFUSERS}}|R}}
来得到,详见formatnum。例子如下:{{#expr:{{NUMBEROFUSERS}}+100}}
→表达式错误:无法识别标点符号“,”。
{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}
→80571
- 注意
- 运算符
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 | 保留到最近的整数,向下舍入至负一。 |
使用ceil 和floor 时的舍入规则:
| ||
{{#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
MediaWiki原生函数。
获取文件直接存放位置的超链接(包含域名),文件名无须包含命名空间,可以选择加上缩略图宽度要求或nowiki防止直接插入图片。
- 格式
{{filepath: 文件名 | 要求 }}
- 例子
{{filepath: 雨天举高高.jpg }}
→{{filepath: 雨天举高高.jpg | nowiki }}
→{{filepath: 雨天举高高.jpg | 60 }}
→
formatdate
MediaWiki原生函数。
将输入的日期格式化,输入的日期只接受YYYY-MM-DD(ISO 8601,必须都有前导零)的格式,而输出则支持各种格式,包括ISO 8601、dmy、mdy和ymd。如果格式化的时候出现错误,将会原封不动返回输入的日期。
- 格式
{{#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,月份缺少前导零)
formatnum
MediaWiki原生函数。
将输入的数字格式化,不输入格式的话默认为一般逗号分隔(其他语言可能有别)的格式,输入R会还原成无格式化的形式,输入NOSEP会去掉逗号(或其他语言中的数字分隔符)。此函数并不会去掉前导零,也不会为小数添加前导零。请不要输入数字以外的东西。
- 格式
{{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
fullpagename
MediaWiki原生函数。
获取HTML编码后的词条全名(包含命名空间)。
- 格式
{{FULLPAGENAME: 词条名 }}
fullpagenamee
MediaWiki原生函数。
获取URL编码后的词条全名(包含命名空间)。
- 格式
{{FULLPAGENAMEE: 词条名 }}
fullpagenameh
来自ExtraMagicWords。
获取未经处理的词条全名(包含命名空间)。
- 格式
{{FULLPAGENAMEH: 词条名 }}
fullurl
MediaWiki原生函数。
获取词条的完整超链接(包含域名),可以选择加上请求字串。
- 格式
{{fullurl: 词条名 | 请求字串 }}
- 例子
{{fullurl: 帮助:解析函数 }}
→https://thbwiki.cc/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{fullurl: 帮助:解析函数 | action=edit }}
→https://thbwiki.cc/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
fullurle
MediaWiki原生函数。
和#fullurl不知有啥区别。
- 格式
{{fullurle: 词条名 | 请求字串 }}
- 例子
{{fullurle: 帮助:解析函数 }}
→https://thbwiki.cc/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{fullurle: 帮助:解析函数 | action=edit }}
→https://thbwiki.cc/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
G
gender
获取特定用户的性别,然后返回适合的分歧(男性分歧、女性分歧或未知分歧),若未输入未知分歧,未知时则会返回男性分歧。
- 格式
{{gender: 用户名 | 男性分歧 | 女性分歧 | 未知分歧 }}
getmap
来自Table Mapping Extension。
直接获取指定映射表方案下指定键的对应值,不区分前导零及大小写。如果找不到该键将返回自定默认值、映射表的!DEF值或空字串,前者覆盖后者。
- 格式
{{#getmap: 映射表方案名称 | 键 | 自定默认值 }}
- 例子
{{#getmap:大战争音乐名/日文|T}}
→ 春の氷精{{#getmap:大战争音乐名/日文|11}}
→ 缺少参数{{#getmap:大战争音乐名/日文|11|无}}
→ 无{{#getmap:大战争音乐名/日文|!cat}}
→ 音乐名日文
getmaparray
来自Table Mapping Extension。
获取指定映射表方案下的所有键(key)、值(value)或映射对(pair),按键的自然顺序排列。
- 格式
{{#getmaparray: 映射表方案名称 | 分隔符(默认为回车) | 要求(可用值为key和pair,其他值均理解为value) }}
- 例子
{{#getmaparray:大战争音乐名/日文|,}}
→音乐名,缺少参数,大战争音乐名,春の氷精,可愛い大戦争のリフレーン,いたずらに命をかけて,年中夢中の好奇心,真夜中のフェアリーダンス,妖精大戦争 ~ Fairy Wars,ルーズレイン,メイガスナイト,春の氷精 - 静 -,プレイヤーズスコア,春の氷精 - 静 -,プレイヤーズスコア,春の氷精
{{#getmaparray:大战争音乐名/日文|,|key}}
→!CAT,!DEF,!TEM,1,2,3,4,5,6,7,8,9,10,E,P,T
{{#getmaparray:大战争音乐名/日文|\n|key}}
→!CAT !DEF !TEM 1 2 3 4 5 6 7 8 9 10 E P T
(空格实为回车){{#getmaparray:大战争音乐名/日文|<br />|pair}}
→!CAT 音乐名
!DEF 缺少参数
!TEM 大战争音乐名
1 春の氷精
2 可愛い大戦争のリフレーン
3 いたずらに命をかけて
4 年中夢中の好奇心
5 真夜中のフェアリーダンス
6 妖精大戦争 ~ Fairy Wars
7 ルーズレイン
8 メイガスナイト
9 春の氷精 - 静 -
10 プレイヤーズスコア
E 春の氷精 - 静 -
P プレイヤーズスコア
T 春の氷精
getmapname
来自Table Mapping Extension。
获取指定分类下的映射表名称列表,分类名称为空时会获取所有映射表。可以通过填写排序方式根据创建时间(id)、映射表名称(name)或!SOR(sort)属性来排序,不填写则不排序。
- 格式
{{#getmapname: 映射表分类名称 | 排序方式(id、name或sort,默认为空) | 分隔符(默认为回车) }}
- 例子
{{#getmapname:音乐名日文|sort|,}}
→ 七夕坂梦幻能音乐名/日文,虹色的北斗七星音乐名/日文,灵异传音乐名/日文,封魔录音乐名/日文,梦时空音乐名/日文,幻想乡音乐名/日文,怪绮谈音乐名/日文,红魔乡音乐名/日文,妖妖梦音乐名/日文,萃梦想音乐名/日文,永夜抄音乐名/日文,花映塚音乐名/日文,文花帖音乐名/日文,风神录音乐名/日文,绯想天音乐名/日文,地灵殿音乐名/日文,星莲船音乐名/日文,非想天则音乐名/日文,文花帖DS音乐名/日文,大战争音乐名/日文,神灵庙音乐名/日文,心绮楼音乐名/日文,辉针城音乐名/日文,天邪鬼音乐名/日文,深秘录音乐名/日文,绀珠传音乐名/日文,凭依华音乐名/日文,天空璋音乐名/日文,噩梦日记音乐名/日文,鬼形兽音乐名/日文,刚欲异闻音乐名/日文,虹龙洞音乐名/日文,兽王园音乐名/日文,GoM音乐名/日文,三月精E音乐名/日文,三月精O音乐名/日文,三月精S音乐名/日文,儚月抄音乐名/日文,外来韦编音乐名/日文,文花帖(书籍)音乐名/日文,求闻史纪音乐名/日文,铃奈庵音乐名/日文,幺乐团1音乐名/日文,幺乐团2音乐名/日文,幺乐团3音乐名/日文,幺乐团4音乐名/日文,幺乐团5音乐名/日文,蓬莱人形音乐名/日文,莲台野夜行音乐名/日文,梦违科学世纪音乐名/日文,卯酉东海道音乐名/日文,大空魔术音乐名/日文,未知之花音乐名/日文,鸟船遗迹音乐名/日文,伊奘诺物质音乐名/日文,燕石博物志音乐名/日文,旧约酒馆音乐名/日文,秋霜玉音乐名/日文,稀翁玉音乐名/日文,幡紫龙音乐名/日文,8MPF音乐名/日文,Cradle音乐名/日文,ILE音乐名/日文,TLM音乐名/日文,幻想怀古曲音乐名/日文,幻想的音乐音乐名/日文,幻想麻雀音乐名/日文,神魔讨绮传音乐名/日文,黄昏酒场音乐名/日文,东方音焰火音乐名/日文
getparam
来自TemplateFunctions。
获取特定目标能使用的所有参数名。此函数比较高耗最好不要经常使用。
- 格式
{{#getparam: 模板名 | 分隔符(默认为空) }}
- 例子
{{#getparam:模板:同人专辑信息|,}}
→制作方,制作方分隔符,展会,发行方,类型,编号,风格类型,特定选材,会场售价,通贩售价,售价补充,售价,售价说明,首发日期,非实参首发,名称,封面,封面角色,封面角色分隔符,译名,读音,发行方分隔符,原声集显示,原声集,原声集分隔符,重制,编号分隔符,年龄限制,会场售价补充,通贩售价补充,官网页面,官网页面分隔符,官网说明,官网补充,备注,碰撞规则
getswitcharray
来自Table Mapping Extension。
- 格式
{{#getswitcharray: | }}
grammar
MediaWiki原生函数。
根据条件为输入的单词选择一个语法正确的变化体。本WIKI是中文WIKI,因此此函数并不会有任何效果。
- 格式
{{grammar: 条件 | 单词 }}
H
hiragana
来自Multi Array Map。
把日文字串转换成假名。汉字转假名的功能纯粹是小量智能加查字典,平均只能达到80%准确度。
- 格式
{{#hiragana: 字串 }}
- 例子
原文 | 假名 |
---|---|
嫌われ者ばかりの旧地獄の中でも、群を抜いて嫌われている分類に入る妖怪、サトリである。人間や妖怪からも仲良くやっていける気がせず旧地獄に逃げ込んだが、結局、旧地獄の妖怪からも嫌われている。 | きらわれものばかりのきゅうちごくのなかでも、むをぬいてきらわれているぶんるいにいるようかい、サトリである。にんげんやようかいからもなかよくやっていけるいきがせずきゅうちごくににげこんだが、けっきょく、きゅうちごくのようかいからもきらわれている。 |
その理由は、彼女の心を読むという能力にある。誰だって心を読まれる相手と会いたくは無いだろう。心を読める事は丸裸で話し合う、という事では無い。会話がまるで出来なくなるということを意味する。彼女は旧地獄にあるという地霊殿に引き籠もり、完全に他人のコミュニケーションを放棄している。 | そのりゆうは、かのじょのこころをよむというのうりょくにある。だれだってこころをよまれるあいてとあいたくはないだろう。こころをよめることはまるはだかではなしあう、ということではない。かいわがまるでしゅったいなくなるということをいみする。かのじょはきゅうちごくにあるというちれいとのにひきこもり、かんぜんにたにんのコミュニケーションをほうきしている。 |
地霊殿には来客は無い。わざわざ彼女を訪れる者は無いという。 しかし言葉を持たない動物には好かれている。心が読めるというのは、動物にとっては唯一無二の能力だからだ。その為、地霊殿には数多くの動物が棲んでいるという(*1)。 |
ちれいとのにはらいきゃくはない。わざわざかのじょをおとずれるものはないという。 しかしことばをもたないどうぶつにはこのかれている。こころがよめるというのは、どうぶつにとってはゆいいつむにののうりょくだからだ。そのため、ちれいとのにはかずおおくのどうぶつがすんでいるという(*いち)。 |
彼女は言葉を持たない霊魂の心も読める。それが理由で怨霊からも避けられている。怨霊は動物と違い、自分の思っている事を会話で伝えたいと欲しているのだ。その理由は言うまでもなく「言葉を用いる生き物は全て裏表がある」からだ。 | かのじょはことばをもたないれいこんのこころもよめる。それがりゆうでおんりょうからもよけられている。おんりょうはどうぶつとちがい、じぶんのおもっていることをかいわでつたえたいとほしているのだ。そのりゆうはいうまでもなく「ことばをもちいるいきものはすべてうらおもてがある」からだ。 |
怨霊に怖れられる事を有効利用し、彼女は灼熱地獄跡に残った怨霊を管理している。隠し事が出来ない彼女に逆らうものは居ないという寸法だろう。ちなみに地霊殿は灼熱地獄跡の真上に建っているそうだ。 | おんりょうにおそれられることをゆうこうりようし、かのじょはしゃくねつじごくあとにのこったおんりょうをかんりしている。かくしごとがしゅったいないかのじょにさからうものはいないというすんぽうだろう。ちなみにちれいとのはしゃくねつじごくあとのまうえにたっているそうだ。 |
彼女には妹が居る。 | かのじょにはいもうとがいる。 |
ペットのうちの一匹に火焔猫燐がいる。お燐と呼ばれているそうだ。 お燐は怨霊と会話が出来るので、彼女の右腕として頼りにされているようだ。前述のように怨霊は会話によるコミュニケーションに餓えているので、さとりではなくお燐に懐く。怨霊の実質的な管理はお燐が行っているという話だ。 |
ペットのうちのいっぴきにかえんびょうりんがいる。おりんとよばれているそうだ。 おりんはおんりょうとかいわができるので、かのじょのみぎうでとしてたよりにされているようだ。ぜんじゅつのようにおんりょうはかいわによるコミュニケーションにうえているので、さとりではなくおりんになつく。おんりょうのじっしつてきなかんりはおりんがいっているというはなだ。 |
管理と言っても、精々数の増減を見ている位で殆ど話し飼いである。 | かんりといっても、せいぜいかずのぞうげんをみているくらいでほとんどはなしかいである。 |
htmldecode
来自Duration Extension。
对字串进行HTML解码,内部调用了html_entity_decode
函数,FLAG使用了ENT_QUOTES | ENT_XML1
。
- 格式
{{#htmldecode: 字串 }}
htmlencode
来自Duration Extension。
对字串进行HTML编码,内部调用了wfEscapeWikiText
函数,和后面带e的原生函数(如pagenamee)调用的是同一个函数。效果比htmlspecialchars复杂,从wfEscapeWikiText
的原代码中可以看到替换了什么字,做了什么处理。
function wfEscapeWikiText( $text ) {
static $repl = null, $repl2 = null;
if ( $repl === null ) {
$repl = array(
'"' => '"', '&' => '&', "'" => ''', '<' => '<',
'=' => '=', '>' => '>', '[' => '[', ']' => ']',
'{' => '{', '|' => '|', '}' => '}', ';' => ';',
"\n#" => "\n#", "\r#" => "\r#",
"\n*" => "\n*", "\r*" => "\r*",
"\n:" => "\n:", "\r:" => "\r:",
"\n " => "\n ", "\r " => "\r ",
"\n\n" => "\n ", "\r\n" => " \n",
"\n\r" => "\n ", "\r\r" => "\r ",
"\n\t" => "\n	", "\r\t" => "\r	", // "\n\t\n" is treated like "\n\n"
"\n----" => "\n----", "\r----" => "\r----",
'__' => '__', '://' => '://',
);
// We have to catch everything "\s" matches in PCRE
foreach ( array( 'ISBN', 'RFC', 'PMID' ) as $magic ) {
$repl["$magic "] = "$magic ";
$repl["$magic\t"] = "$magic	";
$repl["$magic\r"] = "$magic ";
$repl["$magic\n"] = "$magic ";
$repl["$magic\f"] = "$magic";
}
// And handle protocols that don't use "://"
global $wgUrlProtocols;
$repl2 = array();
foreach ( $wgUrlProtocols as $prot ) {
if ( substr( $prot, -1 ) === ':' ) {
$repl2[] = preg_quote( substr( $prot, 0, -1 ), '/' );
}
}
$repl2 = $repl2 ? '/\b(' . join( '|', $repl2 ) . '):/i' : '/^(?!)/';
}
$text = substr( strtr( "\n$text", $repl ), 1 );
$text = preg_replace( $repl2, '$1:', $text );
return $text;
}
- 格式
{{#htmlencode: 字串 }}
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非空输出值 | {{#if: 测试字串2 | 字串2非空输出值 | 字串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: {{#expr:10^3}} | 1000 | equal | not equal}}
→equal
- 否则会按照文本进行比较,区分大小写。
{{#ifeq: foo | bar | equal | not equal}}
→not equal
{{#ifeq: foo | Foo | equal | not equal}}
→not equal
{{#ifeq: "01" | "1" | equal | not equal}}
→not equal
(注意与上方不带引号的区别){{#ifeq: 10^3 | 1000 | equal | not equal}}
→not equal
(注意与上方使用了#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
来自ParserFunctions。
用于分辨输入字串,并返回两个结果中的一个。如果输入字串中含有HTML元素包含class="error"
,则会被当作true(真)
。
class="error"
能由其他解析函数,如expr、time、rel2abs产生,模板(Templates)错误,如循环、递归和其他解析器错误也能产生。
- 格式
{{#iferror: 测试字串 | 错误时输出值 | 正确时输出值 }}
- 例子
- 两个'输出值'可省略其一或两者都省略。如果'正确时输出值'被省略了,则当没有错误时,会返回'测试字串'的值。如果'错误时输出值'被省略了,则当有错误时,会返回空字串:
{{#iferror: {{#expr: 1 + 2 }} | error | correct }}
→correct
{{#iferror: {{#expr: 1 + X }} | error | correct }}
→error
{{#iferror: {{#expr: 1 + 2 }} | error }}
→3
{{#iferror: {{#expr: 1 + X }} | error }}
→error
{{#iferror: {{#expr: 1 + 2 }} }}
→3
{{#iferror: {{#expr: 1 + X }} }}
→{{#iferror: {{#expr: . }} | error | correct }}
→correct
{{#iferror: <strong class="error">a</strong> | error | correct }}
→error
ifexist
来自ParserFunctions。
此函数将输入字串当作页面标题。根据本地wiki是否存在该标题的页面,返回两个值中的一个。
- 格式
{{#ifexist: 页面标题 | 页面存在输出值 | 页面不存在输出值 }}
- 例子
- 此函数当页面存在时判定为
true(真)
,不论它是否包含内容,是否为可见空白页(包含元数据,如分类链接和魔术字(Magic words),但不含可见内容),是否为空白页,是否为重定向页。 - 只有链接为红色(页面不存在,如
帮助:闷声发大财
)的页面,才会被判定为false(假)
,包括曾经存在但已经被删除的页面。{{#ifexist: 帮助:解析函数 | exists | doesn't exist }}
→exists
{{#ifexist: 帮助:闷声发大财 | exists | doesn't exist }}
→doesn't exist
- 自定义过的系统消息页(System message)和由软件定义的特殊页(Special pages)会被判定为
true(真)
。 -
{{#ifexist: 特殊:监视列表 | exists | doesn't exist }}
→exists
{{#ifexist: 特殊:用户查核 | exists | doesn't exist }}
→exists
(因为安装了CheckUser){{#ifexist: MediaWiki:Copyright | exists | doesn't exist }}
→exists
(因为MediaWiki:Copyright页面被自定义过)
- 如果一个页面使用
#ifexist:
来检查目标页面是否存在,则该页面会出现在特殊:链入页面中目标页面的列表里。 - 所以如果本页面(帮助:解析函数)中存在
{{#ifexist:用户:睿域重工研究院}}
,则在特殊:链入页面/用户:睿域重工研究院中,会包含帮助:解析函数
。 - 在使用了共享媒体存储库(Shared media repository)的wiki上,
#ifexist:
还可以用来检查文件是否被上传到指定的存储库,而不是wiki自身:{{#ifexist: 文件:已经决定了.jpg | exists | doesn't exist }}
→doesn't exist
{{#ifexist: 文件:由你来当.jpg | exists | doesn't exist }}
→doesn't exist
{{#ifexist: 媒体:总书记.jpg | 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
来满足使用要求。
ifexpr
来自ParserFunctions。
此函数会计算一个表达式,并根据计算结果的布尔值,返回两个字串中的一个
- 格式
{{#ifexpr: 表达式 | 为真输出值 | 为假输出值 }}
- '表达式'的计算方法和上面expr完全一样,可用的运算符也相同。运算结果会被当作一个布尔值。
- 例子
- 输入任何空表达式会判断为
false(假)
:{{#ifexpr: | yes | no}}
→no
- 和上面expr中所述相同:零值被判断为
false(假)
,任何非零值被判断为true(真)
,所以这个函数的功能也可以用ifeq和expr来实现:{{#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 }}
→
info
来自Semantic Mediawiki。
解析函数#info
用于创建工具提示。
工具提示在页面上显示为一个精致的信息图标,在图标上悬停时会弹出预先设定好的信息。
- 语法格式
{{#info: 文本 | 图标类型 }}
- 参数
- 下面分别说明两个参数的用法和注意事项。
- 文本:
- 此函数的第一个参数为显示在提示框里的文本,只能使用行内HTML元素。
- 提示框文本只能接受部分维基语句,如加粗、斜体、内部链接等。
- 不接受任何块元素,比如段落、表格、列表等。
- 在输入文本参数时,还需避免出现空行,因为空行会结束一个段落,并开启一个新段落。
- 等号
=
也不允许出现,因为函数中出现等号一般会被系统认为是给参数赋值的操作。 - 你可以使用转义字符
=
代替等号,在页面上会显示为=
。
- 如果不遵循上面的说明,可能会导致HTML代码错误和显示错误。
- 比如出现空行,则空行后面的文字会直接显示在页面上,而不是提示框里。
- 图标类型:
- 此函数的第二个参数控制显示的图标类型。
- 如果给此参数输入了错误的值,则会被忽略,然后默认显示为
info
格式。
- 此参数可接受的输入值:
图标类型 说明 效果 info 蓝色圆形和问号,默认显示为此格式 这是一个信息图标。 note 橙色圆形和叹号。 这是一个提示图标。 warning 黄色三角和叹号。 这是一个警告图标。
- 例子
- 下面是一些应用举例:
代码 结果 说明 外面的文字{{#info:提示框内的文字|info}}
外面的文字提示框内的文字 鼠标悬停就可以看到这个信息。 偷偷告诉你{{#info:灵梦是预知梦的意思哦|note}}
偷偷告诉你灵梦是预知梦的意思哦 从SMW 1.9.0起可用。 咦,发生啥事{{#info:紫老hsfthngsjst|warning}}
咦,发生啥事紫老hsfthngsjst 从SMW 1.7.0起可用。
inoutro
来自Duration Extension。
若字串为空,显示默认值,否则显示前缀、字串和后缀。
- 格式
{{#inoutro: 字串 | 前缀 | 后缀 | 默认值 }}
- 例子
{{#inoutro:字串|前缀|后缀|默认值}}
→前缀字串后缀
{{#inoutro:|前缀|后缀|默认值}}
→默认值
int
MediaWiki原生函数。
获取特定Message在当前语言中的内容,并可以提供多个参数(各个参数会按顺序分别替换掉Message内容中的$1、$2、...和$N),Message可以用扩展及Mediawiki命名空间定义。
- 格式
{{int: Message名称 | 参数1 | 参数2 | ... | 参数N }}
- 例子
{{int: edit }}
→编辑
{{int: sunday }}
→星期日
{{int: mycustomjsprotected }}
→您没有权限编辑这个JavaScript页面。
{{int: multiarraymap-desc }}
→提供将多个数列转置显示的方法
{{int: markedaspatrolledtext }}
→$1的已选中版本已被标识为已巡查。
{{int: markedaspatrolledtext | 首页 }}
→首页的已选中版本已被标识为已巡查。
{{int: pipe-separator }}
→|
{{int: parentheses | ABC括号内容 }}
→(ABC括号内容)
(自动生成符合语言的括号){{int: quotation-marks | ABC引号内容 }}
→“ABC引号内容”
(自动生成符合语言的引号){{int: imgmultipageprev }}
→← 上一页
invoke
来自Scribunto。
此函数比较复杂,鉴于本Wiki没有使用此函数,故不详述,需要具体资料的话请参照Extension:Scribunto。
L
language
MediaWiki原生函数。
根据输入的语言代号获取对应的语言全名。
- 格式
{{#language: 语言代号 }}
- 例子
{{#language: zh }}
→中文
{{#language: zh-hans }}
→zh-Hans
{{#language: zh-hant }}
→zh-Hant
{{#language: ja }}
→日本語
{{#language: en }}
→English
lc
MediaWiki原生函数。
把输入的字串中所有字母变成小写。
- 格式
{{lc: 字串 }}
- 例子
{{lc: A字串 BC }}
→a字串 bc
lcfirst
MediaWiki原生函数。
把输入的字串中第一个字母变成小写。
- 格式
{{lcfirst: 字串 }}
- 例子
{{lc: A字串 BC }}
→a字串 bc
{{lc: 字串 BC }}
→字串 bc
len
来自StringFunctions。
获取字串长度,多字节字符也算一个字,字串前后的空格和回车均不会算进长度中,若输入的字串中有HTML实体( 等),该实体将不会被转换成一般文字,而是按原本的姿态( )计算。被nowiki括住的内容不会算进长度中。
- 格式
{{#len: 字串 }}
- 例子
{{#len: A字串 BC }}
→6
{{#len: 字串 BC }}
→10
{{#len: <nowiki>This is a </nowiki>test }}
→4
link
来自TemplateFunctions。
把本页和另一页面连结,当另一页面的内容被修改或刷新,本页亦会跟着一起刷新,可以用来确保当某附属词条被更改后主词条的内容能及时更新。主要千万不会两个词条互相#link。
- 格式
{{#link: 词条名 }}
- 例子
{{#link:沙盒}}
→ 当沙盒被更改或刷新时,本页也会跟随刷新。
localurl
MediaWiki原生函数。
获取词条的本地超链接(不含域名),可以选择加上请求字串。
- 格式
{{localurl: 词条名 | 请求字串 }}
- 例子
{{localurl: 帮助:解析函数 }}
→/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{localurl: 帮助:解析函数 | action=edit }}
→/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
localurle
MediaWiki原生函数。
和#localurle不知有啥区别。
- 格式
{{localurle: 词条名 | 请求字串 }}
- 例子
{{localurle: 帮助:解析函数 }}
→/%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0
{{localurle: 帮助:解析函数 | action=edit }}
→/index.php?title=%E5%B8%AE%E5%8A%A9:%E8%A7%A3%E6%9E%90%E5%87%BD%E6%95%B0&action=edit
lqtpagelimit
来自LiquidThreads。
限制讨论页里存在的帖子数量,一旦已页内帖子超过了这个数,系统会自动把旧的帖子转移到一个分页里,确保讨论页的内容不会太多太长。若不使用此函数设定,默认的限制是20。
- 格式
{{#lqtpagelimit: 限制数量 }}
lst
来自Labeled Section Transclusion。
引用特定页面内已预先标记的内容段落。只要在目标页面内,把目标内容用<section begin="段落名称" />
和<section end="段落名称" />
包裹,就可以在任何页面中使用此函数引用该段内容。如果段落名称内不含空格等在XML语法中有特殊意思的字符,段落名称前后的半形引号则可略去。
- 格式
{{#lst: 页面名称 | 段落名称 }}
- 例子
- 以下例子引用了词条梦想封印中名为“心绮楼”的段落。
{{#lst: 梦想封印 | 心绮楼 }}
→
角色博丽灵梦的对战使用符卡。 |
- 梦想封印里对应的代码大致如下:
<section begin=心绮楼 /> {| |- | [[文件:{{博丽灵梦符卡名|1|XQL|1}}(心绮楼).png|缩略图|左|{{博丽灵梦符卡名|1|XQL|1}}]] | 角色博丽灵梦的对战使用符卡。 |} {{-}} <section end=心绮楼 />
lsth
来自Labeled Section Transclusion。
引用特定页面内位于特定标题下的内容段落。此函数使用方法比lst简单,不需要使用section来定义段落,只需要使用标题(例如== 标题 ==
)。此函数会引用指定的标题之后开始,下一个同级标题之前的结束的内容,并不会包含标题本身。另外可以设定结束子标题名称,让函数引用从子标题名称开始直到结束子标题名称之前的所有内容,此功能可以用于同时引用多个段落,只要遇到结束子标题,不管是不是同级标题也会立刻停止引用,并不会引用到结束子标题及其后的内容。
- 本帮助页面内也大量使用了此函数,以将放在其他页面内的函数说明引用到此页。
- 格式
{{#lsth: 页面名称 | 子标题名称 | 结束子标题名称 }}
- 例子
- 以下例子引用了词条梦想封印中“东方星莲船”标题下的段落。
{{#lsth: 梦想封印 | 东方星莲船 }}
→
自机角色博丽灵梦的反模式重视超诱导型配置的Bomb。 |
lstx
来自Labeled Section Transclusion。
引用特定页面内除了已预先标记的段落以外的内容,并可以选择用其他字串代替被去掉的段落。
- 格式
{{#lstx: 页面名称 | 除去段落名称 | 代替字串 }}
- 可能的使用方式
{{#lst: 495年的波纹 | 红魔乡 | 红魔乡中的登场信息请参看[[495年的波纹#东方红魔乡]] }}
- 此函数比较难用,因为大部分词条除了文字内容还会有很多用于分类和导航的部分。比如使用以上的例子的话就会把原词条内的分类信息和导航段落也一并引用了,对分类管理和内容排版非常不友好。此函数亦无法同时不引用两段或以上的内容,所以设定更多段落排除分类等信息的方法也是不行的。
M
multimap
来自Multi Array Map。
把输入的多个字串以对应的分隔符切开后组合成一个二维阵列,转置后以对应的代号代入格式字串中求值,最后用输出分隔符串合输出。注意字串、分隔符和代号必须一组一组整齐地定义,即使是空字串。此函数比较高消耗,情况许可的话请尽量使用multitem。阵列列数以第一行的数量为准,如果之后的行列数不足,则会自动以行内最后一个值补全,多出则无条件消去。分隔符开头或结尾是空格时必须用nowiki包裹,对输出分隔符也有效,空分隔符则表示逐字分开,亦可以用\n表示换行。如需只是处理一维阵列请用#arraymap。
- 格式
{{#multimap: 空 | 格式字串 | 输出分隔符 | 字串1 | 字串1分隔符 | 字串1代号 | 字串2 | 字串2分隔符 | 字串2代号 | ... | 字串n | 字串n分隔符 | 字串n代号 }}
- 例子
{{#multimap:|on. @×m={{#expr:@*m}} |<br /> |1,2,3,4|,|@ |10, 20, 30 |<nowiki>, </nowiki>|m |5678| |n |q w e r|\n |o }}
- 输出
- q5. 1×10=10
w6. 2×20=40
e7. 3×30=90
r8. 4×30=120
multisub
来自Multi Array Map。
multimap的子对象(Subobject)变体,转置后会输入SMW的Subobject函数。
- 格式
{{#multisub: 子对象名称格式 | 序号代号 | 自定义属性 | 字串1 | 字串1分隔符 | 字串1属性名 | 字串2 | 字串2分隔符 | 字串2属性名 | ... | 字串n | 字串n分隔符 | 字串n属性名 }}
- 输入
{{#multisub:名称@{{!}}编号=@|@|固定属性=1 |1,2,3|,|属性名1 |10, 20, 30|<nowiki>, </nowiki>|属性名2 }}
- 输出
与 {{#subobject:名称1|编号=1|属性名1=1|属性名2=10|固定属性=1}} {{#subobject:名称2|编号=2|属性名1=2|属性名2=20|固定属性=1}} {{#subobject:名称3|编号=2|属性名1=3|属性名2=30|固定属性=1}} 等效
multitem
来自Multi Array Map。
multimap的模板变体,转置后会输入模板再以分隔符串合输出。如需只是处理一维阵列请用#arraymaptemplate。
- 格式
{{#multitem: 模板名 | 自定义参数 | 输出分隔符 | 选项 | 字串1 | 字串1分隔符 | 字串1参数名 | 字串2 | 字串2分隔符 | 字串2参数名 | ... | 字串n | 字串n分隔符 | 字串n参数名 }}
- 例子
{{#multitem:{{!}}|n=x|<br />|f0 |1,2,3|,|1 |10,20,30,40|,|2 }}
- 输出
- {{||1=1|2=10|n=x|#=1}}
{{||1=2|2=20|n=x|#=2}}
{{||1=3|2=30|n=x|#=3}}
N
namespace
MediaWiki原生函数。
获取HTML编码后的词条命名空间。
- 格式
{{NAMESPACE: 词条名 }}
namespacee
MediaWiki原生函数。
获取URL编码后的词条命名空间。
- 格式
{{NAMESPACEE: 词条名 }}
namespacenumber
MediaWiki原生函数。
获取词条命名空间编号。
- 格式
{{NAMESPACENUMBER: 词条名 }}
nowrap
来自Multi Array Map。
让浏览器不会在指定的文字内换行。
- 格式
{{nowrap: 文字 }}
- 例子
{{nowrap: 3.141592653589 7932384626 4338327950288 4197169399375 1058209749445 9230781640628 620899862803482 53421170679821480 8651328230664709384 46095505822317253594 0812848111745 02841027019385 }}
→3.141592653589 7932384626 4338327950288 4197169399375 1058209749445 9230781640628 620899862803482 53421170679821480 8651328230664709384 46095505822317253594 0812848111745 02841027019385
只会在这里换行, 或是切开两段{{nowrap: 而不会在这里换行,即便有 空格和,逗号 }}后面跟随的文字
→只会在 这里 换行,或是切开 两段而不 会在这里 换行,即便有 空格和,逗号后面跟 随的文字
ns
MediaWiki原生函数。
获取命名空间在当前语言中的名称,可以使用命名空间编号、命名空间名称、别名获取。
- 格式
{{ns: 命名空间 }}
- 例子
{{ns: -2 }}
→媒体文件
{{ns: -1 }}
→特殊
{{ns: Special }}
→特殊
{{ns: 特殊 }}
→特殊
{{ns: 10 }}
→模板
{{ns: 11 }}
→模板讨论
{{ns: 506 }}
→附带文档
{{ns: 508 }}
→游戏对话
{{ns: Category }}
→分类
nse
MediaWiki原生函数。
获取URL编码后,命名空间在当前语言中的名称,可以使用命名空间编号、命名空间名称、别名获取。
- 格式
{{nse: 命名空间 }}
numberingroup
MediaWiki原生函数。
获取属于特定群组的人数。
- 格式
{{NUMBERINGROUP: 群组名称 }}
- 例子
{{NUMBERINGROUP: bureaucrat }}
→2
{{NUMBERINGROUP: confirm }}
→162
{{NUMBERINGROUP: sysop }}
→15
numberofactiveusers
MediaWiki原生函数。
获取当前活跃的用户数量,与特殊:统计信息中显示的一致(项目:活跃用户)。
- 格式
{{NUMBEROFACTIVEUSERS}}
numberofadmins
MediaWiki原生函数。
获取管理员数量,与特殊:统计信息中显示的一致(项目:管理姬)。
- 格式
{{NUMBEROFADMINS}}
numberofarticles
MediaWiki原生函数。
获取内容页面数量,与特殊:统计信息中显示的一致(项目:内容页面)。
- 格式
{{NUMBEROFARTICLES}}
numberofedits
MediaWiki原生函数。
获取总编辑次数,与特殊:统计信息中显示的一致(项目:自THBWiki建立以来的页面编辑数)。
- 格式
{{NUMBEROFEDITS}}
numberoffiles
MediaWiki原生函数。
获取媒体文件数量,与特殊:统计信息中显示的一致(项目:上传的文件)。
- 格式
{{NUMBEROFFILES}}
numberofpages
MediaWiki原生函数。
获取所有页面数量,与特殊:统计信息中显示的一致(项目:页面(本wiki的所有页面,包括讨论页面、重定向等。))。
- 格式
{{NUMBEROFPAGES}}
numberofusers
MediaWiki原生函数。
获取用户数量,与特殊:统计信息中显示的一致(项目:注册用户)。
- 格式
{{NUMBEROFUSERS}}
P
padleft
MediaWiki原生函数。
往字串左边填充特定符号直到一定长度,多字节文字也算一个字,原字串为空的话还可以当作repeat用,如果原字串长度比需要的长度长,则不会做任何处理。
- 格式
{{padleft: 原字串 | 需要的长度(字符数) | 填充字串(默认为“0”) }}
- 例子
{{padleft: 15 | 5 }}
→00015
{{padleft: xyz | 5 }}
→00xyz
{{padleft: 原字串 | 10 | 填 }}
→填填填填填填填原字串
{{padleft: 原字串 | 10 | 填充 }}
→填充填充填充填原字串
{{padleft: | 5 | 妮可 }}
→妮可妮可妮
{{padleft: | 5 | 早苗 }}
→早苗早苗早
{{padleft: 这个真心太长了吧 | 5 | 填 }}
→这个真心太长了吧
padright
MediaWiki原生函数。
往字串右边填充特定符号直到一定长度,多字节文字也算一个字,原字串为空的话还可以当作repeat用,如果原字串长度比需要的长度长,则不会做任何处理。
- 格式
{{padright: 原字串 | 需要的长度(字符数) | 填充字串(默认为“0”) }}
- 例子
{{padright: 15 | 5 }}
→15000
{{padright: xyz | 5 }}
→xyz00
{{padright: 原字串 | 10 | 填 }}
→原字串填填填填填填填
{{padright: 原字串 | 10 | 填充 }}
→原字串填充填充填充填
{{padright: | 5 | 妮可 }}
→妮可妮可妮
{{padright: | 5 | 早苗 }}
→早苗早苗早
{{padright: 这个真心太长了吧 | 5 | 填 }}
→这个真心太长了吧
pageid
MediaWiki原生函数。
获取词条的编号,该编号是唯一的,可以用来辨别词条和生成随机数。
- 格式
{{PAGEID: 词条名 }}
pagename
MediaWiki原生函数。
获取HTML编码后的词条名(不含命名空间)。
- 格式
{{PAGENAME: 词条名 }}
pagenamee
MediaWiki原生函数。
获取URL编码后的词条名(不含命名空间)。
- 格式
{{PAGENAMEE: 词条名 }}
pagenameh
来自ExtraMagicWords。
获取未经处理的词条名(不含命名空间)。
- 格式
{{PAGENAMEH: 词条名 }}
pagesincategory
MediaWiki原生函数。
返回属于特定分类的项目数量,可以用包含类型来筛选项目类型,可以使用pages(词条)、subcats(子分类)、files(文件)和all(以上全部)。
- 格式
{{PAGESINCATEGORY: 分类名 | 包含类型(all、pages、subcats或files,默认为all) }}
pagesize
MediaWiki原生函数。
获取页面的大小,以字节为单位,默认是带格式的数值,格式写上“R”的话可以获取未格式化的数值,页面不存在的话返回0。
- 格式
{{PAGESIZE: 词条名 | 格式 }}
- 例子
{{PAGESIZE: 官方角色列表 }}
→16,004
{{PAGESIZE: 官方角色列表 | R }}
→16004
param
来自TemplateFunctions。
检查是否在引用模板时输入了特定参数,并返回该属性名,或计算输入了多少个特定参数,返回总数。此函数并不会花时间去解析参数的内容,所以不论解析后的内容为何(尽管是空),只要在模板里输入了“|属性名=”,就会当作输入了该参数。注意#param必须在放在被引用的页面。
- 格式
{{#param: 参数名1 | 参数名2 | ... | 参数名n }}
多个参数时默认为或条件,只要输入了其中一个就会返回第一个命中的属性名,否则返回空。
- 格式
{{#param: & | 参数名1 | 参数名2 | ... | 参数名n }}
多个参数时,第一个参数输入&的话可以换为与条件,列表中的参数必须全部被输入才会返回最后一个命中的属性名,否则返回空。
- 格式
{{#param: $ | 参数名1 | 参数名2 | ... | 参数名n }}
多个参数时,第一个参数输入$的话可以换为计数,返回列表中被输入的参数总数。
plural
MediaWiki原生函数。
若输入的数字等于1,返回单数分歧,否则返回众数分歧,0也是众数,部分语言还会有第三种情况。
- 格式
{{plural: 数字公式 | 单数分歧 | 众数分歧 }}
- 例子
{{plural: 1 | 单数 | 众数 }}
→单数
{{plural: 2 | 单数 | 众数 }}
→众数
{{plural: {{#expr:21 mod 10}} | is | are }}
→is
pos
来自StringFunctions。
在长字串中寻找一段较短的字串,并返回其首次出现的位置(左边开始第一个字是0,左至右搜索,右至左搜索需使用#rpos),没有出现则返回空。也可以通过设定偏移量,让pos从长字串中第N个字开始搜索。pos会把nowiki(和里面的内容)当作一个长度为1个字符、不匹配任何东西的字串。此函数区分大小写。
- 格式
{{#pos: 长字串 | 搜索字串 | 偏移量(默认为0) }}
- 例子
{{#pos: 这是长字串 | 字串 }}
→3
{{#pos: 这是长字串长 | 长 }}
→2
{{#pos: 这是长字串长 | 长 | 4 }}
→5
{{#pos: 这是长字串 | 哈 }}
→
protectionexpiry
MediaWiki原生函数。
查询词条对于特定动作的保护状态的终止时间,有限期的话会返回终止时间的时间戳(例如:“20200401160000”),无限期或没有保护则返回“infinity”。动作可以是edit或move。使用第二个参数可以指定词条名,不指定词条名的话默认为本词条。
- 格式
{{PROTECTIONEXPIRY: 动作 | 词条名 }}
- 例子
{{PROTECTIONEXPIRY: edit }}
→infinity
(没有保护){{PROTECTIONEXPIRY: move }}
→infinity
(没有保护){{PROTECTIONEXPIRY: edit | 首页 }}
→infinity
(无限期保护){{PROTECTIONEXPIRY: move | 首页 }}
→infinity
(无限期保护)
protectionlevel
MediaWiki原生函数。
查询词条对于特定动作的保护状态(进行该动作所需的最低权限群组,autoconfirmed、sysop等),动作可以是edit或move,没有保护则返回空字串。使用第二个参数可以指定词条名,不指定词条名的话默认为本词条。
- 格式
{{PROTECTIONLEVEL: 动作 | 词条名 }}
- 例子
{{PROTECTIONLEVEL: edit }}
→{{PROTECTIONLEVEL: move }}
→{{PROTECTIONLEVEL: edit | 首页 }}
→edit-mainpage
{{PROTECTIONLEVEL: move | 首页 }}
→edit-mainpage
Q
qrlite
来自QRLite。
为网址制作二维码,并输出到页面当中。
可以通过各种参数调整显示方式和内容:
- format参数
- 此参数设定输出的二维码图片格式。可用值:
- png,常见的无损点阵图格式,mode参数默认为此。
- svg,矢量图格式,建议使用。
- size参数
- 此参数设定二维码的尺寸,数值越大二维码就越大,默认为5。
- margin参数
- 此参数设定二维码周边的留白宽度,注意留白太少的可能会导致二维码难以识别,默认为0。
- eec参数
- 此参数设定二维码纠错冗余度,数值范围0到4的整数,冗余度越高二维码抗损/遮盖能力越高,但也会令二维码图案变得复杂,需要相应增大尺寸,默认为2。
- 格式
{{qrlite: 网址 | 参数1 | 参数2 | ... | 参数n }}
- 例子
{{#qrlite: https://thbwiki.cc }}
→ 默认设定{{#qrlite: https://thbwiki.cc | margin=5 }}
→ 加边框{{#qrlite: https://thbwiki.cc | format=svg | size=3 }}
→ svg格式,小尺寸
{{#qrlite: https://thbwiki.cc | size=9 | eec=4 }}
→ 最高冗余度,加大尺寸
R
rawparam
来自TemplateFunctions。
获取特定参数未经解析、原始的文字内容。注意#rawparam必须在放在被引用的页面。
- 格式
{{#rawparam: 参数名 }}
redirect
来自Multi Array Map。
获取文字标题经过重定向后的最终目标标题字串。可以通过使用分隔符参数同时输入多个标题,运算后会使用输出分隔符串合输出。分隔符开头或结尾是空格时必须用nowiki包裹,输出分隔符也是如此,亦可以用\n表示换行。
- 格式
{{#redirect: 标题字串 | 分隔符(默认为空,即不分割) | 输出分隔符(默认为“|”) }}
- 例子
{{#redirect: 红魔乡,妖妖梦,地灵殿,神灵庙|,|、}}
→东方红魔乡、东方妖妖梦、东方地灵殿、东方神灵庙
{{#redirect: cm88,例9|,|、}}
→Comic Market、博丽神社例大祭
redititle
来自Duration Extension。
显示重定向到该页面的标题。
- 格式
{{#redititle: 页面名称(默认为本页) | 分隔符(默认为,) | 模式 }}
模式可以link、strip和self,用空格分隔,link会生成链接,strip会把完全被原标题包含的标题去掉,self会显示原页面标题。
- 例子
{{#redititle:Comic Market|,}}
→Comiket,Comike,CM,コミックマーケット,コミケット,コミケ,コミ
{{#redititle:Comic Market|,|link strip self}}
→Comic Market,Comiket,Comike,CM,コミックマーケット,コミケット,コミケ,コミ
regex
来自Regex Fun。
用正则表达式对字串进行搜索,并根据输入的参数数量可选搜索模式或替换模式:
- 搜索模式会返回首个匹配的子字串(左至右匹配)。
- 替换模式会把所有匹配的子字串替换成别的字串,并可以限制替换发生的次数。功能类似replaceset。
- 说明
-
- 正则表达式可以使用模式修饰符“erimsxADU”(功能参见pcre说明书)。
- 替换的内容中可以使用“$1”等作为向后引用。
- 注意
-
- 需要在正则表达式中使用管道符“|”的时候,必须使用“{{!}}”,否则会出错。
- 修饰符“e”的作用与pcre中的并不一样,在这里“e”的功能是“禁止新内容中含有的代码在替换发生前被运算取值”,仅在替换模式下有效,详见下面例子。
- 另外扩展作者在pcre修饰符的基础上增加了一个新的修饰符“r”,功能是“若在字串中并未寻找到任何匹配字串,函数会返回空字串”,仅在替换模式下有效。
- 搜索模式格式
{{#regex: 字串 | 正则表达式 }}
- 搜索模式例子
{{#regex:花妈 紫妹妹 八意大妈 八坂老太 二妹 | /\S+妹+/u }}
→紫妹妹
- 替换模式格式
{{#regex: 字串 | 正则表达式 | 替换内容 | 次数限制(默认为-1) }}
- 替换模式例子
{{#regex:花妈 紫妹妹 八意大妈 八坂老太 二妹 | /(\S*(妈{{!}}老)\S*)/ | <del>$1</del> | 2 }}
→
,把含有妈和老的称呼用删除线划掉,并限制只划前两个。花妈紫妹妹八意大妈八坂老太 二妹- 修饰符“e”的作用例子
{{#regex: 生命:17,耐久:21,时间:59 | /(\d+)/ | {{#expr:$1+1}} }}
→生命:表达式错误:无法识别标点符号“$”。,耐久:表达式错误:无法识别标点符号“$”。,时间:表达式错误:无法识别标点符号“$”。
- 一般来说里面的函数会先取值,然后再输入到外面的函数里,因为此例子中替换内容中含有函数,该函数(expr)会先被取值,变成
{{#expr:$1+1}}
,expr无法处理$1这个值,就只能报错了。 - 使用修饰符“e”后的例子
{{#regex: 生命:17,耐久:21,时间:59 | /(\d+)/e | {{#expr:$1+1}} }}
→生命:18,耐久:22,时间:60
- 由于使用了修饰符“e”,替换内容中的函数会在替换后才取值,regex会把匹配到的字串(在这里是数字)放到$1的位置,然后才一次过对
{{#expr:17+1}}
等取值。
regex_var
来自Regex Fun。
用于获取页面内上一次使用regex时所匹配到的内容及“$1”等向后引用的内容。接受替换字串类(“$1:$3 $2”之类)和纯数字(以“1”表示“$1”)的输入。若页面内并未执行过regex,则返回默认值。
- 格式
{{#regex_var: 引用 | 默认值 }}
- 例子
- 这里用
{{#regex:芙兰朵露 斯卡雷特(二妹,二小姐) | /(\S+) (\S+)((.*?))/u }}
→芙兰朵露 斯卡雷特(二妹,二小姐)
作为例子。
{{#regex_var: 1 | 名字 }}
→芙兰朵露
{{#regex_var: 2 | 姓氏 }}
→斯卡雷特
{{#regex_var: 3 | 称呼 }}
→二妹,二小姐
{{#regex_var: $1·$2,又可称为$3 | 介绍 }}
→芙兰朵露·斯卡雷特,又可称为二妹,二小姐
regexall
来自Regex Fun。
效果是regex搜索模式的强化版,会把匹配到的所有字串用分隔符串起来返回,并不只限于首个匹配。特殊分隔符有需要使用“<nowiki></nowiki>”。
- 格式
{{#regexall: 字串 | 正则表达式 | 分隔符(默认为“,”) | 偏移量(默认为0) | 次数限制(默认为-1) }}
- 例子
{{#regexall:花妈 紫妹妹 八意大妈 八坂老太 二妹 | /\S+妹+/u | , }}
→紫妹妹,芙兰妹妹
{{#regexall:花妈 紫妹妹 八意大妈 八坂老太 二妹 | /(\S*(妈{{!}}老)\S*)/ | , | 1 | 2 }}
→八意大妈,八坂老太
regexquote
来自Regex Fun。
用正则表达式的方法把字串转义,使其可以安全地在正则表达式中出现,例如把“.”和“\”转义,定界符也会被转义,实际上是调用了preg_quote函数。建议要使用用户输入(如模板参数)作为正则表达式的一部分时,先使用此函数把用户输入转义。
- 格式
{{#regexquote: 字串 | 定界符(默认为“/”) }}
- 例子
{{#regexquote: .../(/ /•/ω/•/ /)/.... }}
→\.\.\.\/\(\/ \/•\/ω\/•\/ \/\)\/\.\.\.\.
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”(试图访问根节点之上的节点)。
replace
来自StringFunctions。
在字串中搜索特定字串并将该特定字串出现的所有场合替换成指定的字串。若新字串为空,则相等于把旧字串在整个字串中完全移除。此函数对大小写敏感,若要做更复杂的替换请使用replaceset。若要使用特殊字串(包括前后空格,因为函数会自动trim所有输入内容),请用“<nowiki></nowiki>”
- 格式
{{#replace: 字串 | 旧字串(默认为单个半形空格) | 新字串 }}
- 例子
{{#replace:Clown piece}}
→Clownpiece
{{#replace:Double_Dealing_Character|_|<nowiki> }}</nowiki>
→DoubleDealingCharacter
replaceset
来自ReplaceSet。
根据字串或正则表达式将在输入字串中匹配到的所有内容分别替换成其他内容。替换有先后次序,系统会先应用前面的替换规则。功能类似的函数还有replace和regex。
- 单纯匹配字串的话替换规则的格式为“旧字串=新字串”。
- 匹配正则表达式的话替换规则的格式为“正则表达式=新内容”,正则表达式需要是“/abc/i”之类的格式,可以使用模式修饰符“imsxADU”(功能参见pcre说明书),新内容中可以使用“\1”等作为向后引用。
若要匹配等于号,可以用“<nowiki>=</nowiki>”。
- 格式
{{#replaceset: 字串 | 替换规则1 | 替换规则2 | ... | 替换规则n }}
- 例子
{{#replaceset:紫老太年龄9223372036854775807岁|老太=妹妹|/\d+岁/=17岁}}
→紫妹妹年龄17岁
{{#replaceset:上下 啊 逆转|啊=不能|/(\S{2})/i=\1...}}
→上下... 不能... 逆转...
- 替换规则2是在连续刚好两个非空字符后加上...,原本“啊”字并不符合这个条件,但由于替换规则1把“啊”替换成了“不能”,替换规则2就能作用到“不能”上了。
{{#replaceset:上下 啊 逆转|/(\S{2})/i=\1...|啊=不能}}
→上下... 不能 逆转...
- 替换规则1和2换个顺序的结果。
revisionday
MediaWiki原生函数。
获取词条当前版本的编写日子(日期的“日”栏),无前导零。
- 格式
{{REVISIONDAY: 词条名 }}
- 例子
{{REVISIONDAY: 词条名 }}
→3
revisionday2
MediaWiki原生函数。
获取词条当前版本的编写日子(日期的“日”栏),有前导零。
- 格式
{{REVISIONDAY2: 词条名 }}
- 例子
{{REVISIONDAY2: 词条名 }}
→03
revisionid
MediaWiki原生函数。
获取词条当前版本的编号,该编号在全词条全版本中都是唯一的,亦是顺序生成的,可以用来简单检查两个词条当前版本的编写先后。
- 格式
{{REVISIONID: 词条名 }}
- 例子
{{REVISIONID: 词条名 }}
→123983
revisionmonth
MediaWiki原生函数。
获取词条当前版本的编写月份(日期的“月”栏),有前导零。
- 格式
{{REVISIONMONTH: 词条名 }}
- 例子
{{REVISIONMONTH: 词条名 }}
→09
revisionmonth1
MediaWiki原生函数。
获取词条当前版本的编写月份(日期的“月”栏),无前导零。
- 格式
{{REVISIONMONTH1: 词条名 }}
- 例子
{{REVISIONMONTH1: 词条名 }}
→9
revisiontimestamp
MediaWiki原生函数。
获取词条当前版本的编写日期时间戳,格式为YYYYMMDDHHMMSS,可以配合其他日期格式函数显示更复杂的日期组合格式。
- 格式
{{REVISIONTIMESTAMP: 词条名 }}
- 例子
{{REVISIONTIMESTAMP: 词条名 }}
→20150903184025
revisionuser
MediaWiki原生函数。
获取词条当前版本的编写者的用户名。
- 格式
{{REVISIONUSER: 词条名 }}
- 例子
{{REVISIONUSER: 词条名 }}
→Arumi
revisionyear
MediaWiki原生函数。
获取词条当前版本的编写年份(日期的“年”栏),四位数字。
- 格式
{{REVISIONYEAR: 词条名 }}
- 例子
{{REVISIONYEAR: 词条名 }}
→2015
romaji
来自Multi Array Map。
把假名字串转换成罗马字。
- 格式
{{#romaji: 字串 }}
- 例子
{{#romaji:きらわれものばかりのふるじごくのなかでも}}
→kirawaremonobakarinofurujigokunonakademo
{{#romaji:あねのさとりとおなじようかい、サトリだ。}}
→anenosatoritoonajiyoukai、satorida。
{{#romaji:ローマじ}}
→roomaji
{{#romaji:ふじさん}}
→fujisan
{{#romaji:おちゃ}}
→ocha
{{#romaji:ちじ}}
→chiji
{{#romaji:ちぢむ}}
→chijimu
{{#romaji:つづく}}
→tsuzuku
{{#romaji:ディストーション}}
→disutooshon
rootpagename
MediaWiki原生函数。
获取HTML编码后的根词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title”。
- 格式
{{ROOTPAGENAME: 词条名 }}
rootpagenamee
MediaWiki原生函数。
获取URL编码后的根词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title”。
- 格式
{{ROOTPAGENAMEE: 词条名 }}
rootpagenameh
来自ExtraMagicWords。
获取未经处理的根词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“Title”。
- 格式
{{ROOTPAGENAMEH: 词条名 }}
rpos
来自StringFunctions。
在长字串中寻找一段较短的字串,并返回其首次出现的位置(左边开始第一个字是0,右至左搜索,左至右搜索需使用#pos),不能设置偏移量,其他特性与#pos一致。
- 格式
{{#rpos: 长字串 | 搜索字串 }}
- 例子
{{#rpos: 这是长字串 | 字串 }}
→3
{{#rpos: 这是长字串长 | 长 }}
→5
{{#rpos: 这是长字串 | 哈 }}
→-1
S
set
来自Semantic Mediawiki。
参见帮助:SMW#set。
set_recurring_event
来自Semantic Mediawiki。
参见帮助:SMW#set_recurring_event。
show
来自Semantic Mediawiki。
参见帮助:SMW#show。
smwdoc
来自Semantic Mediawiki。
解析函数#smwdoc
用于显示各种结果格式的控制参数用法。
ask函数等行内查询功能,或特殊页面“问”等浏览界面功能中会用到这些参数。
显示的表格中说明了参数名,参数输入值的类型,默认值和说明。
请注意,表格里可能有一些说明没有被翻译,另有一些说明缺失。
#mapsdoc
函数有类似的用法,它用于显示Maps扩展提供的结果格式的控制参数用法。
- 语法格式
{{#smwdoc: 格式名 | parameters=参数类型 | language=语言代码 }}
- 各参数可用的输入值:
- 例子
- “参数类型”参数:
- 如果只需查看该结果类型特有的控制参数,则可用下方代码。
- 此处使用
table
,即表格类型为例: {{#smwdoc:table}}
- 或者这么写也可以:
{{#smwdoc:table|parameters=specific}}
- 效果为:
⧼validator-describe-header-parameter⧽ | ⧼validator-describe-header-type⧽ | ⧼validator-describe-header-default⧽ | ⧼validator-describe-header-description⧽ |
---|---|---|---|
class | ⧼validator-type-string⧽ | sortable wikitable smwtable | 给表格设置的额外CSS类 |
transpose | ⧼validator-type-boolean⧽ | no | 垂直显示表头,水平显示结果 |
sep | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 结果之间的分隔符 |
prefix | ⧼validator-type-string⧽ | none | 控制打印输出内命名空间的显示 |
- 如果只需查看所有结果类型都支持的基本控制参数,则可使用下方代码。
- 此处仍使用
table
,即表格类型为例: {{#smwdoc:table|parameters=base}}
- 效果为:
⧼validator-describe-header-parameter⧽ | ⧼validator-describe-header-type⧽ | ⧼validator-describe-header-default⧽ | ⧼validator-describe-header-description⧽ |
---|---|---|---|
source | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 替代查询来源 |
limit | ⧼validator-type-integer⧽ | 50 | 最大返回结果数 |
offset | ⧼validator-type-integer⧽ | 0 | 第一个结果的偏移量 |
link | ⧼validator-type-string⧽ | all | 把值显示成链接 |
sort | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | 排序查询所依据的属性 |
order | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | 查询排序的顺序 |
headers | ⧼validator-type-string⧽ | show | 显示表头/属性名称 |
mainlabel | ⧼validator-type-string⧽ | no | 首列(主页面名称)的表头标签 |
intro | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当有查询结果时显示在结果前的文字 |
outro | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当有查询结果时显示在结果后的文字 |
searchlabel | ⧼validator-type-string⧽ | ...更多结果 | 提示继续搜索的文字 |
default | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当没有查询结果时显示的文字 |
- 如果需要查看该结果类型支持的所有控制参数,则可使用下方代码。
- 此处仍使用
table
,即表格类型为例: {{#smwdoc:table|parameters=all}}
- 效果为:
⧼validator-describe-header-parameter⧽ | ⧼validator-describe-header-type⧽ | ⧼validator-describe-header-default⧽ | ⧼validator-describe-header-description⧽ |
---|---|---|---|
source | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 替代查询来源 |
limit | ⧼validator-type-integer⧽ | 50 | 最大返回结果数 |
offset | ⧼validator-type-integer⧽ | 0 | 第一个结果的偏移量 |
link | ⧼validator-type-string⧽ | all | 把值显示成链接 |
sort | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | 排序查询所依据的属性 |
order | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | 查询排序的顺序 |
headers | ⧼validator-type-string⧽ | show | 显示表头/属性名称 |
mainlabel | ⧼validator-type-string⧽ | no | 首列(主页面名称)的表头标签 |
intro | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当有查询结果时显示在结果前的文字 |
outro | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当有查询结果时显示在结果后的文字 |
searchlabel | ⧼validator-type-string⧽ | ...更多结果 | 提示继续搜索的文字 |
default | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 当没有查询结果时显示的文字 |
class | ⧼validator-type-string⧽ | sortable wikitable smwtable | 给表格设置的额外CSS类 |
transpose | ⧼validator-type-boolean⧽ | no | 垂直显示表头,水平显示结果 |
sep | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | 结果之间的分隔符 |
prefix | ⧼validator-type-string⧽ | none | 控制打印输出内命名空间的显示 |
- “语言代码”参数:
- 如需查看英文版的说明,则可使用下方代码:
{{#smwdoc:table|language=en}}
- 效果为:
⧼validator-describe-header-parameter⧽ | ⧼validator-describe-header-type⧽ | ⧼validator-describe-header-default⧽ | ⧼validator-describe-header-description⧽ |
---|---|---|---|
class | ⧼validator-type-string⧽ | sortable wikitable smwtable | An additional CSS class to set for the table |
transpose | ⧼validator-type-boolean⧽ | no | Display table headers vertically and results horizontally |
sep | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | The separator between results |
prefix | ⧼validator-type-string⧽ | none | Control display of namespace in printouts |
- 本维基支持中文
zh
、英文en
和日文ja
。
- 本维基支持中文
special
MediaWiki原生函数。
获取指定的特殊页面在当前语言中的全名(包含命名空间)。
- 格式
{{#special: 特殊页面 }}
- 例子
{{#special: 特殊页面名称 }}
→特殊:特殊页面
{{#special: specialpages }}
→特殊:特殊页面
{{#special: userlogin }}
→特殊:用户登录
speciale
MediaWiki原生函数。
获取指定的特殊页面在当前语言中URL编码后的全名(包含命名空间)。
- 格式
{{#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: userlogin }}
→%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95
stringunique
来自Multi Array Map。
去掉一字串按特定分隔符分割后重复的段落。
- 格式
{{#stringunique: 字串 | 分隔符(默认为回车) }}
- 例子
{{#stringunique:1,1,2,3,4,5,9,9,2|,}}
→1,2,3,4,5,9
{{#stringunique:1 1 2 3 4 5 9 9 2|<nowiki> </nowiki>}}
→1 2 3 4 5 9
sub
来自StringFunctions。
用于从给定字串中截取子字串。
- 格式
{{#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|0|3}}
→Ice
- 如果'起始位置'参数指定的位置,落在负的'长度'参数所略去的字符上,则会返回空字串:
{{#sub:Icecream|3|-6}}
→(空字串)
- 此函数兼容UTF-8多字节字符,如:
{{#sub:Žmržlina|3}}
→žlina
- 如同len一样,
<nowiki>
等标签扩展,不计长度,也不占'位置',如:{{#sub:<nowiki>This is a </nowiki>test|0}}
→test
subjectpagename
MediaWiki原生函数。
获取HTML编码后的关联词条词条全名(包含命名空间),关联词条即是讨论页的所属的页面。
- 格式
{{SUBJECTPAGENAME: 词条名 }}
subjectpagenamee
MediaWiki原生函数。
获取URL编码后的关联词条词条全名(包含命名空间),关联词条即是讨论页的所属的页面。
- 格式
{{SUBJECTPAGENAMEE: 词条名 }}
subjectpagenameh
来自ExtraMagicWords。
获取未经处理的关联词条词条全名(包含命名空间),关联词条即是讨论页的所属的页面。
- 格式
{{SUBJECTPAGENAMEH: 词条名 }}
subjectspace
MediaWiki原生函数。
获取HTML编码后的关联词条词条命名空间,关联词条即是讨论页的所属的页面。
- 格式
{{SUBJECTSPACE: 词条名 }}
subjectspacee
MediaWiki原生函数。
获取URL编码后的关联词条词条命名空间,关联词条即是讨论页的所属的页面。
- 格式
{{SUBJECTSPACEE: 词条名 }}
subobject
来自Semantic Mediawiki。
参见帮助:SMW#subobject。
subpagecategory
来自Multi Array Map。
此函数能给子词条自动添加分类,主词条有改动时子词条也会自动刷新。
- 格式
{{subpagecategory: 分类名 | 排序键 }}
- 例子
{{subpagecategory: 扩展帮助文档 | ^解析函数^ }}
→- 会给此词条的所有子词条添加分类“扩展帮助文档”,使用搜索键“^解析函数^”。
- 效果相等于在每个词条名格式为“帮助:解析函数/XXX”的词条写上
[[分类:扩展帮助文档|^解析函数^]]
。
subpagename
MediaWiki原生函数。
获取HTML编码后的子词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“bar”。
- 格式
{{SUBPAGENAME: 词条名 }}
subpagenamee
MediaWiki原生函数。
获取URL编码后的子词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“bar”。
- 格式
{{SUBPAGENAMEE: 词条名 }}
subpagenameh
来自ExtraMagicWords。
获取未经处理的子词条词条名(不含命名空间),例如“Help:Title/foo/bar”会返回“bar”。
- 格式
{{SUBPAGENAMEH: 词条名 }}
switch
来自ParserFunctions。
这个函数将一个输入值与若干个情况值对比,如果找到了相符的情况,则返回该情况下的输出字串。
- 格式
{{#switch: 比较字串 | 情况字串1 = 返回结果1 | 情况字串2 = 返回结果2 | ... | 情况字串n = 返回结果n | 默认结果 }}
- 例子
{{#switch: baz | foo = Foo | baz = Baz | Bar }}
→Baz
{{#switch: foo | foo = Foo | baz = Baz | Bar }}
→Foo
{{#switch: zzz | foo = Foo | baz = Baz | Bar }}
→Bar
#switch
和部分转换标签可以作用于配置文件,从而可以使不熟悉模板代码的编辑者编辑可配置元素。- 关于默认结果
- 在当没有'情况字串'与'比较字串'相符时,会返回'默认结果':
{{#switch: test | foo = Foo | baz = Baz | Bar }}
→Bar
- 按这个函数的句法,'默认结果'必须是最后一个参数,并且不能包含原始等号符。
{{#switch: test | Bar | foo = Foo | baz = Baz }}
→{{#switch: test | foo = Foo | baz = Baz | B=ar }}
→
- 或者'默认结果'可以用'情况字串'
#default
来特别声明。
{{#switch: 比较字串 | 情况字串1 = 返回结果1 | 情况字串2 = 返回结果2 | ... | 情况字串n = 返回结果n | #default = 默认结果 }}
- 用这种方式声明的'默认结果'可以放在函数内的任何位置:
{{#switch: test | foo = Foo | #default = Bar | baz = Baz }}
→Bar
- 如果'默认结果'被省略,当没有相符情况时,不会返回结果:
{{#switch: test | foo = Foo | baz = Baz }}
→
- 一组情况的结果
- 可以使用“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
的数值比较方法与表达式比较不同:{{#switch: 12345678901234567 | 12345678901234568 = A | B}}
→B
{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}}
→A
- 具体见
ifeq
处的第一条“注意”。 - 关于原始等号符
- '情况字串'不能包含原始等号符。为了解决这个问题,创建了一个只包含一个等号符
=
的模板{{=}}
。 - 应用的例子:
{{#switch: 1=2 | 1=2 = raw | 1=2 = nowiki | 1=2 = html | 1{{=}}2 = template | default }}
→ html
- 关于替换
#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}}}}}}
T
tag
MediaWiki原生函数。
生成一个XML标签(只能是解析器扩展标签),可以设定其标签类型、内文和属性。有时候一些XML标签形式的解析器结构(即解析器扩展标签),不会解析和运算其内文,导致其无法在模板中使用或配合其他解析器结构使用(如tabber),此时则需要利用tag函数,生成一个内文已经解析了的标签。
- 格式
{{#tag: 标签类型 | 内文 | 属性 }}
- 例子
{{#tag: nowiki | 这是nowiki里面,{{padleft:|5|一二}}切运算都有效 }}
→这是nowiki里面,一二一二一切运算都有效
{{#tag: ref | 这是备注里面,{{padleft:|5|一二}}切运算都有效 | name="tag" group="tag" }}
→4
{{#tag: references || group="tag" }}
→(内文连一个空格都没有的话,便会生成一个自关闭标签)
talkpagename
MediaWiki原生函数。
获取HTML编码后的讨论页词条全名(包含命名空间)。
- 格式
{{TALKPAGENAME: 词条名 }}
talkpagenamee
MediaWiki原生函数。
获取URL编码后的讨论页词条全名(包含命名空间)。
- 格式
{{TALKPAGENAMEE: 词条名 }}
talkpagenameh
来自ExtraMagicWords。
获取未经处理的讨论页词条全名(包含命名空间)。
- 格式
{{TALKPAGENAMEH: 词条名 }}
talkspace
MediaWiki原生函数。
获取HTML编码后的讨论页词条命名空间。
- 格式
{{TALKSPACE: 词条名 }}
talkspacee
MediaWiki原生函数。
获取URL编码后的讨论页词条命名空间。
- 格式
{{TALKSPACEE: 词条名 }}
taxin
来自Duration Extension。
含税运算。
- 格式
{{#taxin: 价格字串 | 显示格式 | 税率(默认为1.08) }}
- 例子
{{#taxin:¥1200}}
→ ¥1296{{#taxin:¥1200|final}}
→ ¥1296{{#taxin:¥1200|final|1.05}}
→ ¥1260{{#taxin:¥1200|change|1.05}}
→ ¥60{{#taxin:¥1200|display|1.05}}
→ ¥1200 + ¥60{{#taxin:¥1200| 加税 |1.05}}
→ ¥1200 加税 ¥60
taxout
来自Duration Extension。
除税运算。
- 格式
{{#taxout: 价格字串 | 显示格式 | 税率(默认为1.08) }}
- 例子
{{#taxout:¥1260}}
→ ¥1167{{#taxout:¥1260|final}}
→ ¥1167{{#taxout:¥1260|final|1.05}}
→ ¥1200{{#taxout:¥1260|change|1.05}}
→ -¥60{{#taxout:¥1260|display|1.05}}
→ ¥1260 - ¥60{{#taxout:¥1260| 减税 |1.05}}
→ ¥1260 减税 ¥60
time
代码 | 说明 | 当前输出值 (清除此页面缓存以更新结果) |
---|---|---|
年 | ||
Y
|
4位数表示的年。 | 2024 |
y
|
2位数表示的年。 | 24 |
L
|
1表示闰年(Leap year),0表示非闰年。 | 1 |
o 注 1
|
ISO-8601 规定的该周所属年份。注 2 | 2024注 3 |
月 | ||
n
|
月份号,无前导零。 | 8 |
m
|
月份号,有前导零。 | 08 |
M
|
月份名称缩写,使用网站语言。(英文结果为 Aug )
|
8月 |
F
|
月份名称全称,使用网站语言。(英文结果为 August )
|
8月 |
xg
|
月份名称全称,使用网站语言的属格(Genitive)形式,注意区分其与主格(Nominative)形式的区别。 这项功能在斯拉夫语族(Slavic languages)中十分重要,如波兰语、俄语、白俄罗斯语、捷克语、斯洛伐克语、斯洛文尼亚语、乌克兰语等。 在中文环境下: |
对于中文:
(主格) (属格) |
周 | ||
W
|
ISO 8601 规定的周数,有前导零。 | 33 |
日 | ||
j
|
月份内的日期号,无前导零。 | 15 |
d
|
月份内的日期号,有前导零。 | 15 |
z
|
年份内的日期号 (1月1日 = 0)。 注意:要获得 ISO 规定的日期号,需加上1。 |
227 |
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)。
|
pm |
A
|
上方 a 的大写形式。
|
PM |
g
|
12小时制的时,无前导零。 | 6 |
h
|
12小时制的时,有前导零。 | 06 |
G
|
24小时制的时,无前导零。 | 18 |
H
|
24小时制的时,有前导零。 | 18 |
分 和 秒 | ||
i
|
小时后的分钟数,有前导零。 | 02 |
s
|
分钟后的秒钟数,有前导零。 | 15 |
U
|
UNIX时间(Unix time)。从格林尼治时间(GMT)1970年1月1日00:00:00开始计的秒钟数。 | 1723744935 |
时区(需 MediaWiki 1.22wmf2) | ||
e
|
时区标识符。 | UTC |
I
|
当前日期是否使用日光节约时间(夏令时)。 | 0 |
O
|
与格林尼治时间(GMT)的时差。 | +0000 |
P
|
与格林尼治时间(GMT)的时差,带有冒号分隔。 | +00:00 |
T
|
时区缩写。 | UTC |
Z
|
以秒计的时差。 | 0 |
杂项 | ||
t
|
当前月份的天数。 | 31 |
c
|
ISO 8601 格式的日期,等价于 Y-m-d"T"H:i:s+00:00 。
|
2024-08-15T18:02:15+00:00 |
r
|
RFC 5322 格式的日期,等价于 D, j M Y H:i:s +0000 ,其中星期名和月份名国际上不通用。
|
Thu, 15 Aug 2024 18:02:15 +0000 |
非公历日历 | ||
伊斯兰历(Islamic calendar),又称 希吉来历(Hijri calendar) | ||
xmj
|
月份内的日期号。 | 9 |
xmF
|
月份名称全称。 | 色法尔月 |
xmn
|
月份号。 | 2 |
xmY
|
全长表示的年。 | 1446 |
伊朗历(Iranian calendar),又称 贾拉利历(Jalali calendar) | ||
xij
|
月份内的日期号。 | 25 |
xiF
|
月份名称全称。 | Mordad |
xin
|
月份号。 | 5 |
xiY
|
全长表示的年。 | 1403 |
xiy
|
2位数表示的年。 | 03 |
希伯来历(Hebrew calendar) | ||
xjj
|
月份内的日期号。 | 11 |
xjF
|
月份名称全称。 | 埃波月 |
xjt
|
当前月份的天数。 | 30 |
xjx
|
属格形式的月份名称。 | Av |
xjn
|
月份号。 | 11 |
xjY
|
全长表示的年。 | 5784 |
泰国历(Thai solar calendar) | ||
xkY
|
泰国历的全长表示的年。 注意:公历1941年前的年份,1月到3月的范围内,计算得到的泰国历年份不正确。(原因) |
2567 |
民国纪年(Minguo calender) 朝鲜历(North Korean calendar),又称 主体历(Juche calendar) | ||
xoY
|
全长表示的年。 | 113 |
日本年号(Japanese era name, or Japanese nengo) | ||
xtY
|
全长表示的年(带有年号)。 | 令和6 |
转换标志 | ||
xn
|
将下一个数字代码转换为原始 ASCII 格式数字。 | 在印地语中,{{#time:H, xnH}} 得到的是 ०६, 06 。
|
xN
|
与 xn 功能类似。但它持续起作用到字串末尾,或字串中的下一个 xN 处。
| |
xr
|
将下一个数字代码转换为罗马数字格式。仅对 10,000 以内的数字有效 (MediaWiki 1.20 之前,仅对 3,000 以内的数字有效)。 |
{{#time:xrY}} → MMXXIV
|
xh
|
将下一个数字代码转换为希伯来数字格式。 | {{#time:xhY}} → ב'כ"ד
|
来自ParserFunctions。
将日期和/或时间(公历)按格式字串规定的格式进行转换。
可自行指定日期/时间对象,默认使用魔术字(Magic word){{CURRENTTIMESTAMP}}
的值(该值使用世界协调时间,UTC),也就是页面最近一次渲染为HTML的时间。
- 格式
{{#time: 格式字串 }}
{{#time: 格式字串 | 日期/时间对象 }}
{{#time: 格式字串 | 日期/时间对象 | 语言代码 }}
- 在右边的表格中列出了支持的格式控制代码。'格式字串'中的任何不被识别的字符将原样输出,包括空格(系统不用它们来编译代码)。
- 还有两种方法可以使'格式字串'内的字符原样输出:
- 反斜杠
\
后加字符,可以原样输出单个字母: - 一对半角双引号
" "
内的字符被当作文字,会原样输出,不带双引号。
- 反斜杠
- 另外,还可以用
xx
来输出单个字母x
。 - 例子
{{#time:\m}}
→m
{{#time:\xg}}
→x6
(x
被原样输出,g
被当作格式控制代码){{#time: Y-m-d }}
→2024-08-15
{{#time: [[Y]] m d }}
→2024 08 15
{{#time: [[Y (year)]] }}
→2024 (24UTCpmThu, 15 Aug 2024 18:02:15 +0000)
(year被当作格式控制代码y
、e
、a
、r
){{#time: [[Y "(year)"]] }}
→2024 (year)
{{#time: i's" }}
→02'15"
- '日期/时间对象'可以使用任何PHP中strtotime()函数支持的格式。可以使用绝对时间(如
20 December 2000
)和相对时间(如+20 hours
):{{#time: r|now}}
→Thu, 15 Aug 2024 18:02:16 +0000
{{#time: r|+2 hours}}
→Thu, 15 Aug 2024 20:02:16 +0000
{{#time: r|now + 2 hours}}
→Thu, 15 Aug 2024 20:02:16 +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 }}
→1723744936
{{#time: r|@1485582296}}
→Sat, 28 Jan 2017 05:44:56 +0000
- 注意:可接受的输入时间范围是0111年1月1日至9999年12月31日。100年到110年的各个格式控制代码的输出不一致:
Y
和L
按照100-110年来计算;但r
、D
、l
和U
是按照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
中星期输出为Unknown
,l
的输出为<>
,且这几年的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 15 00:00:00
(使用了一天的开始时刻,填补了当前月份内的日期号、年份){{#time: Y m d H:i:s | 2003 }}
→2003 08 15 00:00:00
(使用了一天的开始时刻,填补了当前年份内的日期号)
- 在MediaWiki r86805之后,4位数字一概会被认为是年份,而非小时与分钟:
{{#time: Y m d H:i:s | 1959 }}
→1959 08 15 00:00:00
- 6位数字会被认为是小时、分钟和秒钟,如果得到的时间不正确,则会报错(一概不会当作年份和月份):
{{#time: Y m d H:i:s | 195909 }}
→2024 08 15 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 7月
#time
中'格式字串'的总长度限制为6000字符。- 关于时区
- 解析函数
#time
中有一个bug(更确切的说是PHP日期时间的bug),不允许传入非整数的相对时差。这个问题在整点时区不会出现,如东部夏令时间(EDT):{{#time:g:i A | -4 hours }}
→2:02 PM
- 但是,委内瑞拉(委内瑞拉标准时间,VET)与世界协调时间(UTC)的时差是-4.5小时,如果直接输入则不会得到正确的结果,如下:
{{#time:g:i A | -4.5 hours }}
→3:02 AM
- 可以将时差转换为分钟或者秒钟来解决这个问题:
{{#time:g:i A | -270 minutes }}
→1:32 PM
{{#time:g:i A | -16200 seconds }}
→1:32 PM
- (上述方法由此函数开发者 Tim Starling 提供)
timel
来自ParserFunctions。
此函数与{{#time: ... }}
一致,只是它在'日期/时间对象'留空时,会使用wiki的当地时间(在$wgLocaltimezone中设定)。
- 例子
{{#time: Y-m-d }}
→2024-08-15
(世界协调时间,UTC){{#timel: Y-m-d }}
→2024-08-16
(中央标准时间,CST){{#time: Y F d H:i:s}}
→2024 8月 15 18:02:15
(世界协调时间,UTC){{#timel: Y F d H:i:s}}
→2024 8月 16 02:02:15
(中央标准时间,CST)
titleparts
来自ParserFunctions。
把标题字串用半形斜线“/”切割,返回指定位置开始,指定长度的标题段落,段落位置从1开始计算。段落长度为0时会返回从段落位置开始的所有段落,段落位置为0时效果和为1时一样。
- 格式
{{#titleparts: 标题字串 | 段落长度(默认为0) | 段落位置(默认为1) }}
- 注意
- 所有半形斜线“/”都会被切割,不论是否已有一个标题字串一模一样并以“/”作为词条名中一个普通字符的词条存在。
- 注意
- 标题字串内的所有HTML实体均会自动转换成对应的字符,所以不能用“/”来逃避切割。半形底线“_”会自动转换成半形空格“ ”,也会按照WIKI设定把首字母转成大写。
- 例子
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade }}
→讨论:东方/心绮楼/Hopeless/Masquerade
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | 1 }}
→讨论:东方
,效果同rootpagename。{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | 2 }}
→讨论:东方/心绮楼
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | 2 | 2 }}
→心绮楼/Hopeless
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | | 2 }}
→心绮楼/Hopeless/Masquerade
- 注意
- 段落长度和段落位置均可以使用负数,负数段落长度表示从尾开始去掉该数量的段落,负数段落位置表示从尾开始计算段落位置。
- 例子
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | -1 }}
→讨论:东方/心绮楼/Hopeless
,效果同basepagename。{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | -4 }}
→,去掉的段落数等于段落总数。
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | -5 }}
→,去掉的段落数超出了段落总数。
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | | -1 }}
→Masquerade
,效果同subpagename。{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | -1 | 2 }}
→心绮楼/Hopeless
{{#titleparts: 讨论:东方/心绮楼/Hopeless/Masquerade | -1 | -2 }}
→Hopeless
- 注意
- 标题字串最多能含有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 }}
→
trimall
来自Multi Array Map。
去掉字串里多余的分隔符。
- 格式
{{#trimall: 字串 | 分隔符(默认为空格) }}
- 例子
{{#trimall:,,1,3,,5,7,1,32,,|,}}
→1,3,5,7,1,32
{{#trimall:3,5,,7 ,, ,,1|,}}
→3,5,7 , ,1
ttt
来自Multi Array Map。
翻译文档编写完毕后,可以用一个简单的解析函数引用文档中任意段落。
- 格式
{{#ttt: 词条名 | 段落名 | 段落内序号列表 | 语言代号列表 }}
- 词条名即是被引用的词条的名称,注意只能引用使用了翻译表的词条,引用一般词条请使用lst或模板。
- 段落名即是子标题(== 标题 ==等)的名称,最前面的第一段(没有子标题)则用“=”,编写翻译文档时最好按内容适当地分一下段,否则引用起来会很麻烦。
- 段落内序号即是需要引用的行位于段落内的序号,一个新的段落开始后紧接的普通文字为第0号,其后的行才是1,然后每一行接着2、3、4等等。
- 段落内序号可以用列表形式来写,比如可以用“1,2,5-8,9,11”表示“1,2,5,6,7,8,9,11”。
- 语言代号即是需要引用的语言代号,不写的话全部匹配段落内序号的内容都会以表格形式被引用,写的话可以写多个代号(用半形逗号“,”分隔),并只会把符合代号的内容以普通文本形式顺序引用。
- 可以使用 [[标题名#段落名-序号]] 的方式获取该位置的超链接。
__DIALOGUE__ | |
这是初始段落,用=引用 | |
== Stage 1 == | 这是段落“Stage 1”开始 |
←这是“Stage 1”的第0号(什么字都没有,不管有没有空行0号都必定是这里) | |
char=博丽灵梦 | ←这是“Stage 1”的第1号的开始 |
ja | |
こんな装備で大丈夫か? | |
zh | |
这样的装备没问题吗? | ←这是“Stage 1”的第1号的结束 |
char=雾雨魔理沙 | ←这是“Stage 1”的第2号的开始 |
ja | |
だが断る | |
zh | |
然则我拒绝 | ←这是“Stage 1”的第2号的结束 |
status | ←这是“Stage 1”的第3号的开始 |
然后就打起来了 | ←这是“Stage 1”的第3号的结束 |
== Stage 2 == | 这是段落“Stage 2”开始 |
这是Stage 2啊 | ←这是“Stage 1”的第0号 |
char=博丽灵梦 | ←这是“Stage 2”的第1号的开始 |
ja | |
次にお前は「そうなのか」という | |
zh | |
你的下一句话是“是这样吗” | ←这是“Stage 2”的第1号的结束 |
char=雾雨魔理沙 | ←这是“Stage 2”的第2号的开始 |
ja | |
そうなのか | |
zh | |
是这样吗 | ←这是“Stage 2”的第2号的结束 |
xx | |
[[分类:扩展帮助文档]] | ←这是“Stage 2”的第3号 |
- 引用
{{#ttt: 帮助:翻译表/游戏对话 | Stage 2 | 0-2 }}
- 结果
这是Stage 2啊
博丽灵梦 | 次にお前は「そうなのか」という | 你的下一句话是“是这样吗” |
雾雨魔理沙 | そうなのか | 是这样吗 |
- 引用
{{#ttt: 帮助:翻译表/游戏对话 | Stage 1 | 1,2 | char,ja }}
- 结果
- 引用
{{#ttt: 帮助:翻译表/游戏对话 | | | zh }}
- 结果
八坂神奈子
又是何必呢?
如今的幻想乡根本不需要神明。
被混沌所支配。
对于没有信仰的人来说,永远不会明白
信仰的意义。
- 引用
{{#ttt: 帮助:翻译表/游戏对话 | Stage 1 | | status }}
- 结果
tttt
来自Multi Array Map。
除了固定表格和纯文字引用,还可以把同一行的各个部分输入到模板中使用模板生成格式化的结果。
- 格式
{{#tttt: 模板名称 | 词条名 | 段落名 | 段落内序号列表 | 语言代号列表 }}
- 用法和#引用一样,只是增加了模板名称作为第一个参数。
- 只是语言代号列表的效果稍有变更,在ttt中语言代号列表用于选取语言代号完全吻合的内容,而在tttt中则会选取任何含有列表中其中一个语言代号的行。
- 此函数会以每行为单位,一行引用一次该模板,引用方式为:
{{模板名称|?=行的类型|#=行号|列1代号=列1内容|列2代号=列2内容| ... |列n代号=列n内容}}
- 模板样式例子
{{简单对话 |?=content |#=6 |char=博丽灵梦 |ja=あー暑いわねー 冬服着てきて損したわ |zh=啊—热死了— 穿冬装真是亏大了}}
- 引用
{{#tttt:简单对话|游戏对话:东方地灵殿/博丽灵梦(八云紫支援)/中日对照|Stage 5|6-11|char}}
- 结果
- 此处使用了模板简单对话,引用了游戏对话:东方地灵殿/博丽灵梦(八云紫支援)/中日对照 Stage 5下第6-11行中含有“char”语言代号的行。
U
uc
MediaWiki原生函数。
把输入的字串中所有字母变成小写。
- 格式
{{uc: 字串 }}
- 例子
{{uc: a字串 bc }}
→A字串 BC
ucfirst
MediaWiki原生函数。
把输入的字串中第一个字母变成小写。
- 格式
{{ucfirst: 字串 }}
- 例子
{{uc: a字串 bc }}
→A字串 BC
{{uc: 字串 bc }}
→字串 BC
urldecode
MediaWiki原生函数。
还原被URL编码的字串。
- 格式
{{#urldecode: URL编码字串 }}
- 例子
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25 }}
→ABC中文 英文 123&456+1%
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25 }}
→ABC中文 英文 123&456+1%
(用urlencode加QUERY编码的字串){{#urldecode: ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25 }}
→ABC中文_英文_123&456+1%
(用urlencode加WIKI编码的字串){{#urldecode: ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25 }}
→ABC中文 英文 123&456+1%
(用urlencode加PATH编码的字串)
urlencode
MediaWiki原生函数。
获取URL编码后的字串,并可以使用空格设定改变编码空格时的效果,可以使用的设定分别是:QUERY(空格变为“+”)、WIKI(空格变为“_”)、PATH(空格变为“%20”)。
- 格式
{{urlencode: 普通字串 | 空格设定(QUERY、WIKI或PATH,默认为QUERY) }}
- 例子
{{urlencode: ABC中文 英文 123&456+1% }}
→ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | QUERY }}
→ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | WIKI }}
→ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | PATH }}
→ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25
urlencodequery
来自Duration Extension。
对URL Query字串进行URL编码,编码时符合Query结构的“&”和“=”不会被编码。
- 格式
{{#urlencodequery: 字串 }}
- 例子
{{#urlencodequery: a=灵梦&b=魔理沙 }}
→a=%E7%81%B5%E6%A2%A6&b=%E9%AD%94%E7%90%86%E6%B2%99
{{#urlencodequery: circle==NeutraL=&year=2010 }}
→circle=%3DNeutraL%3D&year=2010
{{#urlencodequery: circle=Azure&Sands&year=2010 }}
→circle=Azure%26Sands&year=2010
urlget
来自UrlGetParameters。
在页面中获取网址参数,使用{{#urlget: name|n/a}}
可以获取网址参数中name的值(例如网址是thbwiki.cc/帮助:解析函数?name=zun,函数则会返回“zun”),如果网址中没有该参数,则返回默认值。结果值会保持未URL解码的状态下返回,返回默认值时该默认值也会被URL编码以保持统一,urlget外套一个#urldecode便可以获取真实的值。参数名中使用“A[B]”的方式可以获取阵列参数中的单个值,否则使用“A”的话只能获取以半形逗号分隔的整个阵列。注意使用此函数会自动禁用该页面的内部缓存功能。
- 格式
{{#urlget: 参数名 | 默认值 }}
- 例子
{{#urlget: name | what??? }}
→zun
{{#urlget: love | none }}
→beer,stg,music
,获取整个阵列。{{#urlget: love[0] | none }}
→beer
,获取阵列中的单个值。{{#urlget: hate | what??? }}
→what%3F%3F%3F
,注意“???”被编码了。
useliquidthreads
来自LiquidThreads。
设定该讨论页是否使用LiquidThreads功能,选项参数为“no”、“off”、“disable”、“0”或空时,会禁用LiquidThreads功能,其他值则启用。
- 格式
{{#useliquidthreads: 选项 }}
V
var
来自Variables。
获取特定变量的内容值,需配合#vardefine或#vardefineecho使用,比如在这里用{{#vardefine: abc | def }}
定义变量abc。无法获取在后面代码中才定义的变量。当要获取的变量没被定义时,会输出默认值,已被定义的判定可参考#varexists。
- 格式
{{#var: 变量名称 | 默认返回值(默认为空字串) }}
- 例子
{{#var: count | 未定义 }}
→未定义
获取未定义的变量count,输出默认值。{{#var: abc | xyz }}
→def
获取已定义的变量abc。
var_final
来自Variables。
只使用#var和#varexists的话,只能顺着代码的流向获取在前面的代码中已经定义的变量。
比如这里的代码位于#vardefine下的例子前,如果现在获取{{#var:count}}
的话,因为定义count的代码还没处理,所以只能获取到变量未定义时默认的空白字串“”;或者使用{{#var:count|未定义}}
的话,则返回“未定义”。
而使用var_final就可以获取所有代码均已经过处理后,指定变量的最终内容值。
- 注意
- 此函数在代码运算的最后关头才会获得返回值,因有此特殊性此函数在很多情况下都会出现未预期的表现,安全起见不建议把此函数放在模板、解析函数及其他需要后台运算的代码之内,放在纯HTML内则是安全的。
- 格式
{{#var_final: 变量名称 | 默认返回值(默认为空字串) }}
- 例子
{{#var_final: count | 未定义 }}
→1
在此处获取在后面代码中才会被定义的count的内容。
vardefine
来自Variables。
把字串内容作为一个变量储存,便于在后面代码中再次使用。此函数只会在内部改变变量的值,不会输出任何字符。
- 格式
{{#vardefine: 变量名称 | 内容值(默认为空字串) }}
- 例子
{{#vardefine: count | 0 }}
→将定义一个名为“count”的变量,初始内容为“0”,需注意此为字串“0”,现在变量count的内容为“0”。
{{#vardefine: text |}}
→也可以定义初始内容为空白的变量,现在变量text的内容为“”。
{{#vardefine: text | 新 }}
→通过同样的方法可以覆盖已有变量的内容,现在变量text的内容为“新”。
{{#vardefine: text | {{#var: text}}内容 }}
→通过与#var组合,给变量拼接更多内容,现在变量text的内容为“新内容”。
{{#vardefine: count | {{#expr: {{#var: count}}+1 }} }}
→通过与#expr组合,递增变量,现在变量count的内容为“1”。
vardefineecho
来自Variables。
用法和内部效果#vardefine完全一致,只是会在改变变量值的同时输出改变后变量的值。
- 格式
{{#vardefineecho: 变量名称 | 内容值(默认为空字串) }}
- 例子
{{#vardefineecho: text | 变量的内容,看到了吗 }}
→变量的内容,看到了吗
定义变量同时输出变量内容,现在变量text的内容为“变量的内容,看到了吗”。
varexists
来自Variables。
用于判断一个变量是否已由#vardefine或#vardefineecho定义,即使初始值为空字串,也会被判定为已被定义。若该变量已被定义,会返回“1”,否则返回空字串,可以直接配合#if使用。
- 格式
{{#varexists: 变量名称 }}
- 例子
{{#varexists: text }}
→1
{{#varexists: count }}
→1
{{#varexists: null }}
→{{#if: {{#varexists: extra }} | 存在 | 不存在 }}
→不存在
配合#if使用。
W
widget
来自Widgets。 调用预先编写好的Widgets小工具,并可以将参数传入Widgets中。小工具的编写方法请参照Extension:Widgets。
- 格式
{{#widget: 小工具名称 | 参数名1=值1 | 参数名2=值2 | ... | 参数名n=值n }}