This page is a translated version of the page Help:Magic words and the translation is 97% complete.
Outdated translations are marked like this.
PD 注意:當您編輯本頁面時,即同意以CC0協議授權您的貢獻。您可以在公有領域帮助页面找到更多信息。 PD

魔术字是MediaWiki软件所识别的特定字符串,它们可以返回特定的值或触发其他的功能:比如时间、站点设置或是页面名称等等。此页面只解释标准魔术字的用法;开发人员请参考Manual:魔术字

魔术字有三种常规类型:

变量和解析器函数可以像模板一样使用subst:。无论这个魔术字是通过被引用的模板添加的或者被包含的系统消息中添加的,依赖页面的魔术字均将(默认)正常解析或者返回当前页面的数据。

状态开关

状态开关可以控制页面(只要受皮肤支持)的显示方式或其他行为。它往往用于排除或加入特定的页面内容。这些魔术字中,有一部分不受Minerva皮肤支持。

文字 描述 版本
目录
__NOTOC__ 隐藏目录(TOC)。
__FORCETOC__ 强制于默认位置(第一个章节标题上方,忽略__NOTOC__的设置)显示目录。 此魔术字对于在文章内容外展示目录的皮肤(比如Vector 2022)不起作用。
__TOC__ 在魔术字的位置插入目录(忽略__NOTOC__的设置)。 多次使用时,目录会出现在文章中第一次出现该魔术字的位置。 此魔术字对于在文章内容外展示目录的皮肤(比如Vector 2022)不起作用。
编辑
__NOEDITSECTION__ 隐藏章节标题旁的编辑链接。这个特别有用,当章节标题在模板中被创建时,普通的编辑链接将会把用户带到编辑模板代码界面,这与用户的直觉不符。 在模板中使用它将扩充对模板嵌入页面的影响,以及任何包含在同一页面的其他模板。 可能有解决方法
__NEWSECTIONLINK__ 在非讨论页顶端“编辑”标签右侧加入一个按钮,用于在页面结尾加入新的章节(参见在页面末尾加入新章节)。
1.7
__NONEWSECTIONLINK__ 移除讨论页顶端“编辑”右侧的加入新章节链接。
1.15
r47522
分类
__NOGALLERY__ 用于分类页面。不显示分类中所包含文件的缩略图,而以普通链接代替。
1.7
__HIDDENCAT__ 用于分类页面。加入后此分类成为隐藏分类,将不会显示在其成员及子分类页面的分类列表中(可以通过参数设置中的选项强制显示)。
1.13
__EXPECTUNUSEDCATEGORY__ 用於分类页面,使其不列於Special:UnusedCategories
1.33
语言转换
__NOCONTENTCONVERT__
__NOCC__
在语言有不同变体时(如中文简体和繁体),不对当前页面进行字词转换。比如只显示中文,而不是显示大陆简体、台湾繁体、新加坡简体和香港繁体。
__NOTITLECONVERT__
__NOTC__
在语言有不同变体时(如中文简体和繁体),不对当前页面进行标题转换(其他内容照常转换)。
其他
__START__ 无影响。 曾用于指向不应被嵌入的注释之后开始的数据库消息。 已在r1695被移除,并在r24784被彻底移除
1.10
r1610
__END__ 明确标记条目的结尾,来防止MediaWiki移除文末的空格。 19213中移除。
1.1 – 1.8
__INDEX__ 允许搜索引擎检索本页(忽略$wgArticleRobotPolicies 的参数设置但并无法忽略robots.txt)。服从$wgExemptFromUserRobotsControl 的设定。
1.14
__NOINDEX__ 禁止搜索引擎检索本页(比如不可在搜索引擎列出指定页面)。服从变量$wgExemptFromUserRobotsControl 的设定。
1.14
r37973
__STATICREDIRECT__ 用于一些重定向页面。当有人移动页面并勾选“更新所有指向原始标题的重定向”时,禁止MediaWiki更新本页的重定向(需要变量$wgFixDoubleRedirects )。
1.13
r37928
__EXPECTUNUSEDTEMPLATE__ 用於模板頁面,使其不列於Special:UnusedTemplates

如果此開關不打算與模板內容一同嵌入,則應包裹在‎<noinclude>...‎</noinclude>內(或包裹在模板文件頁的‎<includeonly>...‎</includeonly>內),類似於模板分類。 See Help:模板 .

If the switch is intended to remove from the report all pages that transclude a given template (for example, a notice that is transcluded on testcases or sandbox subpages), put the switch inside ‎<includeonly>...‎</includeonly> tags within the template page.

1.43
Gerrit change 1064007
来自扩展
扩展 文字 描述 版本
GlobalUserPage __NOGLOBAL__ 禁用全域用户页。 如果在中心用户页放置,这将阻止其在远程wiki上显示,并决定在远程wiki页面上链至相关用户页的链接应为红链还是蓝链。
1.28
Disambiguator __DISAMBIG__ 标记消歧义页面。
1.21
Wikibase (client) __EXPECTED_UNCONNECTED_PAGE__ 部分wiki页面不应该有维基数据项目,比如讨论页存档、模板子页面等。要防止某一wiki页面被列入Special:UnconnectedPages,请在页面的任何地方使用该魔术字。不符合维基数据关注度准则的页面不应该有维基数据项目。
1.37.0
DiscussionTools __ARCHIVEDTALK__ 从存档页面上的讨论中隐藏“回复”链接。
1.39
Gerrit change 738221
__NOTALK__ 使讨论命名空间中的页面不被视为讨论页面。
1.39
Gerrit change 903247
ProofreadPage __EXPECTWITHOUTSCANS__ 一些维基文库内容页面由列表组成(例如同一作品的版本或翻译列表),因此没有扫描。为了防止这些页面在Special:PagesWithoutScans中列出,请在页面中插入这个魔术字。
1.43.0-wmf.4
Gerrit change 1026897
Wikibase (client) {{NOEXTERNALLANGLINKS}} A magic word and a parser function which when invoked, will disable the Wikibase extension for a specific page, or used with parameters can suppress specific interlanguage links produced by the extension. When active, only interlanguage links present in the wikitext are used.

变量

变量 可以返回关于当前页面、wiki站点或日期的信息。变量的语法与模板类似。其中标记为“[高开销]”的变量会被软件记录,且在一个页面中可使用的总数会被限制。

如果某一模板名与变量名重复,软件会自动将其解释为变量(因此若你要嵌入Template:PAGENAME這個模板,你就需要去写 {{Template:PAGENAME}})。 部分情况下,添加参数会迫使解析器调用模板;例如,写{{CURRENTDAYNAME|x}}会导致嵌入Template:CURRENTDAYNAME,而不是变量。

日期和时间

以下的变量返回当前的日期和UTC时间。

在MediaWiki与浏览器缓存的影响下,这些变量显示的往往是被缓存的值,而非当前的时间。

使用这些变量会使页面被缓存的时间变得更短,这可以通过 MagicWordFactory 设置。

日期和时间魔术字被格式化为相应的语种。自1.19版本开始,它们取决于页面内容语言

变量 输出 描述 版本
{{CURRENTYEAR}} 2024
{{CURRENTMONTH}}

{{CURRENTMONTH2}}

11 月(补足前导的0)
{{CURRENTMONTH1}} 11 月(无前导的0)
{{CURRENTMONTHNAME}} 11月 月份名称
{{CURRENTMONTHNAMEGEN}} 11月 月份(属格
{{CURRENTMONTHABBREV}} 11月 月份(缩写)
1.5
{{CURRENTDAY}} 2 今天是几日(不补齐0)
{{CURRENTDAY2}} 02 今天是几日(以0补齐)
1.6
{{CURRENTDOW}} 6 周内一日(无填充),0(即星期日)到6(即星期六)
{{CURRENTDAYNAME}} 星期六 周内一日(名称)
时间
{{CURRENTTIME}} 05:29 时间(24小时制HH:mm的格式)
{{CURRENTHOUR}} 05 小时(24小时制有前置0的数字)
其他
{{CURRENTWEEK}} 44 第几周(数字)
{{CURRENTTIMESTAMP}} 20241102052956 YYYYMMDDHHmmss时间戳
1.7
{{CURRENTDATE}}不是魔术字,但是可能是模板

以下变量与上述变量作用相同,但是使用的是网站服务器配置时间或$wgLocaltimezone

  • {{LOCALYEAR}}
  • {{LOCALMONTH}}
  • {{LOCALMONTH1}}
  • {{LOCALMONTH2}}
  • {{LOCALMONTHNAME}}
  • {{LOCALMONTHNAMEGEN}}
  • {{LOCALMONTHABBREV}}
  • {{LOCALDAY}}
  • {{LOCALDAY2}}
  • {{LOCALDOW}}
  • {{LOCALDAYNAME}}
  • {{LOCALTIME}}
  • {{LOCALHOUR}}
  • {{LOCALWEEK}}
  • {{LOCALTIMESTAMP}}

如果需要更详尽的时间格式,或是在輸出目前年份和星期時更好的遵守ISO-8601,您可以在安装Extension:解析器函數 后使用#time 解释器函数。

技术元数据

变量 输出 描述 版本
站点
{{SITENAME}} MediaWiki 维基网站的名称($wgSitename )。
{{SERVER}} //www.mediawiki.org 域名URL$wgServer )。
{{SERVERNAME}} www.mediawiki.org 子域名和域名(自版本1.17后不再取决于$wgServerName )。
{{DIRMARK}}

{{DIRECTIONMARK}}


输出这个wiki默认语言所使用的Unicode文本方向控制字符(从左到右书写的语言使用&lrm;,反之使用&rlm;),这在多方向文本中很有用。它取决于页面语言
1.7
r14442
{{ARTICLEPATH}} /wiki/$1 相关文章路径($wgArticlePath )。
{{SCRIPTPATH}} /w 脚本相对路径($wgScriptPath )。
{{STYLEPATH}} /w/skins 样式相对路径($wgStylePath )。
1.16
{{CURRENTVERSION}} 1.44.0-wmf.1 (fbc8c4f) 此维基站点的MediaWiki版本。
1.7
r14199
{{CONTENTLANGUAGE}}

{{CONTENTLANG}}

en

en

默认界面语言($wgLanguageCode )。
1.7
r14661
页面
{{PAGEID}} 191162 返回页面标识符(页面ID)
1.20
Gerrit change 9858
{{PAGELANGUAGE}}
{{#language:{{PAGELANGUAGE}}}}
zh
中文
返回当前页面的语言。此变量返回的语言代码可使用{{#language:...}}转换为语言名。
1.29
Gerrit change 330982
{{TRANSLATABLEPAGE}} Help:Magic words 如果某个页面是可翻译的(包括已翻译的页面),则返回翻译页面(其他语言的翻译来源页面)的标题;如果该页面不可翻译,则不返回任何内容。
1.41.0-wmf.8
Gerrit change 913677

<translate><!--T:1--> Translated unit. Language: <tvar name=lang>{{TRANSLATIONLANGUAGE}}</tvar>.</translate>

<translate><!--T:2--> Untranslated unit. Language: <tvar name=lang>{{TRANSLATIONLANGUAGE}}</tvar>.</translate>

已翻译单元。语言:zh。

Not translated unit. Language: en.

必须用于存在翻译的页面,在‎<translate>标签内部。 返回当前翻译单元的语言代码。 在翻译页面中,若此单元已被翻译,则返回此翻译的语言。 否则,返回源语言。 此变量返回的语言代码可使用{{#language:...}}转换为语言名。 只应由翻译管理员使用。
1.36.0-wmf.8
Gerrit change 603472
{{PROTECTIONLEVEL:操作}} 输出当前页面对于特定行为(比如edit,move)的保护级别(autoconfirm或sysop等)。若未保护则返回空字符串。
1.15
r45587
{{PROTECTIONEXPIRY:操作}} 根据给出的动作(如edit、move),返回当前页面的保护信息(例如:时间戳“20160418155030”,或“infinity”) 如果未被保护,则会返回"infinity"。
1.27
Gerrit change 255717
{{CASCADINGSOURCES}} [高开销] 返回当前页面上的任意连锁保护操作来源。除非存在自我嵌入,否则页面将不会返回其各自标题。
1.23
Gerrit change 104999
查看当前页面的历史版本号(最近一次编辑版本或是选定的旧版本)
{{REVISIONID}} - 唯一修订ID。 在預覽中恆為空白,因此能用來顯示僅限於預覽時的錯誤訊息。 可能在守財奴模式(所有的WMF維基)中被停用,若不是在預覽中改為回傳-
1.5
{{REVISIONDAY}} 27 最近一次编辑的日期(无前导0)。
1.8
{{REVISIONDAY2}} 27 最近一次编辑的日期(前导0)
1.8
{{REVISIONMONTH}} 10 最近一次编辑的月份(1.17+有前导0,较早版本没有前导0)。
1.8
{{REVISIONMONTH1}} 10 最近一次编辑的月份(没有前导0)。
1.17
r66200
{{REVISIONYEAR}} 2024 最近一次编辑的年份
1.8
{{REVISIONTIMESTAMP}} 20241027034716 最近一次编辑的时间戳。
1.8
{{REVISIONUSER}} FuzzyBot 编辑相关内容的用户或预览编辑内容的用户的用户名。
1.15
r48149
{{REVISIONSIZE}} 85474 当前查看的页面版本或预览的大小(维基文本)。
1.22
Gerrit change 82650
影响页面内容
{{DISPLAYTITLE:标题}}
{{DISPLAYTITLE:标题|noerror}}
{{DISPLAYTITLE:标题|noreplace}}
设置当前页面的显示标题 格式,这是页面标题通常显示的内容。 除非$wgRestrictDisplayTitle 设置为false,否则该值必须等同于默认标题:仅允许对标题的某些部分(而不是全部)进行大写更改,并允许用下划线替换空格。 这可以通过$wgAllowDisplayTitle 启用或禁用。

可以使用第二个参数noerror或是noreplace,用来在当有多个标题在一个页面使用时,阻止产生错误消息,或是在页面中的前面已经指定了了一个displaytitle的情况下,使此displaytitle失效。

1.7
1.24
Gerrit change 144870

(对于noerror和noreplace)

{{DEFAULTSORT:排序关键字}}
{{DEFAULTSORTKEY:排序关键字}}
{{DEFAULTCATEGORYSORT:排序关键字}}
{{DEFAULTSORT:排序关键字|noerror}}
{{DEFAULTSORT:排序关键字|noreplace}}
在为页面分类时使用,用来设置当前页面默认的分类排序关键字。 例如当你将{{DEFAULTSORT:Smith, John}}放到页面John Smith的结尾,该页面在分类页面上的列表中将默认排到“S”项下。 可以使用第二个参数noerror或是noreplace,用来在当有多个默认排序关键字在一个页面使用时,阻止产生错误消息,或是在页面中的前面已经指定了了一个defaultsort的情况下,使此defaultsort失效。
1.10
1.19
r96767

(对于noerror和noreplace)

本地化

變數 輸出 描述 版本
{{USERLANGUAGE}} zh 使用者語言。 (If $wgParserEnableUserLanguage is enabled, it is disabled by default.)
Note: Currently not supported by Parsoid Page View. If using Parsoid Page View or if $wgParserEnableUserLanguage is disabled, the magic word will return the same result as {{PAGELANGUAGE}}.
1.43
Gerrit change 508295

统计

这些变量返回的数字往往包含分隔符(根据本地语言参数设置而可能是逗号或空格)。可以通过“:R”来返回无分隔号的数字(例如{{NUMBEROFPAGES}} → 1,736,558和{{NUMBEROFPAGES:R}} → 1736558)。

对于PAGESINCATEGORY等需要参数的变量则使用“|R”(例如{{PAGESINCATEGORY:Help}}{{PAGESINCATEGORY:Help|R}}{{PAGESINCATEGORY:Help|subcats}}{{PAGESINCATEGORY:Help|subcats|R}})。 也适用于上述{{PAGESIZE:页面名称}}

返回数字的魔术字数字格式取决于内容语言的设定。自1.19开始,它取决于页面内容语言

变量 输出 描述 版本
{{NUMBEROFPAGES}} 1,736,558 wiki页面数量
1.7
{{NUMBEROFARTICLES}} 63,283 内容命名空间 中,作为条目的页面个数。 参见手册:$wgArticleCountMethod 获得详情。
{{NUMBEROFFILES}} 2,761 上传文件的个数。
1.5
{{NUMBEROFEDITS}} 6,713,867 维基编辑的数量
1.10
r21319
{{NUMBEROFVIEWS}} 页面浏览次数。通常对使用缓存的wiki无效。 在Gerrit change 150699被删除。
1.14 – 1.24
r42721
{{NUMBEROFUSERS}} 18,012,985 注册用户数量
1.7
{{NUMBEROFADMINS}} 137 管理员(sysop) 用户数。
1.7
{{NUMBEROFACTIVEUSERS}} 839 活跃用户总数,基于Special:Statistics中使用的标准。
1.15
r47392
{{PAGESINCATEGORY:分类名称}}
{{PAGESINCAT:分类名称}}
159
159
[高开销] 指定分类中的页面总数(包括子类和文件)。Category:帮助 在此用于演示)
1.13
r32932
{{PAGESINCATEGORY:分类名称|all}}
{{PAGESINCATEGORY:分类名称|pages}}
{{PAGESINCATEGORY:分类名称|subcats}}
{{PAGESINCATEGORY:分类名称|files}}
159
156
3
0
[高开销] 返回指定分类的:
  • 所有页面数
  • 所有非分类页和非文件页数
  • 所有子分类页数
  • 所有文件页数

Category:帮助 在此用于演示)

1.20
Gerrit change 12790
{{NUMBERINGROUP:用户组}}
{{NUMINGROUP:用户组}}
22
22
特定用户群组 中的用户总数 (bureaucrat用于演示)
1.14
r40116
{{PAGESINNS:索引编号}}
{{PAGESINNAMESPACE:索引编号}}
未启用 [高开销] 指定命名空间中的页面总数。(将“索引编号”替换成相关命名空间编号)。 例如{{PAGESINNAMESPACE:14}}返回分类页面总数。{{PAGESINNS:0}}{{NUMBEROFARTICLES}}不同之处在于包括重定向页面和消除歧义页面。 默认禁用,可以通过$wgAllowSlowParserFunctions 设置启用。
1.7

页面名称

变量 对于当前页面 描述 版本
{{FULLPAGENAME}} Help:Magic words/zh 命名空间与完整页面标题(包括子页面级别)。
1.6
{{PAGENAME}} Magic words/zh 不包含命名空间的完整页面标题(包括子页面级别)。
{{BASEPAGENAME}} Magic words 页面标题,不包括当前子页面标题及命名空间。 在Help:Title/Foo/Bar頁面返回Title/Foo
1.7
{{ROOTPAGENAME}} Magic words 获得当前页面的根页名。 在Help:Title/Foo/Bar頁面返回Title
1.22
{{SUBPAGENAME}} zh 子頁面標題。 在Help:Title/Foo/Bar頁面返回Bar

如果子頁面不存在將會回傳{{PAGENAME}}的值。

如果需要使用更多匹配的话,请使用解析器函数擴充功能{{#titleparts:}}

1.6
{{SUBJECTPAGENAME}}
{{ARTICLEPAGENAME}}
Help:Magic words/zh
Help:Magic words/zh
获得该页面的完整页面名。对讨论页十分有用。
1.7
{{TALKPAGENAME}} Help talk:Magic words/zh 关联讨论页的完整页面名称
1.7

这些变量不受 {{DISPLAYTITLE:xxxx}} 影响,它们都会按原来的页面标题计算返回值。

{{BASEPAGENAME}}{{SUBPAGENAME}}这两个魔术字只在启用了子页面模式的命名空间才生效。关于启用子页面模式请看$wgNamespacesWithSubpages

1.15+之后,以上魔术字可以接受一个参数,用于指定特定页面,来代替要处理的当前页面设定:

  • {{PAGENAME:Template:Main Page}} → Main Page
  警告: 如果页面标题包含存在“.”或“..”的任意部分,魔术字什么都不会返回。
{{PAGENAME:one/./three}}不会返回任何东西。
  警告: 页面标题如果包括特定字符,例如:单引号'、星号*, 会导致以上魔术字会有不正常的处理结果,如:{{PAGESINCATEGORY:{{PAGENAME}}}}。参见:T16779, T18474, T37628, T37746。一种简单的修复方法是使用解析器函数扩展{{#titleparts:}}来处理标题。

URL 編碼後的頁面名稱

以下是在MediaWiki URL中的等价编码(就是空格替换为下划线,以及使用数字字符编码的一些HTML溢出字符):

  • {{FULLPAGENAMEE}}
  • {{PAGENAMEE}}
  • {{BASEPAGENAMEE}}
  • {{SUBPAGENAMEE}}
  • {{SUBJECTPAGENAMEE}}
  • {{ARTICLEPAGENAMEE}}
  • {{TALKPAGENAMEE}}
  • {{ROOTPAGENAMEE}}

注意{{PAGENAME:...}}{{PAGENAMEE:...}}{{urlencode:...}}有不同的实现方式。 详情请见Manual:PAGENAMEE encoding

命名空间

变量 输出 描述 版本
{{NAMESPACE}} Help 页面的命名空间的名称 (除去主空间)
{{NAMESPACENUMBER}} 12 页面所在命名空间的ID
1.20
Gerrit change 4056
{{SUBJECTSPACE}}
{{ARTICLESPACE}}
Help
Help
相关联的内容命名空间的名称
1.7
{{TALKSPACE}} Help talk 相关联的讨论命名空间的名称
1.7

以下是在MediaWiki URL中的的等价编码(空格替换为下划线,一些字符替换为百分号编码):

  • {{NAMESPACEE}}
  • {{SUBJECTSPACEE}}
  • {{ARTICLESPACEE}}
  • {{TALKSPACEE}}

1.15+开始,这些可以是完整页面名参数,并将返回与那个页面相关的请求命名空间,而不是在当前页面中:

  • {{NAMESPACENUMBER:MediaWiki}}0
  • {{NAMESPACE:MediaWiki}} ((主)空间中的页面将返回空白)
  • {{NAMESPACE:Template:Main Page}}Template
  • {{SUBJECTSPACE:Template talk:Main Page}}Template
  • {{ARTICLESPACE:Template talk:Main Page}}Template
  • {{TALKSPACE:Template:Main Page}}Template talk

参数必须不是一个命名空间名称:

  • {{SUBJECTSPACE:Help talk}} → ' (空)

Escaped characters

MediaWiki interprets certain characters as markup separators in certain contexts, notably:

  • template invocations
  • tables
  • function calls.

To prevent an immediate interpretation (so that the character can be displayed literally or later interpreted as a separator), Template:Character can be used as an escape sequence, but only the following characters (replacements) are supported. This form can be clearer or at least shorter than using the equivalent <nowiki>character</nowiki> .

Syntax 输出 描述 版本
{{!}} |

用于在模板或者是表格内插入管道符号。在被添加为魔术字之前,许多wiki通过创建$1(内容为$2)来实现。

For historical/technical reasons, this is not an escape sequence properly speaking. The syntax uses a resembling character, the exclamation mark, instead of the vertical bar.

有关更多说明,请参见幫助:扩展:解析器函數#在表格中逸出的管道符

Before this was added as a magic word, many wikis implemented this by creating Template:! with | as the content.

1.24
Gerrit change 136234
{{=}} =

用于在模板参数或表格的单元格内容中插入等于号。

有关更多说明,请参见幫助:扩展:解析器函數#原始等号

在被添加为魔术字之前,许多wiki通过创建Template:=(内容为=)来实现。

1.39
Gerrit change 791685

解析器函数

解析器函数 与变量相似,但需要一个或多个参数(技术上讲,任何需要参数的魔术字都是解析器函数),并且名称有时以井号(hash)开头,以与模板区分开来。

此页面只描述MediaWiki软件中重要的解析器函数。其他MediaWiki软件可能添加的解析器函数包括Extension:解析器函數 等,请参见Help:Extension:解析器函數

另一页面的技术元数据

解析器函数 输出
(使用MediaWiki进行示范)
描述 版本
{{PAGEID: 页面名称 }} 1 [高开销] 返回指定页面*的页面标识符。
1.23
Gerrit change 76534
{{PAGESIZE:页面名称}}
{{PAGESIZE: 页面名称 |R}}
107,602
107602
[高开销] 返回特定页面的字节大小。使用“|R”获取原始(未处理)数值。
1.13
r33551
{{PROTECTIONLEVEL:操作 | 页面名称}} sysop [高开销] 输出当前页面对于特定行为(比如edit,move)的保护级别(autoconfirm或sysop等)。若未保护则返回空字符串。
1.21
r44683
{{PROTECTIONEXPIRY: 操作 | 页面名称}} infinity [高开销] 根据给出的动作(如edit、move),返回当前页面的保护信息(例如:时间戳“20160418155030”,或“infinity(无限期)”) 如果未被保护,则会返回"infinity(无限期)"。
1.27
Gerrit change 255717
{{CASCADINGSOURCES: page name}} [高开销] 返回在特定页面上任意连锁保护的来源。页面将不会返回其本身标题,除非页面有自我嵌入行为。
1.23
Gerrit change 104999
{{REVISIONID: 页面名称 }} 6287429 [高开销] 当前页面的最新更改的ID。
1.23
Gerrit change 76534
{{REVISIONDAY: 页面名称 }} 29 [高开销] 指定页面的最新更改的天* (未补全的数字)。
1.23
Gerrit change 76534
{{REVISIONDAY2: 页面名称 }} 29 [高开销] 指定页面的最新更改的天* (以0补全的数字)。
1.23
Gerrit change 76534
{{REVISIONMONTH: 页面名称 }} 12 [高开销] 指定页面的最新修改的月* (在1.17+中为以0补全的数字,在之前的版本里为未补全的数字)。
1.23
Gerrit change 76534
{{REVISIONMONTH1: 页面名称 }} 12 [高开销] 指定页面的最新修改的月* (未补全的数字)。
1.23
Gerrit change 76534
{{REVISIONYEAR: 页面名称 }} 2023 [高开销] 指定页面的最新修改的年*。
1.23
Gerrit change 76534
{{REVISIONTIMESTAMP: 页面名称 }} 20231229181425 [高开销] 指定页面的最新修改的时间截*。
1.23
Gerrit change 76534
{{REVISIONUSER: 页面名称 }} Tropicalkitty [高开销] 指定页面的最新修改的用户名*。
1.23
Gerrit change 76534
*当提供的参数等于当前解析器标题,在预览时以及在替换使用时解析器函数将产生上一版本的,如果是在创建新页面的预览,则会产生空字符串,但页面浏览时,会使用来自已查看版本的值,包括浏览旧版本时。这种情况下它并非高开销解析器函数。

URL数据

解析器函数 输入 → 输出 描述 版本
{{localurl:页面名称}}
{{localurl:页面名称
|请求参数}}
{{localurl:MediaWiki}}
→ /wiki/MediaWiki
{{localurl:MediaWiki|printable=yes}}
→ /w/index.php?title=MediaWiki&printable=yes
至標題的相對路徑。
{{fullurl:页面名称}}
{{fullurl:页面名称
|请求参数}}

{{fullurl:跨维基前缀:另一维基上的页面名称
|请求参数}}
{{fullurl:Category:Top level}}
→ //www.mediawiki.org/wiki/Category:Top_level

{{fullurl:Category:Top level|action=edit}}
→ //www.mediawiki.org/w/index.php?title=Category:Top_level&action=edit
{{fullurl:s:Electra|action=edit}}
https://en.wikisource.org/wiki/Electra?action=edit
{{fullurl:s:es:Electra|action=edit}}
https://en.wikisource.org/wiki/es:Electra?action=edit

至标题的协议相对路径,基於本地wiki的$wgServer 設定(且不一定會以http(s)://開頭)。这也将解决跨wiki前缀。注意:未加括号的(单一)协议相对链接不会自动链接。
1.5
{{canonicalurl:页面名称}}
{{canonicalurl:页面名称
|请求参数}}

{{canonicalurl:跨维基前缀:另一维基上的页面名称
|请求参数}}
{{canonicalurl:Category:Top level}}
https://www.mediawiki.org/wiki/Category:Top_level

{{canonicalurl:Category:Top level|action=edit}}
https://www.mediawiki.org/w/index.php?title=Category:Top_level&action=edit {{canonicalurl:w:Category:Top level|action=edit}}
https://en.wikipedia.org/wiki/Category:Top_level?action=edit

至标题的绝对路径,使用规范URL。这也将解决跨wiki前缀。
1.18
{{filepath:文件名称}}
{{filepath:文件名称|nowiki}}
{{filepath:文件名称|缩略图大小}}
{{filepath:Wiki.png}}
→ //upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png

{{filepath:Wiki.png|nowiki}}
→ //upload.wikimedia.org/wikipedia/mediawiki/b/bc/Wiki.png
{{filepath:Example.svg|300}}
→ //upload.wikimedia.org/wikipedia/commons/thumb/8/84/Example.svg/300px-Example.svg.png

参数nowiki通常会删除文件路径周围的链接(在本例中看不到)。

媒体文件的完整大小或缩略图(1.18+)的协议相对路径。
1.12
r25854

1.18
r80813
{{urlencode:字符串}}
{{urlencode:字符串|QUERY}}
{{urlencode:字符串|WIKI}}
{{urlencode:字符串|PATH}}
{{urlencode:x:y/z á é}}
{{urlencode:x:y/z á é|QUERY}}
→ x%3Ay%2Fz+%C3%A1+%C3%A9
{{urlencode:x:y/z á é|WIKI}}
→ x:y/z_%C3%A1_%C3%A9
{{urlencode:x:y/z á é|PATH}}
→ x%3Ay%2Fz%20%C3%A1%20%C3%A9

请注意,在1.17中,默认值从|WIKI更改为|QUERY,这可能会破坏依赖此功能的模板。

编码的输入用于URL。请注意,没有像过时的Extension:StringFunctions 中那样的urldecode函数
字符編碼
代码空格
 none + 
QUERY + 
 WIKI _ 
 PATH%20
1.7
r14273
(or
1.17
r64726

1.17
r64726

1.17
r64726
)
{{anchorencode:字符串}} {{anchorencode:x y z á é}}
→ x_y_z_á_é
编码的输入用于URL部分锚点(在URL中的“#”符号之后)。
1.6
r16279

以下是在MediaWiki URL中的的等价编码(一些字符替换为百分号编码):

  • {{localurle:页面名称}}
  • {{localurle:页面名称|请求参数}}
  • {{fullurle:页面名称}}
  • {{fullurle:页面名称|请求参数}}
  • {{fullurle:跨维基前缀:另一维基上的页面名称|请求参数}}
  • {{canonicalurle:页面名称}}
  • {{canonicalurle:页面名称|请求参数}}
  • {{canonicalurle:跨维基前缀:另一维基上的页面名称|请求参数}}

命名空间

{{ns:}}使用该索引,规范名称或本地别名返回命名空间的当前本地化名称。 因此,{{ns:6}}{{ns:File}}{{ns:Image}}(文件命名空间的旧名称)都将返回“File”。 在内容语言为法语的wiki上,{{ns:Fichier}}也有效,但{{ns:Datei}}(德语中“文件”的本地化)无效。

主命名空间没有名称,即{{ns:0}}返回一个空字符串。 对于显式引用主命名空间,可以使用{{int:Blanknamespace}},从而得到“(主)”。

{{nse:}}是MediaWiki URL的等效编码。它也是这样,但它用下划线替换空格,使其可用于外部链接。

内容命名空间 讨论名字空间
用法 输出 用法 输出
{{ns:-2}} / {{ns:Media}} Media {{ns:-1}} / {{ns:Special}} Special
(no talk page)
{{ns:0}} / {{ns:}} {{ns:1}} / {{ns:Talk}} Talk
{{ns:2}} / {{ns:User}} User {{ns:3}} / {{ns:User talk}} User talk
{{ns:4}} / {{ns:Project}} Project
Varies between wikis
{{ns:5}} / {{ns:Project talk}} Project talk
{{ns:6}} / {{ns:File}} or {{ns:Image}} File {{ns:7}} / {{ns:File talk}} or {{ns:Image talk}} File talk
{{ns:8}} / {{ns:MediaWiki}} MediaWiki {{ns:9}} / {{ns:MediaWiki talk}} MediaWiki talk
{{ns:10}} / {{ns:Template}} Template {{ns:11}} / {{ns:Template talk}} Template talk
{{ns:12}} / {{ns:Help}} Help {{ns:13}} / {{ns:Help talk}} Help talk
{{ns:14}} / {{ns:Category}} Category {{ns:15}} / {{ns:Category talk}} Category talk

不要将本地化命名空间与自定义命名空间相混淆。

格式化

用法 输入 → 输出 描述 版本

{{formatnum:未格式化数字}}
{{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
    • 孟加拉字母的例子:
      • {{formatnum:987654321.654321}}
        → ৯৮,৭৬,৫৪,৩২১.৬৫৪৩২১
      • {{formatnum:987654321.654321 |NOSEP}}
        → ৯৮৭৬৫৪৩২১.৬৫৪৩২১
      • {{formatnum:৯৮,৭৬,৫৪,৩২১.৬৫৪৩২১ |R}}
        → 987654321.654321

不被支持的:
{{formatnum:{{formatnum:987.654.321}}}}
→ 987 654 321 (例如与意大利语区域设置)


错误输入(不可靠输出)的示例,有或没有|R
{{formatnum:987,654.321|R}} (这个应该会坏)
{{formatnum:987.654,321|R}}
{{formatnum:987 654,321|R}}
{{formatnum:987&nbsp;654,321|R}}

采用未格式化的数字(例如阿拉伯语数字,没有组分隔符和.作为小数分隔符)并将其输出到本地化的数字脚本中,并使用十进制和十进制组分隔符进行格式化,到页面的语言环境。

|R参数可以用于反转此行为,用于数学运算:这种方法可靠,但只应该用于反向转换与wiki的语言环境相同(原先formatnum会转换到的)的数字。
指定NOSEP(“无分隔符”)参数会使数位分组分隔符和小数点分隔符不被修改,此时 formatnum 只会在不使用印度-阿拉伯数字系统的语言中将数字字符进行转换。 NOSEP还可以阻止意料之外的非标准数字分组。

  警告: 开头的前导零不会被去除,如果你安装了 Extension:解析器函數 则可以使用 {{#expr:00001}} 来去除。

  警告: 如果你没有准确地以需求的数字格式输入,则难以得到任何可靠的输出,尤其是在非英文的维基上。


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

1.7

1.13
r32012

{{#dateformat:date}}
{{#formatdate:date}}
{{#dateformat:date|format}}
{{#formatdate:date|format}}

{{#dateformat:25 dec 2009|ymd}}
→ 25 dec 2009 (您的首选)2009年12月25日(默认)
{{#formatdate:dec 25,2009|dmy}}
→ dec 25,2009 (您的首选)25日12月2009年(默认)
{{#dateformat:2009-12-25|mdy}}
12月 25, 2009 (您的首选)12月25日,2009年(默认)
{{#formatdate:2009 dec 25|ISO 8601}}
→ 2009 dec 25 (您的首选)2009-12-25(默认)
{{#dateformat:25 decEmber|mdy}}
→ 25 decEmber (您的首选)12月25日(默认)
注意:在上述例子中,“您的首选”仅指当前Wiki(也就是 MediaWiki.org)上的日期首选项。

根据用户的"日期格式"参数设置格式化无链接日期,并添加元数据标记为格式化日期。 对于未登入的用户和未在参数设置中设置日期格式的用户,可将日期设为默认值:mdy, dmy, ymd, ISO 8601(区分大小写)。 如果只给出月份和日期,则只有mdydmy有效。 如果未指定格式或格式无效,则默认使用输入格式。 如果所提供的日期未被识别为有效日期(具体来说,如果它包含任何元数据,例如嵌套使用这些模板或类似模板时产生的元),则将保持不变,并且不会生成(额外的)元数据。
  警告: 即使ISO 8601格式要求参数1的日期是公历日期,若参数2指定ISO 8601,函数也能对那些超出通常公历范围的日期进行格式化(例如1583年之前的日期)。不过,函数无法正确转换ISO 8601格式下的负数年份和通常格式下的公元前的年份。
1.15
r48249

{{lc:string}}

{{lc:DATA CENTER}} → data center 小写输入。
1.5

{{lcfirst:string}}

{{lcfirst:DATA center}} → dATA center 输入的内容会强制将首字母小写化。
1.5

{{uc:string}}

{{uc:text transform}} → TEXT TRANSFORM 大写输入。
1.5

{{ucfirst:string}}

{{ucfirst:text tRAnSFORM}} → Text tRAnSFORM 输入的内容会强制将首字母大写化。
1.5

{{padleft:xyz|stringlength}}
{{padleft:xyz|strlen|char}}
{{padleft:xyz|strlen|string}}

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

{{padleft:xyz|5|_}} → __xyz
{{padleft:xyz|5|abc}} → abxyz
{{padleft:xyz|2}} → xyz
{{padleft:|1|xyz}} → x (字符串的首字母)

将参数1通过在左侧补上参数3指定的字符串(默认为0)补足到参数2指定的长度。 例如 {{padleft:44|3|0}} 生成 044。 参数3指定的字符串可能被截断以保证补足后的字符串长度满足要求。

在 1.12 版本以前,第三个参数只使用传入的字符串的第一个字符,但从 1.15 版本以后,第三个参数传入的字符串的所有字符都会被使用。

Bug (在 r45734 修复): 多字节字符(例如中文字符)被解释为两个字符(例如一个中文字符被当成两个字符考虑),它们可能会导致字符串的长度偏斜(比如0000本 本应输出 0000本 但却输出 00本)。多字节字符也不能用作填充字符。

1.8

1.15
r45734

{{padright:xyz|stringlength}}
{{padright:xyz|strlen|char}}
{{padright:xyz|strlen|string}}

{{padright:xyz|5}} → xyz00

{{padright:xyz|5|_}} → xyz__
{{padright:xyz|5|abc}} → xyzab
{{padright:xyz|2}} → xyz
{{padright:|1|xyz}} → x

除了在右侧补上字符串外,其他与padleft一致。
1.8

1.15
r45734

{{bidi:string}}

{{bidi:text transform}} → ‪text transform‬

{{bidi:كتابة عربية}} → ‫كتابة عربية‬

用一个适合脚本的方向性标记(从左到右(U+202A)或从右到左(U+202B))和一个 pop 方向性格式字符(U+202C)包裹文本,以确保在运行文本中混合使用脚本时的方向性安全。

参见:Extension:StringFunctions

本地化

这些是用于本地化工具的魔术字。其他的魔术字经常依赖wiki的本地化和位置,或者其他已选的语言,参见特定的#日期和时间#格式化。更多的魔术字由Extension:翻译 添加。

魔术字的用法会非常复杂,而且文档目前还不完整,PLURALGRAMMARGENDER上有更多信息。

用法 输入 → 输出 描述 版本
{{#language}}
{{#language:语言代码}}
{{#language:语言代码|目标语言代码}}
{{#language:ar}} → العربية
{{#language:ar|en}} → Arabic
以参数2的语言代码指定的语言(没有则以参数1的)输出参数1的语言代码对应的语言全名:默认为本地化名称(语言别名),当指定了目标语言代码时会输出目标语言翻译版本。 如果您需要指定目标语言则必须预先安装 Extension:CLDR If no argument is given, returns the name of the target language (for articles, the content language; for messages, the user language).
1.7
r14490

1.18
r91875
(翻译)
1.43
Gerrit change 1038880
(with no argument)
{{#bcp47}}
{{#bcp47:language code}}
{{#bcp47:sr-ec}} → sr-Cyrl
{{#bcp47:zh-yue}} → yue
指定語言代碼 IETF BCP-47語言標籤。 若未指定參數,則返回「目標語言」的標籤(對於條目,為內容語言;對於訊息,為使用者語言)。
1.43
Gerrit change 1038879
{{#dir}}
{{#dir:language code}}
{{#dir:language code|bcp47}}
{{#dir:en}} → ltr
{{#dir:he}} → rtl
{{#dir:sr-Cyrl|bcp47}} → ltr
指定語言代碼 的書寫方向,必為rtlltr之一。 如果選擇性的參數2填入bcp47,則將第一個參數轉換為BCP-47語言標籤。 若未指定參數,則返回「目標語言」的書寫方向(對於條目,為內容語言;對於訊息,為使用者語言)。
1.43
Gerrit change 1032542
{{PLURAL:2|is|are}} {{PLURAL:0|is|are}} → are
{{PLURAL:1*1|is|are}} → is
{{PLURAL:21 mod 10|is|are}} → are
{{PLURAL:{{#expr:21 mod 10}}|is|are}} → is
{{PLURAL:1|is|are}} → is
{{PLURAL:2|is|are}} → are
{{PLURAL:-1|is|are}} → is
{{PLURAL:-2|is|are}} → are
{{PLURAL:0.5|is|are}} → are
{{PLURAL:1.5|is|are}} → are
{{PLURAL:-0.5|is|are}} → are
{{PLURAL:-1.5|is|are}} → are
(用于俄语
{{PLURAL:5|1=Категория|Категории}} → Категории


{{PLURAL:3|страница|страницы|страниц}} → страницы
{{PLURAL:5|страница|страницы|страниц}} → страниц

輸出適合指定語言的複數形式。對於英語,如果第一個參數的絕對值是等於1的表達式,則使用單數形式(第二個參數);否則使用複數形式(第三個參數)。 更完整說明文件,請參見translatewiki.net
一些语言(ab、av、ba、bxr、ce、crh_cyrl、cv、inh、koi、krc、kv、lbe、lez、mhr、mrj、myv、ru、sl、tt_cyrl、tyv、udm、xal)使用3种复数形式(2014年1月最后更新
  • 形式1: 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …
  • 形式2: 0, 5, 6, 7, 8, …, 18, 19, 100, 1000, 10000, 100000, 1000000, …
  • 形式3: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 102, 1002, …
{{GRAMMAR:N|noun}} 根据分号后的词形变化代码输出给定的词的正确的词形变化。语法变形被用于波兰语这样的屈折语。参见$wgGrammarForms translatewiki.net的文法說明文件
1.7
{{GENDER:username|text for every gender}}

{{GENDER:Username|male text|female text|text for unspecified}}
{{GENDER:|male text|female text|text for unspecified}}
{{GENDER:.|male text|female text|text for unspecified}}

(取决于指定用户的性别) 根据指定的用户的Special:Preferences返回该性别对应的文本。

注意:第一个例子基本上啥也没干
注意:如果参数3未给出,且用户未设置TA的性别时将返回text if user is male
空的用户名({{GENDER:|)指代当前用户,但这种方式只能在MediaWiki命名空间下的页面使用。
用户名为点(.)时使用站点默认设置。

1.15
r46247
{{int:消息名称}} {{int:edit}}Edit
(取决于用户语言,可以试试:frja
该解析器函数将会把(MediaWiki命名空间下的)界面消息翻译成用户语言。msgnw和其他嵌套引用魔术字参见嵌入修改器一节。注意在1.17版本以前,这么做会导致缓存一致性被破坏,参见T16404

请注意,这可能会破坏/混淆MediaWiki 1.17及更早版本中的缓存一致性,参见T16404

{{int:editsectionhint|MediaWiki}} {{int:editsectionhint|MediaWiki}}Edit section: MediaWiki 你可以在翻译过程中使用参数。
界面消息里的参数使用 $1、$2、$3 来引用
例如,editsectionhint界面消息的源码为:Edit section: $1
在左侧例子中,MediaWiki 替换了 $1。

嵌入修饰器

{{页面名|可选参数}} 默认从 Template: 命名空间嵌入页面。 这些魔术字会修改此行为。

杂项

參見