Help:扩展
编辑页面正在建设 |
本帮助文档是关于如何在Rotaeno中文维基使用扩展特性的说明。
自1.18版本开始,MediaWiki的可下载版本默认随附了一些捆绑的扩展和皮肤,参考mw:Bundled_extensions_and_skins。具体内容可在特殊:版本查看。
引述
引述可以让在页面中加入脚注。
引述引入了两个解析器标签,用<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 /> |
参考资料: | |
使用<ref name="name"> 复用脚注。用相同的name区分脚注。只有首个标签内的文本起作用。
注意name属性使用的标识符必须要有字母字符,以数字开头会报错。建议名称保持简单并限制为ASCII字符集。 |
这是多个引用使用一个脚注的例子。<ref name="multiple">记住当你多次引用相同的脚注时,会使用第一个引用中的文本。</ref> 有多个语句来自同一個的来源时,这種引用特別有用。<ref name="multiple" /> 任何复用标签都不应该包含额外文本,否则会产生错误。 仅使用空标签。 进行多次引用的简洁方法是使用空的ref标签,在末尾加上斜杠。 尽管这样子减少繁杂工作,但是请注意,如果以后有个编辑者移除了第一个引用,后面使用空的ref标签的引用都会丢失。<ref name="multiple" /> 注: <references /> |
这是多个参考使用一个脚注的例子。[1] 有多个语句来自相同来源时,这样引用来源会特別有用。[1] 任何复用标签都不应该包含额外文本,否则会产生错误。 仅使用空标签。 进行多次引用的简洁方法是使用空的ref标签,在末尾加上斜杠。 尽管这样子减少繁杂工作,但是请注意,如果以后有个编辑者移除了第一个引用,后面使用空的ref标签的引用都会丢失。[1] 注: |
使用<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]
脚注:
参考资料:
|
将部分或全部引述文本移动到<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> |
参考资料: |
使用<ref follow="name"> 为具名脚注追加参考文献内容。
|
这是将多个文本合并到相同脚注的例子。<ref name="main">记住所有的文本都会包含在含有name="…"属性的参考中。</ref> <ref follow="main">在带有follow="…"属性的标签内,简单包含额外文本,并符合第一个参考的名称。</ref> 参考资料: <references/> |
这是将多个文本合并到相同脚注的例子。[1]
参考资料:
|
替换引用和嵌入解析器函数
由于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 /> |
解析器函数
#expr
使用下面这个函数计算并返回数学表达式的结果。
{{#expr: 表达式 }}
使用布尔代数时,0表示false,其他任何非0数值(无论正负)均表示true。
空表达式返回空值,错误的表达式返回错误信息。
置于数字前的加减号会被视为正负号而不会报错。
以下是支持的运算符。
运算符的说明参见meta-wiki
类型 | 运算符号 |
---|---|
分组 | ( )
|
数字 | 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 }}
代码 | 描述 | 当前输出 |
---|---|---|
年 | ||
Y |
4位数年。 | 2024 |
y |
2位数年。 | 24 |
L |
如果是闰年则为1,否则为0。 | 1 |
月 | ||
n |
月指数,非零填充。 | 11 |
m |
月指数,零填充。 | 11 |
M |
月名的缩写,使用网站语言。 | 11月 |
F |
使用网站语言的完整月名。 | 11月 |
一年或一个月内的第几天 | ||
j |
月内的第几天,没有前缀零。 | 22 |
d |
月内的第几天,用前缀零填满两位。 | 22 |
z |
年内的第几天(一月一日视为第0天)。要获得ISO日期值请在此数基础上加1。 | 326 |
周,以及周内的第几天 | ||
W |
ISO 8601周数,有前缀零。 | 47 |
N |
ISO 8601 一周中的某天(星期一为1, 星期日为7)。 | 5 |
w |
一周内的某天(星期日为0,星期六为6)。 | 5 |
D |
星期几的简写。很少国际化。 | 五 |
l |
星期几的全称。很少国际化。 | 星期五 |
小时 | ||
a |
上午(00:00:00 → 11:59:59)返回“am”, 下午(12:00:00 → 23:59:59)返回“pm”。 | pm |
A |
上面的a 项的大写版本。 |
PM |
g |
十二小时制的小时数(无前缀零)。 | 1 |
h |
十二小时制的小时(有前缀零)。 | 01 |
G |
二十四小时制的小时(无前缀零)。 | 13 |
H |
二十四小时制的小时(有前缀零)。 | 13 |
分钟和秒钟 | ||
i |
一小时内已过去的分钟数(有前缀零)。 | 48 |
s |
一分钟内已过去的秒数(有前缀零)。 | 37 |
U |
Unix时间。 自1970年1月1日00:00:00 GMT的秒数。 | 1732283317 |
时区 | ||
e |
时区标识符。 | UTC |
I |
是否使用夏令时。 | 0 |
O |
与格林尼治时间(GMT)的差值 | +0000 |
P |
与格林威治时间(GMT)的差异,带冒号 | +00:00 |
T |
时区缩写。 | UTC |
Z |
时区偏移(秒)。 | 0 |
杂项 | ||
t |
本月日数。 | 30 |
c |
ISO 8601格式化日期,与Y-m-d"T"H:i:s+00:00 等效。 |
2024-11-22T13:48:37+00:00 |
r |
RFC 5332格式化的日期。与D, j M Y H:i:s +0000 等价,但週名和月名可能不是国际化表述。 |
Fri, 22 Nov 2024 13:48:37 +0000 |
#timel
此函数等效于#time
函数将local
参数设置为true
,因此它始终使用 wiki 的本地时间。
#titleparts
此函数根据斜杠将页面标题分隔为段,然后返回其中一些段作为输出。
{{#titleparts: 页面路径 | 要返回的段数 | 第一个返回段 }}
Scribunto
'Scribunto扩展可以在wiki中嵌入脚本。
当前唯一被支持的脚本语言是Lua。 Scribunto Lua脚本以模块:
为前缀。
模块使用#invoke
解析器函数,例如:
{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}
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 />
标签应该被放置在使用样式的内容前面,例如在模板的最上方。这是为了避免页面载入时只有部分被渲染而发生无样式内容闪烁的可能性。