說明:解析器函數
解析器函數與變量相似,但需要一個或多個參數(技術上講,任何需要參數的魔術字都是解析器函數),並且名稱有時以井號(hash)開頭,以與模板區分開來。
#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: 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: 转换后的页面路径 | 转换前的页面路径 }}
在前面一個參數中,有兩種參數會進行轉換。
. |
當前級別 |
.. |
上一級 |
例如:
轉換的頁面 | 轉換前 | 轉換後 |
---|---|---|
用户:用户名/sandbox/模板:测试 |
./style.css |
用户:用户名/sandbox/模板:测试/style.css
|
用户:用户名/sandbox/模板:测试 |
../style.css |
用户:用户名/sandbox/style.css
|
#time
此解析器函數需要日期和/或時間,並根據給定的語法設置其格式。可以指定日期/時間對象;默認值是魔法詞的值,即頁面最後呈現到 HTML 的時間。
#timel
當local
參數設置為true
時,此函數與#time
相同,因此它始終使用 wiki 的本地時間。
#titleparts
此函數根據斜槓將頁面標題分隔為段,然後返回其中一些段作為輸出。
{{#titleparts: 页面路径 | 要返回的段数 | 第一个返回段 }}