說明:解析器函式

出自Minecraft基岩版开发Wiki

本頁面主要介紹本Wiki內解析器函式(Parser Functions)(包括由擴充套件(Extensions)透過Parser::setFunctionHook定義)的用途和用法。

格式[編輯]

解析器函式的基本格式為: {{#函数名: 参数1 | 参数2 | ... | 参数n}} 函式名前帶井號,其後由冒號開始依次傳入參數,參數分隔符為管線符「|」;直接傳入值的參數(未命名的參數)以數字依次命名(1、2、3……),其餘有名稱的參數使用等號連接參數名與值(即{{#函数名: 参数名 = 值}})。向頁面中寫入此程式碼後,後台會根據函式名呼叫對應函式並解析內容。解析器函式會優先運算和展開參數內的程式碼,即程式碼的解析順序為由內到外逐一展開。

部分解析器函式不要求函式名前加上「#」,例如{{lc: ABC}}。這使得解析器函式格式更簡單。

部分解析器函式可以設定禁止傳入參數自動展開,也可以強制解析器展開輸出內容,這有助於參數複雜的嵌套函式程式碼非常有用,可以有效減少<nowiki>標籤的使用,精簡程式碼。解析器函式的第一個參數必定會自動被展開,在第一個參數的內容中使用<nowiki></nowiki>通常都會引致非預期的效果,應儘量避免。

三對花括弧表示傳入此頁面的參數,例如:{{{1}}}。其中可填入參數名,參數名可以是數字也可以是字串,數字參數為未命名的參數。參數名後加一個管線符進行分隔,可在管線符右側填寫預設值,例如{{{1|default}}}表示參數1的預設值為「default」這個字串。

解析器函式的所有參數一般會被自動裁剪(即去掉頭尾的空白字元,例如半形空格和換行),如果需要輸入純空白字元的或由空白字元開始或結束的字串,應使用<nowiki></nowiki>包裹輸入的內容。此特性使得參數內容的前後可以隨意加入空格和換行,透過適當使用可以讓排版更整齊易懂。

解析器函式中不能直接使用管線符「|」作為字串輸入,這會導致其被解析為函式語法。若需輸入管線符應使用{{!}},例如: {{#dplreplace: {{{1}}} | mo(d{{!}}b) | text}}

某些函式對「該參數的值為空白」及「缺少該參數」的理解會有差異,導致運算處理和最終輸出出現差錯,需要留意該函式有沒有這種設定。如果函式突然出現不符合預期的輸出,那很有可能是你忘記了對某些特殊字元轉義。

函式[編輯]

anchorencode[編輯]

MediaWiki原生函式。
把輸入的字串轉換成錨點編碼,即網址欄中#號後面的文字。可用於生成錨點連結,但一般情況只需要[[页面名#锚点]]就行了。

格式
{{anchorencode: 锚点字符串 }}
例子
{{anchorencode: 字符串}}字符串
{{anchorencode: ABC文本 def&456+1%}}ABC_文本_def&456+1%

BASEPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的上級頁面名(不含命名空間),例如「Help:Title/foo/bar」會傳回「Title/foo」。

格式
{{BASEPAGENAME: 页面名}}

BASEPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的上級頁面名(不含命名空間),例如「Help:Title/foo/bar」會傳回「Title/foo」。

格式
{{BASEPAGENAMEE: 页面名}}

bidi[編輯]

MediaWiki原生函式。
標記雙向書寫字串。

格式
{{bidi: 字符串}}

canonicalurl[編輯]

MediaWiki原生函式。
取得頁面的完整超連結(包含域名和協定),可以選擇加上請求字串。

格式
{{canonicalurl: 页面名 | 请求字符串}}
例子
{{canonicalurl: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{canonicalurl: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

canonicalurle[編輯]

MediaWiki原生函式。
取得頁面的完整超連結(包含域名和協定),可以選擇加上請求字串。

格式
{{canonicalurle: 页面名 | 请求字符串}}
例子
{{canonicalurle: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{canonicalurle: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

CASCADINGSOURCES[編輯]

MediaWiki原生函式。
傳回特定頁面級聯保護的來源,一般情況並不會傳回自身,除非該頁面內嵌了自身。

格式
{{CASCADINGSOURCES: 页面名}}
例子
{{CASCADINGSOURCES: 首页}} (並不會傳回自己)
{CASCADINGSOURCES: 首页/关于本站}}首页(受到首頁級聯保護)
{{CASCADINGSOURCES: 沙盒}} (並沒有保護)

categorytree[編輯]

來自CategoryTree。
在頁面中生成一個分類樹,顯示效果與分類頁一致(例如「分類:Mojang圖片」),並可以點擊子分類前面的三角形展開子分類下的內容。
另外可以透過各種參數來調整顯示方式和內容:

mode參數
此參數用於篩選在列表中顯示的子分類及頁面,效果會被namespaces參數覆蓋。可用值:
  • categories:列表中只顯示子分類,上限200個。
  • pages:列表中只顯示子分類和頁面,不顯示媒體檔案,上限200個。
  • all(預設值):列表中顯示全部內容,包括子分類、頁面和媒體檔案,上限200個。
  • parents:列表中只顯示父分類。
depth參數
此參數用於限制初始時子分類的最大嵌套顯示深度,若為0則只會顯示最頂級的那一層的分類(即輸入的那個分類)。此參數只會限制初始時自動展開的嵌套層數(不過不管depth輸入了多少,初始最多只會展開1層,也就是說實際上此參數只有0和1兩個有效值),瀏覽時仍然可以透過點擊子分類前面的三角形展開子分類下的內容。
hideroot參數
若把此參數設為「on」(例hideroot=on),你輸入的那個分類則不會被顯示在列表中。
hideprefix參數
此參數用於指定命名空間前綴的顯示方式。可用值:
  • always:隱藏所有前綴,應該只在能確定所有內容頁均來自同一命名空間時才使用。
  • never:顯示所有前綴,分類的前綴也會被顯示。
  • auto:若列表中只包含分類,前綴均會被隱藏,否則將顯示所有前綴。
  • categories(預設值):隱藏分類的前綴,只顯示分類以外的。
showcount參數
若把此參數設為「on」(例showcount=on),所有分類名旁邊均會顯示內含頁面的數量。
namespaces參數
此參數用於按命名空間照篩選在列表中顯示的頁面,參數內容必須是一個以半形空格分隔的命名空間名稱列表(例namespaces=帮助 文件),主空間可以用「-」或「0」表達。此參數會覆蓋mode參數的效果。
class、style、id等參數
此函式支援一般HTML屬性,可以直接為列表加入class和style(例如讓列表顯示在右邊可以用style=float:right;)。
格式
{{#categorytree: 分类名 | 参数1 | 参数2 | ... | 参数n }}
例子
{{#categorytree: 维护 | style = float:right;}} → 效果顯示在右邊
{{#categorytree: 维护 | mode = parents}} → 反向取得父分類
{{#categorytree: 维护 | depth = 0}} → 深度為0,點擊分類前面的三角形展開。
{{#categorytree: 维护 | depth = 0 | hideprefix = never}}
{{#categorytree: 维护 | depth = 0 | showcount = on}} → 顯示內容數量
維護(8 個分類)
{{#categorytree: 维护 | namespaces = 帮助 分类}} → 現在只顯示幫助和分類空間下的頁面(這個例子中的首頁和檔案會被隱藏)

count[編輯]

計算在給定字串中特定子字串出現的次數。子字串為空時會使用單個半形空格為需要搜尋的子字串。需要搜尋特殊字元時可以使用<nowiki></nowiki>標籤。

格式
{{#count: 字符串 | 子字符串 }}
例子
{{#count:3.141592653589793238462643383|3}}7
{{#count:I like playing Minecraft}}3
{{#count:a, b, c, d | ,}}3

DEFAULTSORT[編輯]

MediaWiki原生函式。
設定頁面預設在分類中的排序鍵,設定前預設為頁面名,在加入分類時透過[[分类:分类名|排序键]]可以覆寫這個預設排序鍵。同一頁面裡有兩次DEFAULTSORT的時候會導致報錯,可以使用選項noerror來防止,noreplace則用來防止後面的DEFAULTSORT覆寫前面的DEFAULTSORT。

格式
{{DEFAULTSORT: 排序键 | 选项(noerror或noreplace)}}

DISPLAYTITLE[編輯]

MediaWiki原生函式。
修改頁面顯示的標題,一般用於修正由頁面名符號限制印製的大小寫、底線、空格錯誤。

格式
{{DISPLAYTITLE: 页面标题字符串}}

dowhile[編輯]

來自Loops。
直到型循環。與while類似,但此函式保證運算式至少被解析一次,即在判斷條件之前先進行解析。

格式
{{#dowhile: | 条件 | 表达式}}

注意第一個參數不填。

例子
{{#vardefine: i | 0}}{{#dowhile: | {{#ifexpr: {{#var: i}} < 5 | true}}{{#vardefine: i | {{#expr: {{#var: i }} + 1}}}} | <nowiki/> * {{#var: i}} }} → 按順序生成數字列表。

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5

dpl[編輯]

來自DynamicPageList3。

dplchapter[編輯]

來自DynamicPageList3。
截取一段文字中指定標題下的正文內容。可限制截取文字的最大字元數,如果截取內容超過設定的最大字元數,則會輸出一個指向指定頁面的連結,連結文字可自訂。

格式
{{#dplchapter: 文本 | 标题 | 最大字符数 | 页面名 | 链接文本}}
例子
{{#dplchapter: Some text. ==== My Headline ==== the body of the desired chapter. ==== Another Chapter ==== Its text. | My Headline}}

the body of the desired chapter.

{{#dplchapter: Some text. ==== My Headline ==== the body of the desired chapter. ==== Another Chapter ==== Its text. | My Headline | 15 | 附加包 | .. read more}} }}

→ the body of .. read more

dplmatrix[編輯]

來自DynamicPageList3。
透過縮進列表來生成一個矩陣視圖。矩陣左上角是矩陣名稱,第一行(頂部)和第一列(左側)為各專案的連結,其餘單元格展示專案的對應關係(「是」或「否」)。

格式
該函式有兩個模式:「normal」和「flip」,其中「flip」表示交換行與列。縮進列表透過縮進來解析輸入的專案,源專案(無縮進的專案)由上往下排列在矩陣的第一列,每個源專案下的目標專案(有任意寬度縮進的專案)按字元順序由左往右排列在矩陣的第一行,同時與源專案對應形成「是」關係;透過在專案名後加入「~~」可自訂專案連結文字,文字寫在「~~」後。
{{#dplmatrix: 矩阵名称 | 项目关系为“是”时显示的文本(默认为“x”) | 项目关系为“否”时显示的文本(默认为空) | 模式(默认为“normal”) | 缩进列表}}
例子
{{#dplmatrix: 伤害 |||| 玩家 ~~ Player 熔岩 ~~ Lava 箭 甜浆果丛 末影人 熔岩 ~~ Lava 水 甜浆果丛 僵尸猪灵 箭 甜浆果丛 狐狸 熔岩 ~~ Lava 箭 }} → 生成一個名為「傷害」的5x5大小的矩陣。
傷害 Lava 甜莓灌木叢
Player   x x x
終界使者 x x x  
殭屍化豬布林     x x
狐狸   x   x
{{#dplmatrix: 伤害 | <big>•</big> | . | flip | 玩家 ~~ Player 熔岩 ~~ Lava 箭 甜浆果丛 末影人 熔岩 ~~ Lava 水 甜浆果丛 僵尸猪灵 箭 甜浆果丛 狐狸 熔岩 ~~ Lava 箭 }} → 生成一個反轉行與列的矩陣。
傷害 Player 終界使者 殭屍化豬布林 狐狸
. . .
Lava .
甜莓灌木叢 .
.

dplnum[編輯]

來自DynamicPageList3。
嘗試猜測並提取夾藏在文字中的數字。該函式使用一套啟發式規則,它可能對文字有效,也可能無效。

格式
{{#dplnum: 字符串}}
例子
{{#dplnum:this is 4711 a text with a number}}4711
{{#dplnum:well above 47 Mio. US$}}47000000
{{#dplnum:13 Mrd}}13000000000
{{#dplnum:it is 47,123 Mio}}47123000
{{#dplnum:it is 47.123,56}}47123
{{#dplnum:it is 47,000}}47
{{#dplnum:it is 4.13}}413
{{#dplnum:it is 4,13}}4
{{#dplnum:it is 0,13}}0

dplreplace[編輯]

來自DynamicPageList3。
使用正則運算式匹配一段字串並進行替換。此函式預設對大小寫敏感。

格式
{{#dplreplace: 字符串 | 正则表达式 | 要替换成的字符串}}
例子
{{#dplreplace: Bedrock Edition | /ed([a-z]*)/i | _\1}}B_rock _ition
{{#dplreplace: aBCdefGhIJ | [a-z]}}BCGIJ

dplvar[編輯]

來自DynamicPageList3。
定義或讀取變數的值。

格式
定義一個或多個變數並為其賦值或為已定義的變數賦值:
{{#dplvar: set | 变量1 | 变量1的值 | 变量2 | 变量2的值 | 变量n | 变量n的值}}
設定變數的預設值:
{{#dplvar: default | 变量名 | 默认值}}
讀取指定變數的值:
{{#dplvar: 变量名}}
例子
{{#dplvar: set | a | 1 | b | 2 | c | 3}}{{#dplvar: default | a | aaaa}}{{#dplvar: default | d | dddd}}a={{#dplvar: a}}, b={{#dplvar: b}}, c={{#dplvar: c}}, d={{#dplvar: d}}a=1, b=2, c=3, d=dddd

editcount[編輯]

來自EditCountNeue。
輸出指定使用者在指定頁面命名空間下的編輯量。不填寫頁面命名空間預設輸出該使用者全部頁面的總編輯量。

格式
{{#editcount: 用户名 | 命名空间1 | 命名空间2 | …}}
例子
{{#editcount: Miemie Method}}8895
{{#editcount: Miemie Method | Manual}}2120

explode[編輯]

來自ParserFunctions。
將一個字串用分隔符分割成多段,再傳回指定位置的其中一段,此函式對大小寫敏感。位置編號從0開始(即第一項位置序號為0)。如果位置參數為負數,則從末尾開始計數。分隔符在字串連續出現會導致分割出多個空白段,它們仍對應有位置序號。

格式
{{#explode: 字符串 | 分隔符(默认为空格) | 位置}}
例子
{{#explode: 僵尸,苦力怕,末影人,骷髅 | ,| 2}}末影人
{{#explode: 泥土,箱子,西瓜,草方块 | ,| -1}}草方块
{{#explode: 0 1 2 3 4 5 6 || 5}}5

expr[編輯]

來自ParserFunctions。
用於驗證一個數學運算式,並傳回它的計算值。此函式在Scribunto擴充中也可用,函式名為mw.ext.ParserFunctions.expr

型別 運算子
括弧 ()
數字 1234.5e (2.718) 、 pi (3.142)
科學計數法(二元) e 、 正負號(一元) +-
一元運算子 notceiltruncfloorabsexplnsincostanacosasinatan
二元運算子 ^
*/divmod
+-
四捨五入 round
邏輯運算子 =!=<>><>=<=
and
or
格式
{{#expr: 表达式}}
支援的運算子如右方表格所示,表格從上到下按運算子的計算優先順序排列。
每個運算子的詳細功能見Help:Calculation
計算結果的精度和格式取決於Wiki伺服器的作業系統,和網站語言的數字格式。
例子
當用於計算布林代數值(Boolean algebra)時,零值表示假,任何非零值,無論正負,都表示ture
{{#expr: 1 and -1}}1
{{#expr: 1 and 0}}0
{{#expr: 1 or -1}}1
{{#expr: -1 or 0}}1
{{#expr: 0 or 0}}0
輸入空的運算式會傳回一個空字串。輸入不正確的運算式會傳回其中一個錯誤訊息,錯誤可以被iferror函式捕捉到:
{{#expr: }}
{{#expr: 1+ }}表达式错误:缺少+的操作数。
{{#expr: 1 = }}
{{#expr: 1 foo 2}}表达式错误:无法识别的词语“foo”。
加減運算子在數字之前與之後的意義不同,它們有可能被當作正負號,而不會被當作不正確的運算式:
{{#expr: +1}}1
{{#expr: -1}}-1
{{#expr: + 1}}1
{{#expr: - 1}}-1
魔術字
如果使用魔術字的輸出值,必須使用其原始格式,如:移除所有分割逗號,轉換為數字。
比如{{NUMBEROFPAGES}}輸出的是6,246,但是實際需要的是6246,原始格式可以用{{formatnum:{{NUMBEROFPAGES}}|R}}來得到,詳見formatnum。例子如下:
{{#expr:{{NUMBEROFPAGES}}+100}}表达式错误:无法识别的符号“,”。
{{#expr:{{formatnum:{{NUMBEROFPAGES}}|R}}+100}}6346
日期
若想要進行關於日期的計算(比如:將目前日期與某日期進行比較),首先應將時間轉化為「1970年1月1日之後多少秒」的結構,可以使用{{#time: xNU}}來轉換(詳見time),然後就可以把日期當作數字來進行計算和比較了。
四捨五入
將運算子round左邊的數四捨五入(Rounds),使其小數位數為round右邊的數。
如需進一取整(向上捨入),使用ceil;如需捨去取整(向下捨入),使用floor
例子 結果 捨入方法
{{#expr: 1/3 round 5}} 0.33333 保留5位小數。捨去的部分首位數值<5,則不會進一。
{{#expr: 1/6 round 5}} 0.16667 保留5位小數。捨去的部分首位數值≥5,則進一。
{{#expr: 8.99999/9 round 5}} 1 同上方法,結果是進一得到的。
{{#expr: 1234.5678 round -2}} 1200 此處保留到百位。要保留到小數點左側,應使用負的位數。
{{#expr: 1234.5678 round 2}} 1234.57 此處保留到百分位。要保留到小數點右側,應使用正的位數。
{{#expr: 1234.5678 round 2.3}} 1234.57 位數值如果輸入了帶小數的數值,小數部分不起作用。
{{#expr: trunc 1234.5678}} 1234 保留到整數可以使用trunc
保留到整數的捨入規則:
{{#expr: 1/3 round 0}} 0 保留到最近的整數,向下捨入至零。
{{#expr: 1/2 round 0}} 1 保留到最近的整數,向上捨入至一。
{{#expr: 3/4 round 0}} 1 保留到最近的整數,向上捨入至一。
{{#expr: -1/3 round 0}} -0 保留到最近的整數,向上捨入至零。
{{#expr: -1/2 round 0}} -1 保留到最近的整數,向下捨入至負一。
{{#expr: -3/4 round 0}} -1 保留到最近的整數,向下捨入至負一。
使用ceilfloor時的捨入規則:
{{#expr: ceil(1/3)}} 1 向上捨入至一。
{{#expr: floor(1/3)}} 0 向下捨入至零。
{{#expr: ceil(-1/3)}} -0 向上捨入至零。
{{#expr: floor(-1/3)}} -1 向下捨入至負一。
{{#expr: ceil 1/3}} 0.33333333333333 沒有被捨入處理,因為1就是整數
上述運算式含義為(ceil 1)/3,而不是ceil(1/3),應注意。
字串
運算式只能用於數字值,不能比較字串或者字元。如需比較字串和字元,請使用ifeq。例子:
{{#expr: "a" = "a"}}表达式错误:无法识别的符号“"”。
{{#expr: a = a}}表达式错误:无法识别的符号“a”。
{{#ifeq: a | a | 1 | 0}}1

filepath[編輯]

MediaWiki原生函式。
取得檔案直接存放位置的超連結(包含域名),檔案名無須包含命名空間,可以選擇加上縮略圖寬度要求或<nowiki>標籤防止直接插入圖片。

格式
{{filepath: 文件名 | 参数}}
例子
{{filepath: Inner_Core_icon.png}}https://wiki.mcbe-dev.net/w/images/6/6f/Inner_Core_icon.png
{{filepath: Inner_Core_icon.png | nowiki}}https://wiki.mcbe-dev.net/w/images/6/6f/Inner_Core_icon.png
{{filepath: Inner_Core_icon.png | 60}}https://wiki.mcbe-dev.net/w/thumb.php?f=Inner_Core_icon.png&width=60

forargs[編輯]

來自Loops。
按照指定前綴讀取傳入頁面的參數名及其值,並儲存到變數(可透過Variables擴充套件的var函式來存取)中,然後對每個參數的傳入執行一次給定的運算式。此解析器函式一般用於模板。

格式
{{#forargs: 参数前缀 | 储存参数名的变量 | 储存参数传入值的变量 | 表达式}}
例子
假設在「Template:Loops Test」模板中寫入以下內容:
{{#forargs: arg | key | value | <nowiki/> * {{#var: key}} = {{#var: value}} }}
則在其他頁面呼叫此模板時:
{{Loops Test | arg1 = val1 | spam = spammity | arg5 = val5 | argument = value }} → 輸出「arg」前綴的參數名及其值。
  • 1 = val1
  • 5 = val5
  • ument = value

formatdate[編輯]

MediaWiki原生函式。
將輸入的日期格式化,輸入的日期只接受YYYY-MM-DD(ISO 8601,必須都有前導零)的格式,而輸出則支援各種格式,包括ISO 8601、dmy、mdy和ymd。如果格式化的時候出現錯誤,將會原封不動傳回輸入的日期。

格式
{{#formatdate: 日期 | 格式}}
例子
{{#formatdate: 2009-05-17 | ISO 8601}}2009-05-17
{{#formatdate: 2009-05-17 | dmy}}17 5月 2009
{{#formatdate: 2009-05-17 | mdy}}5月 17, 2009
{{#formatdate: 2009-05-17 | ymd}}2009 5月 17
{{#formatdate: 2009-05-17 | myd}}2009-05-17(不支援的格式)
{{#formatdate: 2009-5-17 | myd}}2009-5-17(輸入不符合ISO 8601,月份缺少前導零)

formatnum[編輯]

MediaWiki原生函式。
將輸入的數字格式化,不輸入格式的話預設為一般逗號分隔(其他語言可能有別)的格式,輸入R會還原成無格式化的形式。此函式並不會去掉前導零,也不會為小數加入前導零。不要輸入數字以外的東西。

格式
{{formatnum: 数字 | 格式}}
例子
{{formatnum: 12345.678}}12,345.678
{{formatnum: 12,345.678 | R}}12345.678
{{formatnum: 00145.678 }}00,145.678
{{formatnum: .678}}.678

fornumargs[編輯]

來自Loops。
讀取傳入頁面的數字參數的值,並儲存到變數(可透過Variables擴充套件的var函式來存取)中,然後對每個參數的傳入執行一次給定的運算式。此解析器函式一般用於模板。

格式
{{#fornumargs: 储存参数序号的变量 | 储存参数传入值的变量 | 表达式 }}
例子
假設在「Template:Loops Test」模板中寫入以下內容:
{{#fornumargs: number | value | <nowiki/> * {{#var: key}} = {{#var: value}} }}
則在其他頁面呼叫此模板時:
{{Loops Test | Block | B = Item | Entity | 5 = World }} → 輸出參數序號和參數值。
  • 1 = Block
  • 2 = Entity
  • 5 = World

FULLPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的頁面全名(包含命名空間)。

格式
{{FULLPAGENAME: 页面名}}

FULLPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的頁面全名(包含命名空間)。

格式
{{FULLPAGENAMEE: 页面名}}

fullurl[編輯]

MediaWiki原生函式。
取得頁面的完整超連結(包含域名),可以選擇加上請求字串。

格式
{{fullurl: 页面名 | 请求字符串}}
例子
{{fullurl: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{fullurl: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

fullurle[編輯]

MediaWiki原生函式。
取得頁面的完整超連結(包含域名),可以選擇加上請求字串。

格式
{{fullurle: 页面名 | 请求字符串}}
例子
{{fullurle: 帮助:解析器函数}}https://wiki.mcbe-dev.net/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{fullurle: 帮助:解析器函数 | action=edit}}https://wiki.mcbe-dev.net/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

gender[編輯]

取得特定使用者的性別,然後根據性別傳回不同的值(男性、女性或未知)。若未輸入未知傳回值,未知時則會傳回男性傳回值。

格式
{{gender: 用户名 | 男性返回值 | 女性返回值 | 未知返回值}}

grammar[編輯]

MediaWiki原生函式。
根據條件為輸入的單詞選擇一個語法正確的變化體。

格式
{{grammar: 条件 | 单词}}

if[編輯]

來自ParserFunctions。
用於判斷一個測試字串是否為空。一個只含有空白字元的字串會被判定為空。

格式
{{#if: 表达式 | 表达式结果非空输出值 | 表达式结果空(或只有空白字符)输出值}}
例子
{{#if: | yes | no}}no
{{#if: string | yes | no}}yes
{{#if:     | yes | no}}no
{{#if:


| yes | no}}
no
最後一個參數(字串空輸出值)可以省略。
{{#if: foo | yes}}yes
{{#if: | yes}}
{{#if: foo | | no}}

ifeq[編輯]

來自ParserFunctions。
用於比較兩個字串是否相同。

格式
{{#ifeq: 表达式 | 比较值 | 相同时输出值 | 不相同时输出值}}
例子
如果兩個字串都是有效的數值,則會按照數值進行比較。
{{#ifeq: 01 | 1 | equal | not equal}}equal
{{#ifeq: 0 | -0 | equal | not equal}}equal
{{#ifeq: 1e3 | 1000 | equal | not equal}}equal
{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}equal
否則會按照文字進行比較,區分大小寫。
{{#ifeq: foo | bar | equal | not equal}}not equal
{{#ifeq: foo | Foo | equal | not equal}}not equal
{{#ifeq: "01" | "1" | equal | not equal}}not equal
{{#ifeq: 10^3 | 1000 | equal | not equal}}not equal
#ifeq#switch的數值比較與使用#expr進行比較不同:
{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}not equal
{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}not equal
因為PHP以整數型比較兩個數字,然而:
{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}equal
因為MediaWiki轉換文字數字為浮點型,對於比較大的整數,會導致末尾被捨去。
在解析器函式內部的標籤和解析器函式(如<nowiki>)會被暫時替換為一個唯一的程式碼。這會影響到比較結果:
{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}not equal
{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}not equal
{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}not equal
{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}equal
如果被比較的字串是由等價呼叫含有這類標籤的同一模板得到的,則值為真;但如果為含有相同的這類標籤的兩個模板,則值為假。

iferror[編輯]

來自ParserFunctions。
用於判斷輸入字串是否為錯誤。如果輸入字串中含有HTML元素包含class="error",則會被當作真,否則為假。
class="error"能由其他解析器函式,如exprtimerel2abs產生,模板(Templates)錯誤,如循環、遞歸和其他解析器也能產生錯誤。

格式
{{#iferror: 字符串 | 为错误时输出值 | 无错误时输出值}}
例子
兩個輸出值可省略其一或兩者都省略。如果「無錯誤時輸出值」被省略了,則當沒有錯誤時,會傳回「字串」的值。如果「為錯誤時輸出值」被省略了,則當有錯誤時,會傳回空字串:
{{#iferror: {{#expr: 1 + 2}} | error | correct}}correct
{{#iferror: {{#expr: 1 + X}} | error | correct}}error
{{#iferror: {{#expr: 1 + 2}} | error}}3
{{#iferror: {{#expr: 1 + X}} | error}}error
{{#iferror: {{#expr: 1 + 2}}}}3
{{#iferror: {{#expr: 1 + X}}}}
{{#iferror: {{#expr: .}} | error | correct}}correct
{{#iferror: <strong class="error">a</strong> | error | correct}}error

ifexist[編輯]

來自ParserFunctions。
此函式將輸入字串當作頁面標題。根據本地Wiki是否存在該標題的頁面,傳回兩個值中的一個。

格式
{{#ifexist: 页面标题 | 页面存在输出值 | 页面不存在输出值}}
例子
此函式當頁面存在時判定為真,不論它是否包含內容,是否為可見空白頁(包含元資料,如分類連結和魔術字(Magic words),但不含可見內容),是否為空白頁,是否為重新導向頁。
只有連結為紅色的頁面(頁面不存在,如「幫助:自動寫程式碼」),才會被判定為假,包括曾經存在但已經被刪除的頁面。
{{#ifexist: 帮助:解析器函数 | exists | doesn't exist}}exists
{{#ifexist: 帮助:自动写代码 | exists | doesn't exist}}doesn't exist
自訂過的系統訊息頁(System message)和由軟體定義的特殊頁(Special pages)會被判定為真。
{{#ifexist: 特殊:监视列表 | exists | doesn't exist}}exists
{{#ifexist: 特殊:用户查核 | exists | doesn't exist}}exists (安裝了CheckUser
{{#ifexist: MediaWiki:Copyright | exists | doesn't exist}}existsMediaWiki:Copyright頁面已被自訂)
如果一個頁面使用該函式來檢查目標頁面是否存在,則該頁面會出現在特殊:鏈入頁面中目標頁面的列表裡。
所以如果本頁面(Help:解析器函式)中存在{{#ifexist:手册:脚本API}},則在特殊:鏈入頁面/手冊:腳本API中,會包含Help:解析器函数
在使用了共享媒體儲存庫(Shared media repository)的Wiki上,該函式還可以用來檢查檔案是否被上傳到指定的儲存庫,而不是Wiki自身。
該函式不對跨Wiki連結起作用。
限制
該函式被認為是一個「高開銷解析器函式」;每個頁面只能包含有限個這樣的函式(包括模板中含的函式)。當超過限制的數量時,任何超出數量的ifexist函式會被自動判定為假,不論目標頁面是否存在。並且頁面會被加入至分類:有過多高開銷解析器函式呼叫的頁面。各個追蹤分類(Tracking categories)的名字在不同語言的Wiki內可能有所不同。

ifexpr[編輯]

來自ParserFunctions。
此函式會計算一個運算式,並根據計算結果的布林值,傳回對應的字串。

格式
{{#ifexpr: 表达式 | 为真输出值 | 为假输出值}}
「運算式」的計算方法和expr完全一樣,可用的運算子也相同。運算結果會被當作一個布林值。
例子
輸入任何空運算式會判斷為假:
{{#ifexpr: | yes | no}}no
expr相同,零值會被判斷為假,任何非零值都會被判斷為真。
兩個輸出值可省略其一或兩者都省略。當輸出值被省略時,會輸出為空。
{{#ifexpr: 1 > 0 | yes}}yes
{{#ifexpr: 1 < 0 | yes}}
{{#ifexpr: 0 = 0 | yes}}yes
{{#ifexpr: 1 > 0 | | no}}
{{#ifexpr: 1 < 0 | | no}}no
{{#ifexpr: 1 > 0}}

int[編輯]

MediaWiki原生函式。
取得特定Message在目前語言中的內容,並可以提供多個參數(各個參數會按順序分別替換掉Message內容中的$1、$2、...和$N),Message可以用擴充套件及Mediawiki命名空間定義。

格式
{{int: Message名称 | 参数1 | 参数2 | ... | 参数N}}
例子
{{int: edit}}編輯
{{int: sunday}}星期日
{{int: mycustomjsprotected}}您沒有權限編輯此 JavaScript 頁面。
{{int: multiarraymap-desc}}⧼multiarraymap-desc⧽
{{int: markedaspatrolledtext}}已標記選擇的修訂 $1 為已巡查。
{{int: markedaspatrolledtext | 首页}}已標記選擇的修訂 首页 為已巡查。
{{int: pipe-separator}} |
{{int: parentheses | ABC括号内容}}(ABC括号内容)(自動生成符合語言的括弧)
{{int: quotation-marks | ABC引号内容}}「ABC引号内容」(自動生成符合語言的引號)
{{int: imgmultipageprev}}← 上一頁

invoke[編輯]

來自Scribunto。
用於呼叫Wiki模組頁面Lua程式碼中的函式,並向其中傳參。詳細內容參見Extension:Scribunto

格式
{{#invoke: 模块名 | 函数名 | 参数1 | 参数2 | … | 参数n}}

language[編輯]

MediaWiki原生函式。
根據輸入的語言代號取得對應的語言全名。

格式
{{#language: 语言代号}}
例子
{{#language: zh}}中文
{{#language: zh-hans}}中文(简体)
{{#language: zh-hant}}中文(繁體)
{{#language: en}}English
{{#language: ja}}日本語

lc[編輯]

MediaWiki原生函式。
把輸入的字串中所有字母變成小寫。

格式
{{lc: 字符串}}
例子
{{lc: ABC}}abc

lcfirst[編輯]

MediaWiki原生函式。
把輸入的字串中第一個字母變成小寫。

格式
{{lcfirst: 字符串}}
例子
{{lcfirst: MINECRAFT}}mINECRAFT

len[編輯]

來自ParserFunctions。
取得字串長度(多字節字元也算作一個字),字串前後的空格和回車均不會計入長度,若輸入的字串中有HTML實體(&nbsp;等),該實體將不會被轉換成一般文字,而是按原形計算。被<nowiki>包裹的內容不會計入長度。

格式
{{#len: 字符串}}
例子
{{#len: Minecraft基岩版}}12
{{#len: &nbsp;}}11
{{#len: <nowiki>;This is a </nowiki>;test}}4

localurl[編輯]

MediaWiki原生函式。
取得頁面的本地超連結(不含域名),可以選擇加上請求字串。

格式
{{localurl: 页面名 | 请求字符串}}
例子
{{localurl: 帮助:解析器函数}}/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{localurl: 帮助:解析器函数 | action=edit}}/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

localurle[編輯]

MediaWiki原生函式。
取得頁面的本地超連結(不含域名),可以選擇加上請求字串。

格式
{{localurle: 页面名 | 请求字符串}}
例子
{{localurle: 帮助:解析器函数}}/p/Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0
{{localurle: 帮助:解析器函数 | action=edit}}/w/index.php?title=Help:%E8%A7%A3%E6%9E%90%E5%99%A8%E5%87%BD%E6%95%B0&action=edit

loop[編輯]

來自Loops。
定義一個初始變數(可透過Variables擴充套件的var函式來存取)及初始值並循環解析給定的運算式,每執行一次變數遞增或遞減1(循環次數為負數時表示遞減),直到循環完成指定次數。

格式
{{#loop: 变量名 | 初始值 | 循环次数 | 表达式}}
例子
{{#loop: i | 3 | 4 | <nowiki/> * {{#var: i}} }} → 按順序從3開始生成數字列表。

  • 3
  • 4
  • 5
  • 6

NAMESPACE[編輯]

MediaWiki原生函式。
取得HTML編碼後的頁面命名空間。

格式
{{NAMESPACE: 页面名}}

NAMESPACEE[編輯]

MediaWiki原生函式。
取得URL編碼後的頁面命名空間。

格式
{{NAMESPACEE: 页面名}}

NAMESPACENUMBER[編輯]

MediaWiki原生函式。
取得頁面命名空間編號。

格式
{{NAMESPACENUMBER: 页面名}}

ns[編輯]

MediaWiki原生函式。
取得命名空間在目前語言中的名稱,可以使用命名空間編號、命名空間名稱、別名取得。

格式
{{ns: 命名空间}}
例子
{{ns: -2}}Media
{{ns: -1}}Special
{{ns: Special}}Special
{{ns: 特殊}}Special
{{ns: 10}}Template
{{ns: 11}}Template talk
{{ns: Category}}Category

nse[編輯]

MediaWiki原生函式。
取得URL編碼後,命名空間在目前語言中的名稱,可以使用命名空間編號、命名空間名稱、別名取得。

格式
{{nse: 命名空间}}

NUMBERINGROUP[編輯]

MediaWiki原生函式。
取得屬於特定群組的人數。

格式
{{NUMBERINGROUP: 群组名称}}
例子
{{NUMBERINGROUP: bureaucrat}}2
{{NUMBERINGROUP: confirm}}0
{{NUMBERINGROUP: sysop}}4

NUMBEROFACTIVEUSERS[編輯]

MediaWiki原生函式。
取得目前活躍的使用者數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFACTIVEUSERS}}

NUMBEROFADMINS[編輯]

MediaWiki原生函式。
取得管理員數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFADMINS}}

NUMBEROFARTICLES[編輯]

MediaWiki原生函式。
取得內容頁面數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFARTICLES}}

NUMBEROFARTICLES[編輯]

MediaWiki原生函式。
取得內容頁面數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFARTICLES}}

NUMBEROFEDITS[編輯]

MediaWiki原生函式。
取得總編輯次數,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFEDITS}}

NUMBEROFFILES[編輯]

MediaWiki原生函式。
取得媒體檔案數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFFILES}}

NUMBEROFPAGES[編輯]

MediaWiki原生函式。
取得所有頁面數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFPAGES}}

NUMBEROFUSERS[編輯]

MediaWiki原生函式。
取得使用者數量,與「特殊:統計資訊」中顯示的一致。

格式
{{NUMBEROFUSERS}}

padleft[編輯]

MediaWiki原生函式。
往字串左邊填充指定字元直到一定長度(多字節字元也算一個字。原字串為空時重複輸出填充字串;如果原字串長度比需要的長度長,則不會做任何處理。

格式
{{padleft: 原字符串 | 需要的长度(字符数) | 填充字符串(默认为0)}}
例子
{{padleft: 15 | 5}}00015
{{padleft: abc | 5}}00abc
{{padleft: 原字符串 | 10 | 填}}填填填填填填原字符串
{{padleft: 原字符串 | 10 | 填充}}填充填充填充原字符串
{{padleft: | 5 | 玩家}}玩家玩家玩
{{padleft: | 7 | 苦力怕}}苦力怕苦力怕苦
{{padleft: 这是一段较长的文本 | 5 | 填}}这是一段较长的文本

padright[編輯]

MediaWiki原生函式。
往字串右邊填充指定字元直到一定長度(多字節字元也算一個字。原字串為空時重複輸出填充字串;如果原字串長度比需要的長度長,則不會做任何處理。

格式
{{padright: 原字符串 | 需要的长度(字符数) | 填充字符串(默认为0)}}
例子
{{padright: 15 | 5}}15000
{{padright: abc | 5}}abc00
{{padright: 原字符串 | 10 | 填}}原字符串填填填填填填
{{padright: 原字符串 | 10 | 填充}}原字符串填充填充填充
{{padright: | 5 | 玩家}}玩家玩家玩
{{padright: | 7 | 苦力怕}}苦力怕苦力怕苦
{{padright: 这是一段较长的文本 | 5 | 填}}这是一段较长的文本

PAGEID[編輯]

MediaWiki原生函式。
取得頁面的編號,該編號是唯一的,可以用來辨別頁面和生成隨機數。

格式
{{PAGEID: 页面名}}

PAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的頁面名(不含命名空間)。

格式
{{PAGENAME: 页面名}}

PAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的頁面名(不含命名空間)。

格式
{{PAGENAMEE: 页面名}}

PAGESINCATEGORY[編輯]

MediaWiki原生函式。
傳回屬於指定分類的專案數量,可以用包含型別來篩選專案型別,可以使用pages(詞條)、subcats(子分類)、files(檔案)和all(全部)。

格式
{{PAGESINCATEGORY: 分类名 | 包含类型(默认为all)}}

PAGESIZE[編輯]

MediaWiki原生函式。
取得頁面的大小,以字節為單位。預設傳回帶格式的數值,格式設定為「R」可以取得未格式化的數值;頁面不存在則傳回0。

格式
{{PAGESIZE: 词条名 | 格式}}
例子
{{PAGESIZE: Molang}}27,330
{{PAGESIZE: Molang | R}}27330

plural[編輯]

MediaWiki原生函式。
若輸入的數字等於1,判定為單數,否則判定為複數,0也算作複數,部分語言還會有第三種情況。

格式
{{plural: 数字公式 | 单数返回值 | 负数返回值 }}
例子
{{plural: 1 | 单数 | 复数}}单数
{{plural: 2 | 单数 | 复数}}复数
{{plural: {{#expr:21 mod 10}} | is | are}}is

pos[編輯]

來自ParserFunctions。
在長字串中尋找一段較短的字串,並傳回其首次出現的位置(左邊開始第一個字是0,由左至右搜尋,需由右至左搜尋請使用rpos),沒有出現則傳回空。也可以透過設定偏移量,讓pos從長字串中第N個字元開始搜尋。pos會把<nowiki>和裡面的內容當作一個長度為1個字元、不匹配任何東西的字串。此函式區分大小寫。

格式
{{#pos: 长字符串 | 搜索字符串 | 偏移量(默认为0)}}
例子
{{#pos: 这是长字符串 | 字符串}}3
{{#pos: 这是长字符串长 | 长}}2
{{#pos: 这是长字符串长 | 长 | 4}}6
{{#pos: 这是长字符串 | 数}}

PROTECTIONEXPIRY[編輯]

MediaWiki原生函式。
查詢頁面對於指定操作的保護狀態的終止時間,有限期則會傳回終止時間的時間戳(例如:「20200401160000」),無限期或沒有保護則傳回「infinity」。操作可以是edit或move。使用第二個參數可以指定頁面名,不指定頁面名的話預設為本頁面。

格式
{{PROTECTIONEXPIRY: 操作 | 页面名}}
例子
{{PROTECTIONEXPIRY: edit}}infinity (沒有保護)
{{PROTECTIONEXPIRY: move}}infinity (沒有保護)
{{PROTECTIONEXPIRY: edit | 首页}}infinity (無限期保護)
{{PROTECTIONEXPIRY: move | 首页}}infinity (無限期保護)

PROTECTIONLEVEL[編輯]

MediaWiki原生函式。
查詢頁面對於指定操作的保護狀態(進行該操作所需的最低權限群組,autoconfirmed、sysop等),操作可以是edit或move,沒有保護則傳回空字串。使用第二個參數可以指定頁面名,不指定頁面名的話預設為本頁面。

格式
{{PROTECTIONLEVEL: 操作 | 页面名}}
例子
{{PROTECTIONLEVEL: edit}}
{{PROTECTIONLEVEL: move}}
{{PROTECTIONLEVEL: edit | 首页}}sysop
{{PROTECTIONLEVEL: move | 首页}}sysop

rel2abs[編輯]

來自ParserFunctions。
將相對路徑轉換為絕對路徑。

格式
{{#rel2abs: 相对路径}}
{{#rel2abs: 相对路径 | 基础路径}}
「相對路徑」支援下列格式:
. → 目前路徑層級
.. → 「至上一級路徑」
/foo → 「至下一級子目錄 /foo」
如果「基礎路徑」沒有被指定,則會使用目前頁面的完整頁面名稱(可使用{{FULLPAGENAME}}獲得,本頁為Help:解析器函数)。
例子
一般情況如下:
{{#rel2abs: /quok | Help:Foo/bar/baz}}Help:Foo/bar/baz/quok
{{#rel2abs: ./quok | Help:Foo/bar/baz}}Help:Foo/bar/baz/quok
{{#rel2abs: ../quok | Help:Foo/bar/baz}}Help:Foo/bar/quok
{{#rel2abs: ../. | Help:Foo/bar/baz}}Help:Foo/bar
/././之類不正確的格式會被忽略。不允許出現連續兩個以上的句點.,多層路徑移動如下:
{{#rel2abs: ../quok/. | Help:Foo/bar/baz}}Help:Foo/bar/quok
{{#rel2abs: ../../quok | Help:Foo/bar/baz}}Help:Foo/quok
{{#rel2abs: ../../../quok | Help:Foo/bar/baz}}quok
{{#rel2abs: ../../../../quok | Help:Foo/bar/baz}}錯誤:無效路徑深度:「Help:Foo/bar/baz/../../../../quok」(嘗試存取根節點以上節點)

replace[編輯]

來自ParserFunctions。
在字串中搜尋某個字串並將其替換成指定的字串。若替換字串為空,則相當於把搜尋到的字串刪除。此函式對大小寫敏感。若要使用特殊字串,請用「<nowiki></nowiki>」

格式
{{#replace: 字符串 | 要搜索的字符串(默认为单个半形空格) | 替换成的字符串}}
例子
{{#replace: Script API}}ScriptAPI
{{#replace: Cut_Copper_Slab | _ | }}CutCopperSlab

REVISIONDAY[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫日,無前導零。

格式
{{REVISIONDAY: 页面名}}
例子
{{REVISIONDAY: 页面名}}3

REVISIONDAY2[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫日,有前導零。

格式
{{REVISIONDAY2: 页面名}}
例子
{{REVISIONDAY2: 页面名}}03

REVISIONID[編輯]

MediaWiki原生函式。
取得頁面目前版本的編號,該編號在全頁面全版本中都是唯一的,且是順序生成的,可用於檢查兩個頁面目前版本的編寫先後。

格式
{{REVISIONID: 页面名}}
例子
{{REVISIONID: 页面名}}23467

REVISIONMONTH[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫月份,有前導零。

格式
{{REVISIONMONTH: 页面名}}
例子
{{REVISIONMONTH: 页面名}}08

REVISIONMONTH1[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫月份,無前導零。

格式
{{REVISIONMONTH1: 页面名}}
例子
{{REVISIONMONTH1: 页面名}}8

REVISIONTIMESTAMP[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫日期時間戳,格式為YYYYMMDDHHMMSS。

格式
{{REVISIONTIMESTAMP: 页面名}}
例子
{{REVISIONTIMESTAMP: 页面名}}20231028070922

REVISIONUSER[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫者的使用者名稱。

格式
{{REVISIONUSER: 页面名}}
例子
{{REVISIONUSER: 页面名}}Miemie Method

REVISIONYEAR[編輯]

MediaWiki原生函式。
取得頁面目前版本的編寫年份。

格式
{{REVISIONYEAR: 页面名}}
例子
{{REVISIONYEAR: 页面名}}2023

ROOTPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的根頁面頁面名(不含命名空間),例如「Help:Title/foo/bar」會傳回「Title」。

格式
{{ROOTPAGENAME: 页面名}}

ROOTPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的根頁面頁面名(不含命名空間),例如「Help:Title/foo/bar」會傳回「Title」。

格式
{{ROOTPAGENAMEE: 页面名}}

rpos[編輯]

來自ParserFunctions。
在長字串中尋找一段較短的字串,並傳回其首次出現的位置(左邊開始第一個字是0,由右至左搜尋,需由左至右搜尋請使用pos),不能設定偏移量,其他特性與pos一致。

格式
{{#rpos: 长字符串 | 搜索字符串}}
例子
{{#rpos: 这是长字符串 | 字符串}}3
{{#rpos: 这是长字符串长 | 长}}6
{{#rpos: 这是长字符串 | 数}}

special[編輯]

MediaWiki原生函式。
取得指定的特殊頁面在目前語言中的全名(包含命名空間)。

格式
{{#special: 特殊页面}}
例子
{{#special: 特殊页面名称}}Special:特殊页面
{{#special: specialpages}}Special:特殊页面
{{#special: userlogin}}Special:用户登录

speciale[編輯]

MediaWiki原生函式。
取得指定的特殊頁面在目前語言中URL編碼後的全名(包含命名空間)。

格式
{{#speciale: 特殊页面名称}}
例子
{{#speciale: 特殊页面}}Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: specialpages}}Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
{{#speciale: userlogin}}Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95

sub[編輯]

來自ParserFunctions。
用於從給定字串中截取子字串。

格式
{{#sub: 原字符串 | 起始位置 | 长度}}
例子
如果「起始位置」為正數(或者為零),則從字串開頭開始(第一個字元位置序號為0),傳回相應的字串:
{{#sub: Minecraft | 3}}ecraft
{{#sub: Minecraft | 0 | 3}}Min
如果「起始位置」為負數,則從字串末尾開始,傳回相應長度的字串:
{{#sub: Minecraft | -3}}aft
「長度」如果出現,並且為正數,則表示傳回字串的最大長度:
{{#sub: Minecraft | 3 | 3}}ecr
如果「長度」為負數,則表示從字串末尾略去幾個字元:
{{#sub: Minecraft | 3 | -3}}ecr
如果「長度」是零,則不會起作用:
{{#sub: Minecraft | 3 | 0}}ecraft
{{#sub: Minecraft | 0 | 3}}Min
如果「起始位置」指定的位置,落在負的「長度」所略去的字元上,則會傳回空字串:
{{#sub: Minecraft | 3 | -6}}(空字串)
此函式相容UTF-8多字節字元,如:
{{#sub: Jon Kågström | 5}}ågström
類似len<nowiki>等標籤擴充套件,不計長度,也不占位置序號,如:
{{#sub: <nowiki>This is a </nowiki>test | 0}}test

SUBJECTPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的關聯頁面的全名(包含命名空間),關聯頁面即討論頁的所屬的頁面。

格式
{{SUBJECTPAGENAME: 页面名}}

SUBJECTPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的關聯頁面的全名(包含命名空間),關聯頁面即討論頁的所屬的頁面。

格式
{{SUBJECTPAGENAMEE: 页面名}}

SUBJECTSPACE[編輯]

MediaWiki原生函式。
取得HTML編碼後的關聯頁面的命名空間,關聯頁面即討論頁的所屬的頁面。

格式
{{SUBJECTSPACE: 页面名}}

SUBJECTSPACEE[編輯]

MediaWiki原生函式。
取得URL編碼後的關聯頁面的命名空間,關聯頁面即討論頁的所屬的頁面。

格式
{{SUBJECTSPACEE: 页面名}}

SUBPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的子頁面的名稱(不含命名空間),例如「Help:Title/foo/bar」會傳回「bar」。

格式
{{SUBPAGENAME: 页面名}}

SUBPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的子頁面的名稱(不含命名空間),例如「Help:Title/foo/bar」會傳回「bar」。

格式
{{SUBPAGENAMEE: 页面名}}

switch[編輯]

來自ParserFunctions。
將輸入值與若干個預設值對比,如果與預設值相匹配,則傳回該預設值對應的輸出字串。

格式
{{#switch: 输入值 | 预设值1 = 对应值1 | 预设值2 = 对应值2 | ... | 预设值n = 对应值n | 默认值 }}
例子
{{#switch: baz | foo = Foo | baz = Baz | Bar}}Baz
{{#switch: foo | foo = Foo | baz = Baz | Bar}}Foo
{{#switch: zzz | foo = Foo | baz = Baz | Bar}}Bar
預設值
在當沒有「輸入值」與「預設值」相匹配時,該函式會傳回「預設值」:
{{#switch: test | foo = Foo | baz = Baz | Bar}}Bar
此語法下「預設值」必須是最後一個參數,並且不能包含等號,需使用等號作為字串或其中一部分請使用{{=}}
{{#switch: test | Bar | foo = Foo | baz = Baz}}
{{#switch: test | foo = Foo | baz = Baz | B=ar}}
「預設值」可以用#default來特別宣告。
{{#switch: 输入值 | 预设值1 = 对应值1 | 预设值2 = 对应值2 | ... | 预设值n = 对应值n | #default = 默认值 }}
用這種方式宣告下的「預設值」可以放在函式內的任何位置:
{{#switch: test | foo = Foo | #default = Bar | baz = Baz}}Bar
如果「預設值」被省略,當沒有相符情況時,不會對應值:
{{#switch: test | foo = Foo | baz = Baz}}
多項匹配
當有多個「預設值」需傳回同一個「對應值」時,每兩個「預設值」之間使用管線符分隔。
{{#switch: 比较字符串 | 预设值1 = 对应值1 | 预设值2 | 预设值3 | 预设值4 = 对应值234 | 预设值5 = 对应值5 | 预设值6 | 预设值7 = 对应值67 | #default = 默认值 }}
這裡預設值2、3、4都會傳回「對應值234」,預設6、7都會傳回「對應值67」。
比較
#ifeq相同,如果「輸入值」和「預設值」都為數值,則會按照數值進行比較:
{{#switch: 0 + 1 | 1 = one | 2 = two | three}}three
{{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}}one
{{#switch: a | a = A | b = B | C}}A
{{#switch: A | a = A | b = B | C}}C
「預設值」可以為空:
{{#switch: | = Nothing | foo = Foo | Something}}Nothing
當有一個預設值被匹配到了後,其後的「預設值」會被忽略:
{{#switch: b | f = Foo | b = Bar | b = Baz |}}Bar
#switch#ifeq的數值比較方法與運算式比較不同:
{{#switch: 12345678901234567 | 12345678901234568 = A | B}}B
{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}}A

tag[編輯]

MediaWiki原生函式。
生成一個XML標籤(只能是解析器擴充套件標籤),可以設定其標籤型別、內文和屬性。有時候一些XML標籤形式的解析器結構(即解析器擴充套件標籤),不會解析和運算其內文,導致其無法在模板中使用或配合其他解析器結構使用(如tabber),此時則需要利用tag函式,生成一個內文已經解析了的標籤。

格式
{{#tag: 标签类型 | 内文 | 属性}}
例子
{{#tag: nowiki | 这是nowiki里面,{{padleft: | 5 | 一二}}切运算都有效}} 这是nowiki里面,一二一二一切运算都有效
{{#tag: ref | 这是备注里面,{{padleft:|5|一二}}切运算都有效 | name="tag" group="tag"}}[1]
  1. 這是備註裡面,一二一二一切運算都有效
{{#tag: references || group="tag"}} (如果內文一個空格都沒有,則會生成一個自關閉標籤)

TALKPAGENAME[編輯]

MediaWiki原生函式。
取得HTML編碼後的討論頁頁面全名(包含命名空間)。

格式
{{TALKPAGENAME: 页面名}}

TALKPAGENAMEE[編輯]

MediaWiki原生函式。
取得URL編碼後的討論頁頁面全名(包含命名空間)。

格式
{{TALKPAGENAMEE: 页面名}}

TALKSPACE[編輯]

MediaWiki原生函式。
取得HTML編碼後的討論頁頁面命名空間。

格式
{{TALKSPACE: 页面名}}

TALKSPACEE[編輯]

MediaWiki原生函式。
取得URL編碼後的討論頁頁面命名空間。

格式
{{TALKSPACEE: 页面名}}

time[編輯]

來自ParserFunctions。
將日期或時間(公曆)按格式字串規定的格式進行轉換。可自行指定日期/時間物件,預設使用魔術字(Magic word{{CURRENTTIMESTAMP}}的值(該值使用世界協調時間,UTC),也就是頁面最近一次繪製為HTML的時間。詳細內容參見Help:Extension:ParserFunctions

程式碼 說明 目前輸出值
清除此頁面緩存以更新結果)
Y 4位數表示的年。 2024
y 2位數表示的年。 24
L 1表示閏年(Leap year),0表示非閏年。 1
o[注 1] ISO-8601規定的該周所屬年份。[注 2] 2024[注 3]
  1. 需要PHP5.1.0 或更新版本和MediaWikirev:45208
  2. 一般與Y相同,除非ISO規定的周數(W)屬於前一年或者後一年,則使用 ISO 規定的年份。
  3. 如果注1的條件不滿足,會顯示字母o
n 月份號,無前導零。 5
m 月份號,有前導零。 05
M 月份名稱縮寫,使用網站語言。(英文結果為 May 5月
F 月份名稱全稱,使用網站語言。(英文結果為 May 5月
xg 月份名稱全稱,使用網站語言的屬格(Genitive)形式,注意區分其與主格(Nominative)形式的區別。

這項功能在斯拉夫語族(Slavic languages)中十分重要,如波蘭語、俄語、白俄羅斯語、捷克語、斯洛伐克語、斯洛維尼亞語、烏克蘭語等。

在中文環境下:
屬格為全漢字月份名稱;
主格為數字+漢字月份名稱。

對於中文:

(主格)
{{#time: Y F d | 20 June 2010 | zh}}
→ 2010 6月 20

(屬格)
{{#time: Y xg d | 20 June 2010 | zh}}
→ 2010 6月 20

W ISO 8601 規定的周數,有前導零。 19
j 月份內的日期號,無前導零。 11
d 月份內的日期號,有前導零。 11
z 年份內的日期號 (1月1日 = 0)。
「」「注意:」「」要獲得ISO規定的日期號,需加上1。
131
D 星期的縮寫。國際上不通用。
l 星期的全稱。國際上不通用。 星期六
N ISO 8601 規定的星期編號(星期一 = 1,星期日 = 7)。 6
w 星期編號(星期日=0,星期六=6)。 6
a 早上為am(00:00:00 → 11:59:59);
其他時間為 pm(12:00:00 → 23:59:59)。
am
A 上方a的大寫形式。 AM
g 12小時制的時,無前導零。 11
h 12小時制的時,有前導零。 11
G 24小時制的時,無前導零。 11
H 24小時制的時,有前導零。 11
分 和 秒
i 小時後的分鐘數,有前導零。 45
s 分鐘後的秒鐘數,有前導零。 01
U UNIX時間(Unix time)。從格林尼治時間(GMT)1970年1月1日00:00:00開始計的秒鐘數。 1715427901
時區(需MediaWiki1.22wmf2
e 時區識別碼。 UTC
I 目前日期是否使用日光節約時間(夏令時)。 0
O 與格林尼治時間(GMT)的時差。 +0000
P 與格林尼治時間(GMT)的時差,帶有冒號分隔。 +00:00
T 時區縮寫。 UTC
Z 以秒計的時差。 0
雜項
t 目前月份的天數。 31
c ISO 8601 格式的日期,等價於 Y-m-d"T"H:i:s+00:00 2024-05-11T11:45:01+00:00
r RFC 5322格式的日期,等價於 D, j M Y H:i:s +0000,其中星期名和月份名國際上不通用。 Sat, 11 May 2024 11:45:01 +0000
非公曆日曆
伊斯蘭曆(Islamic calendar),又稱希吉來歷(Hijri calendar)
xmj 月份內的日期號。 3
xmF 月份名稱全稱。 都爾喀爾德月
xmn 月份號。 11
xmY 全長表示的年。 1445
伊朗歷(Iranian calendar),又稱賈拉利歷(Jalali calendar)
xij 月份內的日期號。 22
xiF 月份名稱全稱。 Ordibehesht
xin 月份號。 2
xiY 全長表示的年。 1403
xiy 2位數表示的年。 03
希伯來曆(Hebrew calendar
xjj 月份內的日期號。 3
xjF 月份名稱全稱。 以珥月
xjt 目前月份的天數。 29
xjx 屬格形式的月份名稱。 Iyar
xjn 月份號。 8
xjY 全長表示的年。 5784
泰國曆(Thai solar calendar
xkY 泰國曆的全長表示的年。
注意:公曆1941年前的年份,1月到3月的範圍內,計算得到的泰國曆年份不正確。(原因
2567
民國紀年(Minguo calender
朝鮮歷(North Korean calendar),又稱主體歷(Juche calendar)
xoY 全長表示的年。 113
日本年號(Japanese era name, or Japanese nengo)
xtY 全長表示的年(帶有年號)。 令和6
轉換標誌
xn 將下一個數字程式碼轉換為原始ASCII格式數字。 在印地語中,{{#time: H, xnH}} 得到的是 ०६, 06
xN xn 功能類似。但它持續起作用到字串末尾,或字串中的下一個xN處。
xr 將下一個數字程式碼轉換為羅馬數字格式。僅對10,000以內的數字有效
(MediaWiki 1.20 之前,僅對 3,000 以內的數字有效)
{{#time: xrY}}
MMXXIV
xh 將下一個數字程式碼轉換為希伯來數字格式。 {{#time: xhY}}
ב'כ"ד
格式
{{#time: 格式字符串}}
{{#time: 格式字符串 | 日期/时间对象}}
{{#time: 格式字符串 | 日期/时间对象 | 语言代码}}
上面的表格中列出了支援的格式控制程式碼。「格式字串」中的任何不被識別的字元將原樣輸出,包括空格(系統不用它們來編譯程式碼)。
還有兩種方法可以使「格式字串」內的字元原樣輸出:
  1. 反斜槓\後加字元,可以原樣輸出單個字母:
  2. 一對半形雙引號" "內的字元被當作文字,會原樣輸出,不帶雙引號。
另外,還可以用xx來輸出單個字母x
例子
{{#time: \m}}m
{{#time: \xg}}x11x被原樣輸出,g被當作格式控制程式碼)
{{#time: Y-m-d}}2024-05-11
{{#time: [[Y]] m d}}2024 05 11
{{#time: [[Y (year)]]}}2024 (24UTCamSat, 11 May 2024 11:45:01 +0000) (year被當作格式控制程式碼year
{{#time: [[Y "(year)"]]}}2024 (year)
{{#time: i“s"}}45”01"
「語言程式碼」使用的是ISO 639-3標準,可以顯示所選語言的時間格式:
{{#time:d F Y|1988-02-28|nl}}28 februari 1988
{{#time:l|now|uk}}субота
{{#time:d xg Y|20 June 2010|pl}}20 czerwca 2010
如果需要在計算時使用UNIX時間,可以在UNIX時間前加上@
{{#time: U | now}}1715427901
{{#time: r|@1485582296}}Sat, 28 Jan 2017 05:44:56 +0000
超過9999年會得到不正確的結果:
{{#time: d F Y | 15 April 10000}}错误:无效时间。
{{#time: r | 10000-4-15}}Sat, 15 Apr 2000 10:00:00 +0000
0-99年被當作2000-2069年、1970-1999年來處理,除非使用4位數年格式來表示這些年份:
{{#time: d F Y | 1 Jan 6}}01 1月 2006
{{#time: d F Y | 1 Jan 06}}01 1月 2006
{{#time: d F Y | 1 Jan 006}}01 1月 2006
{{#time: d F Y | 1 Jan 0006}}01 1月 0006 (使用了4位數年)
可以指定完整的絕對日期,或者是一部分,該函式會將缺少的部分用目前日期的值填補。填補功能在不同情況下填補不同的內容:
{{#time: Y m d H:i:s | June}}2024 06 11 00:00:00 (使用了一天的開始時刻,填補了目前月份內的日期號、年份)
{{#time: Y m d H:i:s | 2003}}2003 05 11 00:00:00 (使用了一天的開始時刻,填補了目前年份內的日期號)
在MediaWiki r86805之後,4位數字一概會被認為是年份,而非小時與分鐘:
{{#time: Y m d H:i:s | 1959}}1959 05 11 00:00:00
6位數字會被認為是小時、分鐘和秒鐘,如果得到的時間不正確,則會報錯(一概不會當作年份和月份):
{{#time: Y m d H:i:s | 195909}}2024 05 11 19:59:09 (被當作時分秒而不是年月)
{{#time: Y m d H:i:s | 196009}}错误:无效时间。 (即使19:60:09不是正確的時間,196009也不會被當作年月)
該函式可對日期進行一定的數學運算:
{{#time: Y F d | January 0 2008}}2007 12月 31
{{#time: F d | January 32}}错误:无效时间。 (一個月超過31天會導致報錯)
{{#time: F d | February 29 2008}}2月 29
{{#time: F d | February 29 2007}}3月 01
{{#time:Y F|now -1 months}}2024 4月
該函式中「格式字串」的總長度限制為6000字元

timel[編輯]

來自ParserFunctions。
該函式與time類似,但該函式使用Wiki本地時間。(在$wgLocaltimezone中設定)。

格式
{{#time: 格式字符串}}
{{#time: 格式字符串 | 日期/时间对象}}
{{#time: 格式字符串 | 日期/时间对象 | 语言代码}}
例子
{{#timel:c|now|it}}2023-10-29T08:24:21+00:00

titleparts[編輯]

來自ParserFunctions。
把標題字串用半形斜線「/」分隔,傳回指定位置開始,指定長度的標題段落,段落位置從1開始計算。段落長度為0時會傳回從段落位置開始的所有段落,段落位置為0時效果和為1時一樣。

格式
{{#titleparts: 标题字符串 | 段落长度(默认为0) | 段落位置(默认为1)}}
所有半形斜線「/」都會被切割,不論是否已有一個標題字串一模一樣並以「/」作為頁面名中一個普通字元的頁面存在。標題字串內的所有HTML實體均會自動轉換成對應的字元,所以不能用「&#47;」來逃避切割。半形底線「_」會自動轉換成半形空格「 」,也會按照Wiki設定把首字母轉成大寫。
例子
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript}}Manual:开发/创作工具/ScriptAPI/JavaScript
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 1}}Manual:开发,效果同ROOTPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 2}}Manual:开发/创作工具
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | 2 | 2}}创作工具/ScriptAPI
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | | 2}}创作工具/ScriptAPI/JavaScript
「段落長度」和「段落位置」均可以使用負數,負數「段落長度」表示從尾開始去掉該數量的段落,負數「段落位置」表示從尾開始計算段落位置。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1}}Manual:开发/创作工具/ScriptAPI,效果同BASEPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -4}},去掉的段落數等於段落總數。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -5}},去掉的段落數超出了段落總數。
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | | -1}}JavaScript,效果同SUBPAGENAME
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1 | 2}}创作工具/ScriptAPI
{{#titleparts: 手册:开发/创作工具/ScriptAPI/JavaScript | -1 | -2}}ScriptAPI
標題字串最多能含有255個半形字元或相應數量的全形字元,就跟正常頁面標題一樣。最多只會進行25次切割,25次以後的內容會被當作同一個段落處理。
{{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee | 1 | 25}}y/z/aa/bb/cc/dd/ee
若標題字串含有標題內停用的字元,此函式會傳回原字串或傳回空字串。
{{#titleparts: {one/two} | 1 | 1}}{one/two}
{{#titleparts: [[首页]]/123 | 1 | 2}}首页/123
{{#titleparts: red/#00FF00/blue | 1 | 3}}

uc[編輯]

MediaWiki原生函式。
把輸入的字串中所有字母變成大寫。

格式
{{uc: 字符串}}
例子
{{uc: abc}}ABC

ucfirst[編輯]

MediaWiki原生函式。
把輸入的字串中第一個字母變成大寫。

格式
{{ucfirst: 字符串}}
例子
{{ucfirst: minecraft}}Minecraft

urldecode[編輯]

MediaWiki原生函式。
解碼被URL編碼的字串。

格式
{{#urldecode: URL编码字符串}}
例子
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25}}ABC中文 英文 123&456+1%
{{#urldecode: ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25}}ABC中文 英文 123&456+1%(用urlencode加QUERY編碼的字串)
{{#urldecode: ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25}}ABC中文_英文_123&456+1%(用urlencode加WIKI編碼的字串)
{{#urldecode: ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25}}ABC中文 英文 123&456+1%(用urlencode加PATH編碼的字串)

urlencode[編輯]

MediaWiki原生函式。
取得URL編碼後的字串,並可以使用預設空格格式改變編碼空格時的效果,可以使用的格式分別是:QUERY(空格變為「+」)、WIKI(空格變為「_」)、PATH(空格變為「%20」)。

格式
{{urlencode: 普通字符串 | 空格格式(QUERY、WIKI或PATH,默认为QUERY)}}
例子
{{urlencode: ABC中文 英文 123&456+1%}}ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | QUERY}}ABC%E4%B8%AD%E6%96%87+%E8%8B%B1%E6%96%87+123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | WIKI}}ABC%E4%B8%AD%E6%96%87_%E8%8B%B1%E6%96%87_123%26456%2B1%25
{{urlencode: ABC中文 英文 123&456+1% | PATH}}ABC%E4%B8%AD%E6%96%87%20%E8%8B%B1%E6%96%87%20123%26456%2B1%25

var[編輯]

來自Variables。
取得特定變數的內容值,需配合vardefinevardefineecho使用,比如在這裡用{{#vardefine: abc | def}}定義變數abc。無法取得在後面程式碼中才定義的變數。當要取得的變數沒被定義時,會輸出預設值,已被定義的判定可參考varexists

格式
{{#var: 变量名称 | 默认返回值(默认为空字符串)}}
例子
{{#var: count | 未定义}}未定义取得未定義的變數count,輸出預設值。
{{#var: abc | xyz}}def取得已定義的變數abc。

var_final[編輯]

來自Variables。
只使用varvarexists的話,只能順著程式碼的流向取得在前面的程式碼中已經定義的變數。
比如這裡的程式碼位於vardefine下的例子前,如果現在取得{{#var: count}},因為定義count的程式碼還沒處理,所以只能取得變數未定義時預設的空白字串「」;或者如果使用{{#var: count | 未定义}},則傳回「未定義」。
而使用var_final就可以取得所有程式碼均已經過處理後,指定變數的最終內容值。

此函式在程式碼運算的最後關頭才會獲得傳回值,因有此特殊性此函式在很多情況下都會出現未預期的表現,安全起見不建議把此函式放在模板、解析器函式及其他需要後台運算的程式碼之內,放在純HTML內則是安全的。
格式
{{#var_final: 变量名称 | 默认返回值(默认为空字符串)}}
例子
{{#var_final: count | 未定义}}1在此處取得在後面程式碼中才會被定義的count的內容。

vardefine[編輯]

來自Variables。
把字串內容作為一個變數儲存,便於在後面程式碼中再次使用。此函式只會在內部改變變數的值,不會輸出任何字元。

格式
{{#vardefine: 变量名称 | 内容值(默认为空字符串)}}
例子
{{#vardefine: count | 0}} 將定義一個名為「count」的變數,初始內容為「0」,需注意此為字串「0」,現在變數count的內容為「0」。
{{#vardefine: text |}} 也可以定義初始內容為空白的變數,現在變數text的內容為「」。
{{#vardefine: text | 新}} 透過同樣的方法可以覆蓋已有變數的內容,現在變數text的內容為「新」。
{{#vardefine: text | {{#var: text}}内容}} 透過與var組合,給變數拼接更多內容,現在變數text的內容為「新內容」。
{{#vardefine: count | {{#expr: {{#var: count}}+1}}}} 透過與expr組合,遞增變數,現在變數count的內容為「1」。

vardefineecho[編輯]

來自Variables。
用法和內部效果vardefine完全一致,只是會在改變變數值的同時輸出改變後變數的值。

格式
{{#vardefineecho: 变量名称 | 内容值(默认为空字符串)}}
例子
{{#vardefineecho: text | 输出定义值}}输出定义值
定義變數同時輸出變數內容,現在變數text的內容為「輸出定義值」。

varexists[編輯]

來自Variables。
用於判斷一個變數是否已由vardefinevardefineecho定義,即使初始值為空字串,也會被判定為已被定義。若該變數已被定義,會傳回「1」,否則傳回空字串,可以直接配合if使用。

格式
{{#varexists: 变量名称}}
例子
{{#varexists: text}}1
{{#varexists: count}}1
{{#varexists: null}}
{{#if: {{#varexists: extra}} | 存在 | 不存在}}不存在

while[編輯]

來自Loops。
當型循環。循環解析給定的運算式,當條件值為非空時結束。

格式
{{#while: | 条件 | 表达式}}

注意第一個參數不填。

例子
{{#vardefine: i | 0}}{{#while: | {{#ifexpr: {{#var: i}} < 5 | true}}{{#vardefine: i | {{#expr: {{#var: i }} + 1}}}} | <nowiki/> * {{#var: i}} }} → 按順序生成數字列表。

  • 1
  • 2
  • 3
  • 4
  • 5

widget[編輯]

來自Widgets。 呼叫預先編寫好的Widgets小工具,並可以將參數傳入Widgets中。小工具的編寫方法請參照Extension:Widgets

格式
{{#widget: 小工具名称 | 参数名1=值1 | 参数名2=值2 | ... | 参数名n=值n}}

參見[編輯]