|
|
第351行: |
第351行: |
|
| |
|
| <code><nowiki><onlyinclude></onlyinclude></nowiki></code>使用这个时,只有在这两个之间包含的内容嵌入到页面中。这个标记优先级大于<code><nowiki><includeonly></nowiki></code>。 | | <code><nowiki><onlyinclude></onlyinclude></nowiki></code>使用这个时,只有在这两个之间包含的内容嵌入到页面中。这个标记优先级大于<code><nowiki><includeonly></nowiki></code>。 |
|
| |
| == 解析器函数 ==
| |
| === #expr ===
| |
| 使用下面这个函数计算并返回数学表达式的结果。
| |
| <code><nowiki>{{#expr: 表达式 }}</nowiki></code>
| |
| 使用布尔代数时,0表示false,其他任何非0数值(无论正负)均表示true。
| |
|
| |
| 空表达式返回空值,错误的表达式返回错误信息。
| |
|
| |
| 置于数字前的加减号会被视为正负号而不会报错。
| |
|
| |
| 以下是支持的运算符。
| |
|
| |
| 运算符的说明参见[https://meta.wikimedia.org/wiki/Help:Calculation meta-wiki]
| |
| {| class="wikitable"
| |
| |-
| |
| ! 类型
| |
| ! 运算符号
| |
| |-
| |
| | 分组
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>( )</code>
| |
| |-
| |
| | 数字
| |
| | <code>'''1234.5'''</code> <code>'''e'''</code> (2.718) <code>'''pi'''</code> (3.142)
| |
| |-
| |
| |
| |
| | 二进制操作者<code>'''e'''</code> 一元 <code>'''+'''</code>,<code>'''-'''</code>
| |
| |-
| |
| | Unary
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>not ceil trunc floor abs exp ln sin cos tan acos asin atan</code>
| |
| |-
| |
| | rowspan="3" | 二进制
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>^</code>
| |
| |-
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>* / div mod</code>
| |
| |-
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>+ -</code>
| |
| |-
| |
| | 取整
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>round</code>
| |
| |-
| |
| | rowspan="3" | 逻辑
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>= != <> > < >= <=</code>
| |
| |-
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>and</code>
| |
| |-
| |
| | style="word-spacing: 0.5em; font-weight: bold;" | <code>or</code>
| |
| |}
| |
| === #if ===
| |
| 此函数判断一个字符串是否为空。'''只包含半角空格的字符串被视为空字符串''',这意味着,全角空格( )是不被当做空字符串的。
| |
| <code><nowiki>{{#if: 字符串 | 空值返回 | 非空值返回 }}</nowiki></code>
| |
| 当字符串是空值时返回第二个参数,当字符串不是空值时返回第三个参数。
| |
| 当字符串填写参数来判断是否赋值时,需要添加管道符:
| |
| <code><nowiki>{{#if: {{{参数名|}}} | 空值返回 | 非空值返回 }}</nowiki></code>
| |
| 返回值不一定需要填写可以为空,这样就不会返回内容。这对于下面判断类型的解析器函数一致适用。
| |
|
| |
| === #ifeq ===
| |
| 此函数判断两个输入字符串是否相同,并根据结果输出两个字符串的其中一个。如果需要更多的比较和输出字符串,请考虑使用<code>#switch</code>。
| |
| <code><nowiki>{{#ifeq: 字符串1 | 字符串2 | 相同返回 | 不相同返回 }}</nowiki></code>
| |
| 注意:区分大小写。
| |
| === #switch ===
| |
| 此函数将一个输入值与多个测试用例进行比较,如果找到匹配项,则返回关联的字符串。
| |
| <code><nowiki>{{#switch: 输入值
| |
| | 值1 = 输入值是值1时返回的内容
| |
| | 值2 = 输入值是值2时返回的内容
| |
| | 当找不到一样的值时返回的内容 }}</nowiki></code>
| |
| 还有一种高级的用法可以支持更多功能。
| |
| <code><nowiki>{{#switch: 1
| |
| | {{#ifexpr: 表达式 | 1 | 0 }} =
| |
| | {{#if: 页面 | 1 | 0 }} = 返回值1
| |
| | {{#ifeq: 字符串1 | 字符串2 | 1 | 0 }} = 返回值2 }}</nowiki></code>
| |
| === #iferror ===
| |
| 此函数以一个字符串为输入,然后在两条预选结果中取其一而返回。
| |
| <code><nowiki>{{#iferror: 字符串 | error返回 | correct返回 }}</nowiki></code>
| |
| 这个函数可以认定解释器函数和模板等的错误。
| |
| <code><nowiki>{{#iferror: {{#expr: 表达式 }} | error | correct }}</nowiki></code>
| |
| 与其他不同的是,如果不填写correct返回的内容,那么correct返回的内容会是被测字符串本身。
| |
| === #ifexpr ===
| |
| 此函数会判断数学表达式并根据其布尔值结果返回对应的字符串。
| |
| <code><nowiki>{{#ifexpr: 表达式 | true返回 | false返回 }}</nowiki></code>
| |
| === #ifexist ===
| |
| 此函数将一组字符串作为输入,并翻译成页面标题,然后根据在本地wiki上是否存在该页面而返回对应的值。
| |
| <code><nowiki>{{#ifexist: 页面名 | 存在时返回 | 不存在时返回 }}</nowiki></code>
| |
|
| |
| === #rel2abs ===
| |
| 此函数将相对文件路径转换为绝对文件路径。
| |
| <code><nowiki>{{#rel2abs: 转换后的页面路径 | 转换前的页面路径 }}</nowiki></code>
| |
| 在前面一个参数中,有两种参数会进行转换。
| |
| {| class="wikitable"
| |
| |-
| |
| | <code><nowiki>.</nowiki></code> || 当前级别
| |
| |-
| |
| | <code><nowiki>..</nowiki></code> || 上一级
| |
| |}
| |
| 例如:
| |
| {| class="wikitable"
| |
| |-
| |
| ! 转换的页面 !! 转换前 !! 转换后
| |
| |-
| |
| | <code><nowiki>用户:用户名/sandbox/模板:测试</nowiki></code> ||<code><nowiki>./style.css</nowiki></code> || <code><nowiki>用户:用户名/sandbox/模板:测试/style.css</nowiki></code>
| |
| |-
| |
| | <code><nowiki>用户:用户名/sandbox/模板:测试</nowiki></code> ||<code><nowiki>../style.css</nowiki></code> || <code><nowiki>用户:用户名/sandbox/style.css</nowiki></code>
| |
| |}
| |
| === #time ===
| |
| 此解析器函数需要日期和/或时间,并根据给定的语法设置其格式。可以指定日期/时间对象;默认值是魔法词的值,即页面最后呈现到 HTML 的时间。
| |
| === #timel ===
| |
| 当<code>local</code>参数设置为<code>true</code>时,此函数与<code>#time</code>相同,因此它始终使用 wiki 的本地时间。
| |
| === #titleparts ===
| |
| 此函数根据斜杠将页面标题分隔为段,然后返回其中一些段作为输出。
| |
| <code><nowiki>{{#titleparts: 页面路径 | 要返回的段数 | 第一个返回段 }}</nowiki></code>
| |
|
| |
|
| == 表格 == | | == 表格 == |