- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
說明:解析器函式
本頁面主要介紹本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}}
→ 顯示內容數量
{{#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.5 、 e (2.718) 、 pi (3.142)
|
科學計數法(二元) e 、 正負號(一元) + 、-
| |
一元運算子 | not 、ceil 、trunc 、floor 、abs 、exp 、ln 、sin 、cos 、tan 、acos 、asin 、atan
|
二元運算子 | ^
|
* 、/ 、div 、mod
| |
+ 、-
| |
四捨五入 | 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 | 保留到最近的整數,向下捨入至負一。 |
使用ceil 和floor 時的捨入規則:
| ||
{{#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"
能由其他解析器函式,如expr、time、rel2abs產生,模板(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}}
→exists
(MediaWiki: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實體( 等),該實體將不會被轉換成一般文字,而是按原形計算。被<nowiki>包裹的內容不會計入長度。
- 格式
{{#len: 字符串}}
- 例子
{{#len: Minecraft基岩版}}
→12
{{#len: }}
→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]
- ↑ 這是備註裡面,一二一二一切運算都有效
{{#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] |
月 | ||
n
|
月份號,無前導零。 | 5 |
m
|
月份號,有前導零。 | 05 |
M
|
月份名稱縮寫,使用網站語言。(英文結果為 May )
|
5月 |
F
|
月份名稱全稱,使用網站語言。(英文結果為 May )
|
5月 |
xg
|
月份名稱全稱,使用網站語言的屬格(Genitive)形式,注意區分其與主格(Nominative)形式的區別。 這項功能在斯拉夫語族(Slavic languages)中十分重要,如波蘭語、俄語、白俄羅斯語、捷克語、斯洛伐克語、斯洛維尼亞語、烏克蘭語等。 在中文環境下: |
對於中文:
(主格) (屬格) |
周 | ||
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: 格式字符串 | 日期/时间对象 | 语言代码}}
- 上面的表格中列出了支援的格式控制程式碼。「格式字串」中的任何不被識別的字元將原樣輸出,包括空格(系統不用它們來編譯程式碼)。
- 還有兩種方法可以使「格式字串」內的字元原樣輸出:
- 反斜槓
\
後加字元,可以原樣輸出單個字母: - 一對半形雙引號
" "
內的字元被當作文字,會原樣輸出,不帶雙引號。
- 反斜槓
- 另外,還可以用
xx
來輸出單個字母x
。 - 例子
{{#time: \m}}
→m
{{#time: \xg}}
→x11
(x
被原樣輸出,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被當作格式控制程式碼y
、e
、a
、r
){{#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實體均會自動轉換成對應的字元,所以不能用「/」來逃避切割。半形底線「_」會自動轉換成半形空格「 」,也會按照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。
取得特定變數的內容值,需配合vardefine或vardefineecho使用,比如在這裡用{{#vardefine: abc | def}}
定義變數abc。無法取得在後面程式碼中才定義的變數。當要取得的變數沒被定義時,會輸出預設值,已被定義的判定可參考varexists。
- 格式
{{#var: 变量名称 | 默认返回值(默认为空字符串)}}
- 例子
{{#var: count | 未定义}}
→未定义
取得未定義的變數count,輸出預設值。{{#var: abc | xyz}}
→def
取得已定義的變數abc。
var_final[編輯]
來自Variables。
只使用var和varexists的話,只能順著程式碼的流向取得在前面的程式碼中已經定義的變數。
比如這裡的程式碼位於vardefine下的例子前,如果現在取得{{#var: count}}
,因為定義count的程式碼還沒處理,所以只能取得變數未定義時預設的空白字串「」;或者如果使用{{#var: count | 未定义}}
,則傳回「未定義」。
而使用var_final就可以取得所有程式碼均已經過處理後,指定變數的最終內容值。
- 此函式在程式碼運算的最後關頭才會獲得傳回值,因有此特殊性此函式在很多情況下都會出現未預期的表現,安全起見不建議把此函式放在模板、解析器函式及其他需要後台運算的程式碼之內,放在純HTML內則是安全的。
- 格式
{{#var_final: 变量名称 | 默认返回值(默认为空字符串)}}
- 例子
{{#var_final: count | 未定义}}
→1
在此處取得在後面程式碼中才會被定義的count的內容。
vardefine[編輯]
來自Variables。
把字串內容作為一個變數儲存,便於在後面程式碼中再次使用。此函式只會在內部改變變數的值,不會輸出任何字元。
- 格式
{{#vardefine: 变量名称 | 内容值(默认为空字符串)}}
- 例子
{{#vardefine: count | 0}}
→{{#vardefine: text |}}
→{{#vardefine: text | 新}}
→{{#vardefine: text | {{#var: text}}内容}}
→{{#vardefine: count | {{#expr: {{#var: count}}+1}}}}
→
vardefineecho[編輯]
來自Variables。
用法和內部效果vardefine完全一致,只是會在改變變數值的同時輸出改變後變數的值。
- 格式
{{#vardefineecho: 变量名称 | 内容值(默认为空字符串)}}
- 例子
{{#vardefineecho: text | 输出定义值}}
→输出定义值
- 定義變數同時輸出變數內容,現在變數text的內容為「輸出定義值」。
varexists[編輯]
來自Variables。
用於判斷一個變數是否已由vardefine或vardefineecho定義,即使初始值為空字串,也會被判定為已被定義。若該變數已被定義,會傳回「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}}