帮助:魔术字

来自Mooncell - 玩家共同构筑的FGO中文Wiki
跳到导航 跳到搜索

翻译自Help:Magic_words这里只有MediaWiki原生支持的魔术字

状态开关

变量

解析器函数

以下的解析器函数由MediaWiki提供

其他页面的metadata

这些解析器函数全部都是高开销的

解析器函数 输出(首页的) 描述
{{PAGEID: 页面名 }} 1 输出指定页面的ID
{{PAGESIZE: 页面名 }}

{{PAGESIZE: 页面名 |R}}

7,980
7980
输出指定页面的长度(字节)。使用"|R"获取没有被格式化(没有逗号)的数字
{{PROTECTIONLEVEL: 行为 | 页面名}} sysop 输出指定页面指定行为(例如:“编辑”,“移动”)的保护等级(例如:“autoconfirmed”,“sysop”),如果没有被保护则输出空字符串
{{PROTECTIONEXPIRY: 行为 | 页面名}} 返回指定页面指定行为的保护的终止时间(例如:“201909009230505”,“infinity”)。如果没被保护也返回“infinity”
{{CASCADINGSOURCES: 页面名 }} 返回指定页面的级联保护来源。不会返回自己,除非他们包含他们自己
{{REVISIONID: 页面名 }} 453616 返回指定页面的最新更改的ID。*
{{REVISIONDAY: 页面名 }} 12 返回指定页面的最新更改的天(没有补全的数字)。*
{{REVISIONDAY2: 页面名 }} 12 返回指定页面的最新更改的天(用0补全的数字)。*
{{REVISIONMONTH1: 页面名 }} 2 返回指定页面的最新更改的月份(没有补全的数字)。*
{{REVISIONMONTH: 页面名 }} 02 返回指定页面的最新更改的月份(用0补全的数字)。*
{{REVISIONYEAR: 页面名 }} 2024 返回指定页面的最新更改的年份。*
{{REVISIONTIMESTAMP: 页面名 }} 20240212175450 返回指定页面的最新更改的时间。*
{{REVISIONUSER: 页面名 }} 清玄 返回指定页面的最新更改的更改者。*
*When the given param is equal to the current title of the parser, the parser function will yield the previous versions on preview and on substitution, that includes empty strings when used on page creation but using the values from the current version for page view, including viewing old revisions. In this case it is a non-expensive parser function.

URL数据

解析器函数 输入 输出 描述
{{localurl: 页面名 }}

{{localurl: 页面名 | 请求参数 }}

{{localurl: 首页 }}

{{localurl: 首页 | printable=yes }}

/w/%E9%A6%96%E9%A1%B5

/index.php?title=%E9%A6%96%E9%A1%B5&printable=yes

页面的相对路径
{{fullurl: 页面名 }}

{{fullurl: 页面名 | 请求参数 }}
{{fullurl: 跨维基前缀 | 另一维基上的页面名 | 请求参数 }}

{{fullurl: 首页 }}

{{fullurl: 首页 | printable=yes }}
{{fullurl: mw:MediaWiki | printable=yes }}

//fgo.wiki/w/%E9%A6%96%E9%A1%B5

//fgo.wiki/index.php?title=%E9%A6%96%E9%A1%B5&printable=yes
https://www.mediawiki.org/wiki/MediaWiki?printable=yes

基于$wgServer的页面的相对路径(不一定以http(s)://)开头。同时会处理跨wiki前缀。注意:没有协议的相对路径不会自动被链接
{{canonicalurl: 页面名 }}

{{canonicalurl: 页面名 | 请求参数 }}
{{canonicalurl: 跨维基前缀 | 另一维基上的页面名 | 请求参数 }}

{{canonicalurl: 首页 }}

{{canonicalurl: 首页 | action=edit }}
{{canonicalurl: mw:MediaWiki | printable=yes }}

https://fgo.wiki/w/%E9%A6%96%E9%A1%B5

https://fgo.wiki/index.php?title=%E9%A6%96%E9%A1%B5&action=edit
https://www.mediawiki.org/wiki/MediaWiki?printable=yes

页面的绝对路径,使用规范URL。会同时处理跨wiki前缀。
{{filepath: 文件名 }}

{{filepath: 文件名 | nowiki }}
{{filepath: 文件名 | 缩略图大小 }}

{{filepath: 站娘.客户端.png }}

{{filepath: 站娘.客户端.png | nowiki }}
{{filepath: 站娘.客户端.png | 200 }}

https://media.fgo.wiki/c/cb/%E7%AB%99%E5%A8%98.%E5%AE%A2%E6%88%B7%E7%AB%AF.png

https://media.fgo.wiki/c/cb/%E7%AB%99%E5%A8%98.%E5%AE%A2%E6%88%B7%E7%AB%AF.png
https://media.fgo.wiki/thumb/c/cb/%E7%AB%99%E5%A8%98.%E5%AE%A2%E6%88%B7%E7%AB%AF.png/200px-%E7%AB%99%E5%A8%98.%E5%AE%A2%E6%88%B7%E7%AB%AF.png

媒体文件(缩略图)的相对路径
*
{{urlencode: 字符串 }}

{{urlencode: 字符串 | QUERY }}
{{urlencode: 字符串 | WIKI }}
{{urlencode: 字符串 | PATH }}

{{urlencode: x:y/z á é }}

{{urlencode: x:y/z á é | QUERY }}
{{urlencode: x:y/z á é | WIKI }}
{{urlencode: x:y/z á é | PATH }}

x%3Ay%2Fz+%C3%A1+%C3%A9

x%3Ay%2Fz+%C3%A1+%C3%A9
x:y/z_%C3%A1_%C3%A9
x%3Ay%2Fz%20%C3%A1%20%C3%A9

将字符串编码成URL 注意:没有urldecode
代码 空格
QUERY +
WIKI _
PATH %20
*
{{anchorencode: 字符串 }}
{{anchorencode: x y z á é }} x_y_z_á_é 将字符串编码成URL锚点(URL的#之后的部分)
*与mediawiki.org表现不一致

名称空间

{{ns:}}返回该序号,规范名称,本地别名代表的当前服务器设置的本地化名称,因此在Fgo.wiki{{ns:6}}{{ns:File}}{{ns:Image}}{{ns:文件}}{{ns:图像}}{{ns:档案}}都会返回文件
在一个内容语言是法语的wiki上{{ns:Fichier}}也是有效的,但是{{ns:文件}}不是。
{{nse:}}和他表现一致,除了空格会被替换成_使其能在外部链接中使用

序号 规范名称,本地别名 本地化名称
0
1 讨论
对话
talk
讨论
2 用户
user
用户
3 用户讨论
用户对话
user_talk
用户讨论
4 mooncell
project
Mooncell
5 mooncell讨论
project_talk
Mooncell讨论
6 文件
图像
档案
image
file
文件
7 文件讨论
image_talk
图像对话
图像讨论
档案对话
档案讨论
文件对话
file_talk
文件讨论
8 mediawiki MediaWiki
9 mediawiki讨论
mediawiki_talk
MediaWiki讨论
10 模板
template
模板
11 模板讨论
模板对话
template_talk
模板讨论
12 帮助
help
帮助
13 帮助讨论
帮助对话
help_talk
帮助讨论
14 分类
category
分类
15 分类讨论
分类对话
category_talk
分类讨论
102 属性
property
属性
103 属性讨论
property_talk
属性讨论
108 概念
concept
概念
109 概念讨论
concept_talk
概念讨论
112 smw/schema smw/schema
113 smw/schema_talk smw/schema talk
114 rule Rule
115 rule_talk Rule talk
274 widget Widget
275 widget_talk Widget talk
828 模块
module
模块
829 模块讨论
module_talk
模块讨论
2300 gadget Gadget
2301 gadget_talk Gadget talk
2302 gadget_definition Gadget definition
2303 gadget_definition_talk Gadget definition talk
2600 topic Topic
3000 样板 样板
3001 样板讨论 样板讨论
3002 月之背面 月之背面
3003 月之背面讨论 月之背面讨论
3004 用户diy内容 用户DIY内容
3005 用户diy内容讨论 用户DIY内容讨论
-2 媒体文件
媒体
media
媒体文件
-1 特殊
special
特殊
帮助:魔术字/buildNamespacesTable.js生成

注意:不要将自定义名称空间与本地别名混淆

格式化

用法 输入 → 输出 描述
{{formatnum: 未被格式化的数字 }}

{{formatnum: 未被格式化的数字 | R }}
{{formatnum: 页面名 | NOSEP }}

  • 普通:
    • {{formatnum: 987654321.654321 }}
      →987,654,321.654321
    • {{formatnum: 987,654,321.654321 | R }}
      →987654321.654321
  • 高级:
    • {{formatnum: {{formatnum: 987654321.654321 }} | R }}
      →987654321.654321(在任何语言都会这样)
    • {{formatnum: 00001 }}
      →00,001
    • {{formatnum: 987654321.654321 | NOSEP }}
      →987654321.654321
    • 孟加拉语(Bengali numerals)例子[1]
      • {{formatnum: 987654321.654321 }}
        →৯৮,৭৬,৫৪,৩২১.৬৫৪৩২১
      • {{formatnum: 987654321.654321 | NOSEP }}
        →৯৮৭৬৫৪৩২১.৬৫৪৩২১
      • {{formatnum:৯৮,৭৬,৫৪,৩২১.৬৫৪৩২১ | R }}
        →987654321.654321
接受一个未被格式化的数(阿拉伯数字,没有组分隔符和.作为小数分隔符),输出成wiki默认语言的数并使用十进制数位分隔符进行格式化。

|R参数用于反转这一行为,以便用于数学运算。这是可靠的而且应该仅用于反格式化那些已知是由wiki语言环境用formatnum格式化的数。
NOSEP参数表示没有数位分隔符被变化,formatnum将会只变化没有使用阿拉伯数字系统的数字。NOSEP也会阻止不标准的数位分隔
第一个非0数字之前的0不会被移除,你应该用{{#expr:00001}}
如果你没有输入正确的数字格式,不要期待可靠的输出,特别是在非英文wiki上

不支持的:

{{formatnum:{{formatnum:987.654.321}}}}
→987 654 321(例如 在意大利语的mediawiki)[2]

如果你真的需要格式化(基于本地wiki语言)一个不知道格式的数字,你应该尝试用formatnum两次 (but not if it can have a decimal group, or its separator will be eaten or the number won't be formatted),但要注意的是这个输出可能是不可靠的,因为这不是一个常规的处理方法
错误输入(输出不可靠)的例子,有或者没有| R
  • {{formatnum: 987,654.321 | R }}
  • {{formatnum: 987.654,321 | R }}
  • {{formatnum: 987 654,321 | R }}
  • {{formatnum: 987 654,321 | R }}
{{lc: 英文字符 }} {{lc: DATA CENTER }}
→data center
将输入全部变为小写
{{lcfirst: 英文字符 }} {{lcfirst: DATA CENTER }}
→dATA CENTER
将输入的第一个字符变为小写
{{uc: 英文字符 }} {{uc: text transform }}
→TEXT TRANSFORM
将输入全部变为大写
{{ucfirst: 英文字符 }} {{ucfirst: text transform }}
→Text transform
将输入的第一个字符变为大写
{{padleft: 字符串 | 字符串长度 }}

{{padleft: 字符串 | 字符串长度 | 字符 }}
{{padleft: 字符串 | 字符串长度 | 字符串 }}

{{padleft: xyz | 5 }}
→00xyz

{{padleft: xyz | 5 | _ }}
→__xyz
{{padleft: xyz | 5 | abc }}
→abxyz
{{padleft: xyz | 2 }}
→xyz
{{padleft: | 1 | xyz }}
→x(xyz的第一个字符)

将填充字符(字符由第三个参数确定,默认为0)插入到字符串左侧(第一个参数),将字符串填充到特定长度(第二个参数)。[3]例如:{{padleft: 44 | 3 | 0 }}返回044。填充字符(串)将会被截断如果填充字符串长度不能将需要的长度均分。

{{padright: 字符串 | 字符串长度 }}

{{padright: 字符串 | 字符串长度 | 字符 }}
{{padright: 字符串 | 字符串长度 | 字符串 }}

{{padright: xyz | 5 }}
→xyz00

{{padright: xyz | 5 | _ }}
→xyz__
{{padright: xyz | 5 | abc }}
→xyzab
{{padright: xyz | 2 }}
→xyz
{{padright: | 1 | xyz }}
→x(xyz的第一个字符)

与padleft一样,但是会在右侧添加填充字符

本地化

似乎用不到,摸了 原文

嵌入修改器(Transclusion modifiers)

{{ 页面名 | 参数 }}通常用于嵌入另一个页面,默认从模板名称空间嵌入。这些魔术字修改这个行为。

用法   描述
{{:页面名}} 一个单独的冒号不是模板的修饰符,而是主名称空间的前缀。由于默认从模板名称空间嵌入,比如你需要用{{:UTC}}(而不是{{UTC}})来包含主名称空间的UTC页面而不是嵌入 模板:UTC
{{int:页面名}} 与{{MediaWiki:页面名}}相同,除了基于子页面和内容/用户/用户语言的语言设置进行标准信息转换。另一个不同是:它不会出现在:“该页面使用的模板:”下 ,如果{{MediaWiki:页面名}}不存在,就输出成⧼页面名⧽。参见 帮助:系统信息
{{msg:页面名}}
{{raw:页面名}}
即使有一个叫做"页面名"的魔术字,嵌入 模板:页面名 除非不存在这个模板。通常,当出现这个冲突时魔术字有更高的优先级。
{{raw:页面名}} 如果$wgEnableScaryTranscluding被启用了,而且这是一个跨wiki嵌入,包含wikitext而不是html
{{msgnw:页面名}} 输出未展开的wikitext,参见Help:Templates#Usage
{{subst:页面名}} 在wikitext中,标签被替换成内容,参见Help:Templates#Usage
{{safesubst:页面名}} 参见Help:Templates#Usage

杂项

用法 输出  描述
{{#language:语言代码 }}

{{#language:ar }}

语言代码

العربية

返回语言代码在对应语言中的完整名称
{{#special: 特殊页面名 }}

{{#special: 版本 }}

特殊:特殊页面名

特殊:版本

返回指定特殊页的本地化名称
{{#speciale: 特殊页面名 }}

{{#speciale: 版本 }}

%E7%89%B9%E6%AE%8A:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2%E5%90%8D

%E7%89%B9%E6%AE%8A:%E7%89%88%E6%9C%AC

返回指定特殊页的URL编码后的本地化名称
{{#tag:标签名称 |内容 |属性1=值1 |属性2=值2 }} xml风格的mediawiki 解析器标签或拓展标签的另一种写法。它允许a ore-save transform of wiki code和解析器函数在标签被处理之前就在标签里。他也能阻止未被执行的标签被解析(比如在#if种)。第一个参数被放置在标签中,之后的参数作为属性和值。例子:

<标签名称 属性1="值1" 属性2="值2">内容</标签名称> 可以被这样重写:
{{#tag:标签名称 | 内容 | 属性1=值1 | 属性2=值2 }}
例如<ref>标签
{{#tag:ref | 注释内容(支持解析器函数和魔术字) | name="123" }}

  1. 这三个例子中的前两个未被测试,但是原文这么写了。第三个例子我试了一下,不能用,大概要在孟加拉语的mediawiki上试
  2. 实际上在本站返回的是987.654.321
  3. 实际上,英文表述是先创建一个确定长度的填充字符串,再把被填充字符替换到末尾