Help:扩展

Rotaeno-miss.png
来自Rotaeno中文维基

参见: mw:Category:Extensions


本帮助文档是关于如何在Rotaeno中文维基使用扩展特性的说明。

自1.18版本开始,MediaWiki的可下载版本默认随附了一些捆绑的扩展和皮肤,参考mw:Bundled_extensions_and_skins。具体内容可在特殊:版本查看。

页面状态指示器

页面状态指示器是显示在主要内容之外的图标或短文本片段,可提供有关页面状态的快速信息。 例如,你可以在本页面标题右侧看到一个形状为Rotaeno-miss.png的指示器。 详见mw:Help:Page_status_indicators/zh

语言转换器

一些语言有多套书写系统。<langconvert>标签支持访问语言转换器, 要求fromto属性为同一语言的BCP 47代码。 详见mw:Writing_systems/zh

维基文本 渲染
<langconvert from="zh-Hans" to="zh-Hant">汉语</langconvert>

漢語

<langconvert from="sr-Latn" to="sr-Cyrl">Srpski</langconvert>

Српски

引述

引述可以让在页面中加入脚注。

引述引入了两个解析器标签,用<ref />标签插入脚注文本,用<references />标签指定脚注位置。

可以插入多个<references />标签,标签之前组号相同的所有<ref />都会插入到这里。 如果没有<references />标签,那么参考引述(无组号脚注)仍会显示在页面结尾,其余不显示。

建议不要在模板中使用<references />标签。

说明 维基文本 渲染
太阳很大。<ref>E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref> 然而月亮不大。<ref>R. Smith, "Size of the Moon", ''Scientific American'', 46 (April 1978): 44–46.</ref>

参考资料:

<references />

太阳很大。[1] 然而月亮不大。[2]

参考资料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
  2. R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44–46.
使用<ref name="name">复用脚注。用相同的name区分脚注。只有首个标签内的文本起作用。

注意name属性使用的标识符必须要有字母字符,以数字开头会报错。建议名称保持简单并限制为ASCII字符集。

这是多个引用使用一个脚注的例子。<ref name="multiple">记住当你多次引用相同的脚注时,会使用第一个引用中的文本。</ref>

有多个语句来自同一個的来源时,这種引用特別有用。<ref name="multiple" /> 任何复用标签都不应该包含额外文本,否则会产生错误。 仅使用空标签。

进行多次引用的简洁方法是使用空的ref标签,在末尾加上斜杠。
尽管这样子减少繁杂工作,但是请注意,如果以后有个编辑者移除了第一个引用,后面使用空的ref标签的引用都会丢失。<ref name="multiple" />

注:

<references />

这是多个参考使用一个脚注的例子。[1]

有多个语句来自相同来源时,这样引用来源会特別有用。[1] 任何复用标签都不应该包含额外文本,否则会产生错误。 仅使用空标签。

进行多次引用的简洁方法是使用空的ref标签,在末尾加上斜杠。 尽管这样子减少繁杂工作,但是请注意,如果以后有个编辑者移除了第一个引用,后面使用空的ref标签的引用都会丢失。[1]

注:

  1. 1.0 1.1 1.2 记住当你多次指向相同的脚注时,会使用第一个引用中的文本。
使用<references group="group" />为脚注分组,生成单独的引用列表。

注意group属性使用的标识符必须要有字母字符,以数字开头会报错。建议名称保持简单并限制为ASCII字符集。

科学家称,太阳很大。<ref>E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref> 事实上,非常大。<ref group="footnotes"> 相信他们的话。 千万不要直视太阳!</ref>

脚注:

<references group="footnotes" />

参考资料:

<references />
科学家称,太阳很大。[1] 事实上,非常大。[footnotes 1]

脚注:

  1. 相信他们的话。 千万不要直视太阳!

参考资料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
将部分或全部引述文本移动到<references />标签内,防止大段引述影响阅读。可用于从文本中拆分参考资料。

注意需要自行维护参考的标号和顺序。


太阳很大。<ref name="miller" /> 然而月亮不大。<ref name="smith" />

参考资料:

<references>
<ref name="smith">R. Smith, "Size of the Moon", ''Scientific American'', 46 (April 1978): 44–46.</ref>
<ref name="miller">E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref>
</references>

太阳很大。[1] 然而月亮不大。[2]

参考资料:

  1. E. Miller, The Sun, (New York: Academic Press, 2005), 23–25.
  2. R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44–46.
使用<ref follow="name">为具名脚注追加参考文献内容。
这是将多个文本合并到相同脚注的例子。<ref name="main">记住所有的文本都会包含在含有name="…"属性的参考中。</ref>

<ref follow="main">在带有follow="…"属性的标签内,简单包含额外文本,并符合第一个参考的名称。</ref>

参考资料:

<references/>

这是将多个文本合并到相同脚注的例子。[1]


参考资料:

  1. 记住所有的文本都会包含在含有name="…"属性的参考中。 在带有follow="…"属性的标签内,简单包含额外文本,并符合第一个参考的名称。

替换引用和嵌入解析器函数

由于Cite的<ref />标签是在MediaWiki的解析器函数(如{{#ifexpr:…}})、变量(如{{PAGENAME}})或subst:之前解析的,因此在引述的参考内不会起效果。 反之,你应该使用魔术字{{#tag:…}}才对。

维基文本 结果
Foo<ref>这不起作用,参见{{subst:#time:Y-m-d|now}}</ref> bar baz…
Foo{{#tag:ref|而这样就会起作用,参见{{subst:#time:Y-m-d|now}}}} bar baz…
<references />

Foo[1] bar baz… Foo[2] bar baz…

  1. 这不起作用,参见{{subst:#time:Y-m-d|now}}
  2. 而这样就会起作用,参见2024-04-19

解析器函数

#expr

使用下面这个函数计算并返回数学表达式的结果。

{{#expr: 表达式 }}

使用布尔代数时,0表示false,其他任何非0数值(无论正负)均表示true。

空表达式返回空值,错误的表达式返回错误信息。

置于数字前的加减号会被视为正负号而不会报错。

以下是支持的运算符。

运算符的说明参见metawikimedia:Help:Calculation

类型 运算符号
分组 ( )
数字 1234.5   e (2.718)   pi (3.142)
二进制操作者e 一元 +,-
Unary not ceil trunc floor abs exp ln sin cos tan acos asin atan
二进制 ^
* / div mod
+ -
取整 round
逻辑 = != <> > < >= <=
and
or

#if

此函数判断一个字符串是否为空。只包含半角空格的字符串被视为空字符串,这意味着,全角空格 是不被当做空字符串的。

{{#if: 字符串 | 空值返回 | 非空值返回 }}

当字符串是空值时返回第二个参数,当字符串不是空值时返回第三个参数。 当字符串填写参数来判断是否赋值时,需要添加竖线:

{{#if: {{{参数名|}}} | 空值返回 | 非空值返回 }}

返回值不一定需要填写可以为空,这样就不会返回内容。这对于下面判断类型的解析器函数一致适用。

#ifeq

此函数判断两个输入字符串是否相同,并根据结果输出两个字符串的其中一个。如果需要更多的比较和输出字符串,请考虑使用#switch

{{#ifeq: 字符串1 | 字符串2 | 相同返回 | 不相同返回 }}

注意:区分大小写。

#switch

此函数将一个输入值与多个测试用例进行比较,如果找到匹配项,则返回关联的字符串。

{{#switch: 输入值 
 | 值1 = 输入值是值1时返回的内容 
 | 值2 = 输入值是值2时返回的内容
 | 当找不到一样的值时返回的内容 }}

还有一种高级的switch-true用法可以支持更多功能。

{{#switch: 1 
 | {{#ifexpr: 表达式 | 1 | 0 }} =
 | {{#if: 页面 | 1 | 0 }} = 返回值1
 | {{#ifeq: 字符串1 | 字符串2 | 1 | 0 }} = 返回值2 }}

#iferror

此函数以一个字符串为输入,然后在两条预选结果中取其一而返回。

{{#iferror: 字符串 | error返回 | correct返回 }}

这个函数可以认定解释器函数和模板等的错误。

{{#iferror: {{#expr: 表达式 }} | error | correct }}

与其他不同的是,如果不填写correct返回的内容,那么correct返回的内容会是被测字符串本身。

#ifexpr

此函数会判断数学表达式并根据其布尔值结果返回对应的字符串。

{{#ifexpr: 表达式 | true返回 | false返回 }}

#ifexist

此函数将一组字符串作为输入,并翻译成页面标题,然后根据在本地wiki上是否存在该页面而返回对应的值。

{{#ifexist: 页面名 | 存在时返回 | 不存在时返回 }}

#rel2abs

此函数将相对文件路径转换为绝对文件路径。

{{#rel2abs: 相对路径 | 基路径 }}

“相对路径”可以使用以下类型的句法:

  • . → 本级路径
  • .. → 回到上一级
  • /foo → 向下一级进入子目录/foo

“基路径”默认为函数所在页面的绝对路径。

例如,若指定基路径为用户:用户名/sandbox/模板:测试

./style.css用户:用户名/sandbox/模板:测试/style.css
../style.css用户:用户名/sandbox/style.css

#time

此解析器函数需要日期和/或时间,并根据给定的语法设置其格式。可以指定日期/时间对象;默认值是魔法词的值,即页面最后呈现到 HTML 的时间。

{{#time: format string }}
{{#time: format string | date/time object }}
{{#time: format string | date/time object | language code }}
{{#time: format string | date/time object | language code | local }}

#timel

此函数等效于#time函数将local参数设置为true,因此它始终使用 wiki 的本地时间。

#titleparts

此函数根据斜杠将页面标题分隔为段,然后返回其中一些段作为输出。

{{#titleparts: 页面路径 | 要返回的段数 | 第一个返回段 }}

Scribunto

Scribunto扩展可以在wiki中嵌入脚本。

当前唯一被支持的脚本语言是Lua。 Scribunto Lua脚本以模块:为前缀。 模块使用#invoke解析器函数,这也是目前本wiki唯一由扩展引入的解析器函数,例如:

{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}

详见mw:Extension:Scribunto/zh

SimpleMathJax

SimpleMathJax插件提供了在MediaWiki中排版“数学环境”内的TeX公式的方法。详见mw:Extension:SimpleMathJax/zh#示例

维基文本 渲染
<math>\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0
\end{vmatrix}</math>

[math]\displaystyle{ \mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \end{vmatrix} }[/math]

<chem>x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O</chem>

[math]\ce{ x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O }[/math]

语法高亮

使用<syntaxhighlight>扩展标签对源代码提供富文本格式。详见mw:Extension:SyntaxHighlight/zh#参数,目前本wiki的实现不是很好。

维基文本
<syntaxhighlight lang="python" line start="3" highlight="1,5-7">
def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass
</syntaxhighlight>

模板样式

TemplateStyles扩展引入了一个<templatestyles />标签,用于指定wiki页面应该加载的样式表。 将此标签放入模板中可使该模板加载自定义的样式,而无需将样式放入MediaWiki:Common.css

编辑者添加<templatestyles src="[某页面]" />到一个页面,该页面的内容将被解析为 CSS,它被过滤,并通过直接使用或是通过模板嵌入方式,载入到使用了此<templatestyles>标签的页面。

[某页面]必须指定內容模型为“已过滤的CSS”,若页面使用模板:前缀且以.css结尾则无需额外设置内容模型。推荐的模式是把Template:Foo的样式储存在子页面,例如Template:Foo/styles.css

使用时如果缺少前缀,默认使用模板:前缀。例如<templatestyles src="Foo/styles.css" />将会载入Template:Foo/styles.css

<templatestyles />标签应该被放置在使用样式的内容前面,例如在模板的最上方。这是为了避免页面载入时只有部分被渲染而发生无样式内容闪烁的可能性。

详见mw:Extension:TemplateStyles/zh