說明:解析器函數

出自Arcaea中文维基

解析器函數與變量相似,但需要一個或多個參數(技術上講,任何需要參數的魔術字都是解析器函數),並且名稱有時以井號(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: 页面路径 | 要返回的段数 | 第一个返回段 }}