說明:魔術字/解析器函數
解析器函數與系統變量非常相似,但與後者相比,前者全部要求至少傳入一個參數,所有的參數1與函數名之間均用:
而不是|
分割。
解析器函數有時會在函數名前加上#
用以與模板區分。
列表
以下表格詳細說明了萌百可用的解析器函數,部分術語未作解釋。
解析器函數 | 輸入 → 輸出 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
URL與標題的數據和解析 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{localurl:頁面名稱}} {{localurl:頁面名稱|查詢字符串}}
|
{{localurl:Mainpage}} → /Mainpage{{localurl:Mainpage|printable=yes}} → /index.php?title=Mainpage&printable=yes
|
指定頁面的相對路徑 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{fullurl:頁面名稱}} {{fullurl:頁面名稱|查詢字符串}} {{fullurl:跨wiki前綴:遠程頁面名稱|查詢字符串}}
|
{{fullurl:Category:帮助}} → https://moegirl.icu/Category:%E5%B8%AE%E5%8A%A9{{fullurl:Category:帮助|action=edit}} → https://moegirl.icu/index.php?title=Category:%E5%B8%AE%E5%8A%A9&action=edit{{fullurl:mw:MediaWiki/zh|action=edit}} → https://www.mediawiki.org/wiki/MediaWiki/zh?action=edit{{fullurl:mw:Help:Magic words|action=edit}} → https://www.mediawiki.org/wiki/Help:Magic_words?action=edit
|
指定頁面的相對協議路徑,該解析器函數也能識別跨wiki前綴。 注意:未被方括號包裹起來的相對協議路徑不會自動生成為連結 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{canonicalurl:頁面名稱}} {{canonicalurl:頁面名稱|查詢字符串}} {{canonicalurl:interwiki:遠程頁面名稱|查詢字符串}}
|
{{canonicalurl:Category:帮助}} → https://moegirl.icu/Category:%E5%B8%AE%E5%8A%A9{{canonicalurl:Category:帮助|action=edit}} → https://moegirl.icu/index.php?title=Category:%E5%B8%AE%E5%8A%A9&action=edit{{canonicalurl:mw:Help:Magic words|action=edit}} → https://www.mediawiki.org/wiki/Help:Magic_words?action=edit
|
指定頁面的絕對協議路徑,該解析器函數也能識別跨wiki前綴。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{filepath:文件名稱}} {{filepath:文件名稱|縮略圖大小}} {{filepath:文件名稱|nowiki}}
|
{{filepath:Box-1.png}} → {{filepath:Box-1.png|120}} → {{filepath:Box-1.png|nowiki}} → https://moegirl.icu/media/Box-1.png
|
指定文件的絕對協議路徑,可以指定縮略圖大小(僅能指定寬度大小,單位為px),也可以指定是否被直接渲染為圖片 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{urlencode:字符串}} {{urlencode:字符串|QUERY}} 、{{urlencode:字符串|WIKI}} 、{{urlencode:字符串|PATH}}
|
{{urlencode:x:y/z á é-萌娘百科}} 、{{urlencode:x:y/z á é-萌娘百科|QUERY}} → x%3Ay%2Fz+%C3%A1+%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91{{urlencode:x:y/z á é-萌娘百科|WIKI}} → x:y/z_%C3%A1_%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91{{urlencode:x:y/z á é-萌娘百科|PATH}} → x%3Ay%2Fz%20%C3%A1%20%C3%A9-%E8%90%8C%E5%A8%98%E7%99%BE%E7%A7%91
|
輸出指定字符串經編碼後的結果。不同的參數指定不同的編碼規則,用於解析頁面標題到MediaWiki類站點連結時建議使用WIKI,解析字符串到文件名時建議使用PATH,解析字符串到搜尋引擎連結時建議使用(空)、QUERY;如果你不清楚如何選擇時,你可以到Talk:提問求助區求助
注意:現階段萌百MediaWiki版本不支持參數指定,可嘗試使用{{replace}}等進行替換 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{anchorencode:字符串}}
|
{{anchorencode:x:y/z á é-萌娘百科}} → x:y/z_á_é-萌娘百科
|
輸出指定字符串經MediaWiki頁內標題連結編碼規則編碼後的結果,可用於指定內容的標題的頁內導航 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#rel2abs: 路徑}} {{#rel2abs: 路徑 | 基礎路徑}}
|
{{#rel2abs: /quok | Help:Foo/bar/baz}} → Help:Foo/bar/baz/quok{{#rel2abs: ../../../../quok | Help:Foo/bar/baz}} → 錯誤:路徑深度無效:「Help:Foo/bar/baz/../../../../quok」(試圖訪問根節點之上的節點)。
|
本函數用於以通用的命令行目錄變換格式來變換頁面路徑:
對於不合法的參數1,函數並不會直接拋出錯誤,而是嘗試剔除錯誤部分繼續工作:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#titleparts: 要解析的標題 | 要返回的層數 | 返回部分的起始點}}
|
{{#titleparts: Talk:Foo/bar/baz/quok | 2}} → Talk:Foo/bar{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2}} → bar/baz{{#titleparts: Talk:Foo/bar/baz/quok | -2}} → Talk:Foo/bar{{#titleparts: Talk:Foo/bar/baz/quok | -1 | -2}} → baz
|
該函數用於輸出給定標題的一部分:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
命名空間 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
命名空間解析器函數{{ns:}} 返回標準命名空間的本地化名稱(萌百使用標準名稱作為本地化名稱)或自定義命名空間的名稱,參數1可以指定命名空間的ID,標準命名空間的MediaWiki標準名稱、本地(語言變種)化名,自定義命名空間的名稱:
需要注意的是:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
格式化函數 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{formatnum:未格式化的數字}} {{formatnum:已格式化的數字|R}} {{formatnum:未格式化的數字|NOSEP}}
|
簡單例子:
高級例子:
錯誤的輸入會導致無法預測的輸出,不論是否有參數2
|
參數1接受任何阿拉伯數字,按照站點默認區域數字格式用分位符號分組,將其本地化後輸出。
參數2有兩個可接受字符串:
注意:
如果你真的需要輸入一個無法保證格式正確的數字的話,你可以使用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#dateformat:日期}} {{#formatdate:日期}} {{#dateformat:日期|格式規則}} {{#formatdate:日期|格式規則}}
|
|
參數1接受一個未格式化的日期,按照設置#顯示里的「日期格式」設置將其格式化。對於未登錄的讀者和未設置日期格式的用戶,可以通過參數2指定格式:mdy 、dmy 、ymd (輸出的字母全小寫)。如果參數1隻給出月日,那麼只有mdy 和dmy 才是有效的格式。如果未指定格式或者格式無效,那麼參數1的格式將被指定為輸出格式。如果參數1的日期格式無效,那麼函數輸出參數1的原樣。
警告:即使ISO 8601格式要求參數1的日期是公曆日期,若參數2指定ISO 8601,函數也能對那些超出通常公曆範圍的日期進行格式化(例如1583年之前的日期)。不過,函數無法正確轉換ISO 8601格式下的負數年份和通常格式下的公元前的年份。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{lc:字符串}}
|
{{lc:DATA CENTER}} → data center
|
將字符串完全小寫化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{lcfirst:字符串}}
|
{{lcfirst:DATA center}} → dATA center
|
將字符串首字母小寫化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{uc:字符串}}
|
{{uc:text transform}} → TEXT TRANSFORM
|
將字符串完全大寫化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{ucfirst:字符串}}
|
{{ucfirst:text TRANSFORM}} → Text TRANSFORM
|
將字符串首字母大寫化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{padleft:原字符串|補足後的字符串長度}} {{padleft:原字符串|補足後的字符串長度|補足用的字符串}}
|
{{padleft:xyz|5}} → 00xyz{{padleft:xyz|5|_}} → __xyz{{padleft:xyz|5|abc}} → abxyz{{padleft:xyz|7|abc}} → abcaxyz{{padleft:xyz|2}} → xyz{{padleft:|4|xyz}} → xyzx
|
將參數1通過在左側補上參數3指定的字符串(默認為0)補足到參數2指定的長度,參數3指定的字符串可能被截斷以保證補足後的字符串長度滿足要求 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{padright:原字符串|補足後的字符串長度}} {{padright:原字符串|補足後的字符串長度|補足用的字符串}}
|
{{padright:xyz|5}} → xyz00{{padright:xyz|5|_}} → xyz__{{padright:xyz|5|abc}} → xyzab{{padright:xyz|7|abc}} → xyzabca{{padright:xyz|2}} → xyz{{padright:|4|xyz}} → xyzx
|
與{{padleft:}} 近乎一樣,只是在右邊補足
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本地化函數 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{plural:數字|單數形式|複數形式}}
|
{{plural:0|is|are}} → are{{plural:1*1|is|are}} → is{{plural:21 mod 10|is|are}} → are{{plural:{{#expr:21 mod 10}}|is|are}} → is
|
根據參數1是單數還是複數,輸出不同的字符串:單數輸出參數2,複數輸出參數3。判斷是否單複數的標準是{{#switch: 1 | {{{1}}} | {{#expr: {{{1}}} }} = true | #default = false}} 。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{gender:指定用戶名|男性時的文本|女性時的文本|未選擇性別時的文本}} {{gender:|男性時的文本|女性時的文本|未選擇性別時的文本}} {{gender:.|男性時的文本|女性時的文本|未選擇性別時的文本}}
|
{{gender:AnnAngela|男性時的文本|女性時的文本|未選擇性別時的文本}} →未選擇性別時的文本{{gender:|男性时的文本|女性时的文本|未选择性别时的文本}} →未選擇性別時的文本(此處使用{{UserGender}}渲染){{gender:.|男性時的文本|女性時的文本|未選擇性別時的文本}} →未選擇性別時的文本
|
根據指定的用戶的設置#用戶資料的「語言」設置中的性別部分,返回該性別對應的文本。
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{int:信息名稱}}
|
{{int:edit}} → 編輯{{int:editsectionhint|MediaWiki}} → 編輯章節:MediaWiki
|
返回指定信息的界面語言變種翻譯。可以在MediaWiki:信息標準名(en-US)/界面語言變種 里找到,亦可以修改。
對於部分信息,可以提供參數給它們,它們可以通過$1、$2……獲取這些參數,在第二個例子裏,MediaWiki替換了$1。 這種用法相較於 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
特殊嵌入 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{:(主)命名空間頁面名}}
|
(主命名空間頁面) | 通過: 將命名空間強制指定為(主),從而嵌入(主)命名空間的頁面
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{msg:與某一魔術字重名的模板名}} {{raw:與某一魔術字重名的模板名}}
|
(模板正常渲染內容) | 與{{Tempate:與某一魔術字重名的模板名}} 一樣可以避免魔術字與模板名衝突,而直接嵌入模板
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{msgnw:模板名}}
|
{{msgnw:tl}} → {{{{ {{{|safesubst:}}}#if:{{{3|}}}|{{{3|}}}:|}}[[{{ {{{|safesubst:}}}ns:Template}}:{{{1}}}|{{{1}}}]]{{ {{{|safesubst:}}}#if:{{{2|{{{arg|}}}}}}|{{!}}{{{2|{{{arg}}}}}}}}}}<noinclude>
{{Documentation}} <!-- 請在將分類與跨語言連結增加在 /doc 子頁面 --> [[Category:內部連結模板]] </noinclude> |
把模板的源碼以純文本形式輸出,自帶nowiki效果 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{subst:模板名}}
|
(模板的正常渲染內容,而模板源碼在替換完參數,刪去<noinclude/> 內容後粘貼到頁面源碼中)
|
把模板的源碼嵌入到頁面源碼中,參見Help:替換引用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{safesubst:模板名}}
|
(模板的正常渲染內容。當上層模板是被正常嵌套時按正常方式被嵌套;而當上層模板是被替換引用時,模板源碼在替換完參數,刪去<noinclude/> 內容後粘貼到頁面源碼中)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
運算與邏輯判斷(來自擴展:解析器函數) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#expr: 數學表達式 }}
|
{{#expr: 1 and -1 }} → 1
|
本函數計算並返回數學表達式的結果,你可以使用+、-、*、/ 來進行計算。本函數將e (自然對數的底數)、pi (π)作為常數使用。本函數支持的運算符如下所示:
注意:
當表達式有誤時函數會返回一個錯誤信息,此時無法再繼續計算,請注意。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#if: X | A | B }}
|
{{#if: X | A | B }} → A{{#if: | A | B }} → B{{#if: | A }} →
|
該函數用於條件邏輯判斷:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifeq: X | Y | A | B }}
|
{{#ifeq: 1 | 0 | A | B }} → B{{#ifeq: 1 | 1 | A | B }} → A
|
該函數用於條件邏輯判斷:
註: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#iferror: X | A | B }}
|
{{#iferror: <span class="error"></span> | error | correct}} → error{{#iferror: I'm fine. | error}} → I'm fine.{{#iferror: {{#rel2abs: ../../../../quok | Help:Foo/bar/baz}}}} →
|
該函數用於條件邏輯判斷:
該函數相當適合於執行可能會報錯的其他的解釋器函數(比如#expr,#time和#rel2abs)、隱藏模板錯誤(比如模板循環和模板遞歸)以及隱藏一些其它的解釋器「軟錯誤」(如Lua模塊、Widget等)。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifexist: 頁面標題 | A | B }}
|
{{#ifexist: Main Page | A | B }} → A{{#ifexist: 肯定不存在的標題 | A | B }} → B{{#ifexist: 肯定不存在的標題 | A }} → {{#ifexist: File:Box-1.png | A | B }} → B{{#ifexist: Image:Box-1.png | A | B }} → B{{#ifexist: Media:Box-1.png | A | B }} → A
|
[高開銷][1] 該函數用於條件邏輯判斷:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#ifexpr: Fx(表達式) | A | B }}
|
{{#ifexpr: 1+1 | A | B }} → A{{#ifexpr: 1-1 | A | B }} → B{{#ifexpr: 1-1 | A }} →
|
該函數用於條件邏輯判斷:
註: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#switch: X | Y = A | #default = B}}
|
{{#switch: 1 | 0 = A | 1 = B | #default = C }} → B {{#switch: 2 | 0 = A | 1 = B | C }} → C |
該函數用於條件邏輯判斷:
注意:
當一個參數沒有帶有
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#time: 格式參數 }} {{#time: 格式參數 | 時間參數 }} {{#time: 格式參數 | 時間參數 | 語言代碼}} {{#time: 格式參數 | 時間參數 | 語言代碼 | 是否使用本地時區}}
|
{{#time: Y/m/d}} → 2024/11/22{{#time: Y/m/d|2017-01-04}} → 2017/01/04{{#time: F d H:i:s|+1 second}} → 11月 22 04:36:00{{#time: F d H:i:s|+1 second|en}} → November 22 04:36:00{{#time: F d H:i:s|+1 second|zh|1}} → 11月 22 12:36:00
|
該函數用來輸出時間:
注意:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#timel: 格式參數 }} {{#timel: 格式參數 | 時間參數 }} {{#timel: 格式參數 | 時間參數 | 語言代碼}}
|
{{#timel: Y/m/d}} → 2024/11/22{{#timel: Y/m/d|2017-01-04}} → 2017/01/04{{#timel: Y/m/d H:i:s|+1 second}} → 2024/11/22 12:36:00{{#timel: Y/m/d H:i:s|+1 second|en}} → 2024/11/22 12:36:00{{#timel: e}} → PRC{{#timel: O}} → +0800{{#timel: P}} → +08:00{{#timel: T}} → CST{{#timel: Z}} → 28800
|
該函數與{{#time}} 幾乎一致,除了沒有參數4並且強制使用本地時區以外。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
變量(來自擴展:Variables) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#vardefine: 變量名 | 變量值}}
|
- | 將 變量值 賦給一個名為 變量名 的變量 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#vardefineecho: 變量名 | 變量值}}
|
{{#vardefineecho: hello | world}} → world
|
將 變量值 賦給一個名為 變量名 的變量,並輸出 變量值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#var: 變量名}} {{#var: 變量名 | 默認值}}
|
{{#var: hello}} → world{{#var: foo | no-op}} → no-op
|
輸出名為 變量名 的變量的值,如果沒有名為 變量名 的變量則輸出默認值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#varexists: 變量名}} {{#varexists: 變量名 | 存在時的返回值}} {{#varexists: 變量名 | 存在時的返回值 | 不存在時的返回值}}
|
{{#varexists: hello}} → 1{{#varexists: foo | exist}} → {{#varexists: foo | exist | does not exist}} → does not exist
|
判斷是否存在一個名為 變量名 的變量,若存在則返回 存在時的返回值(默認為 1 ),若不存在則返回 不存在時的返回值(默認為 空)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#var_final: 變量名}} {{#var_final: 變量名 | 默認值}}
|
{{#var_final: index}} → 5
|
在解析器解析到該魔術字時,先展開 默認值 對應的 wikitext,然後等待解析器解析完全文:
注意:不論 默認值 是否用得上,其內的 wikitext 都會被執行,您可以在沙盒裏測試以下代碼並觀察頁面標題: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
循環(來自擴展:Loops) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
每個頁面中循環次數都不能大於99次,否則將拋出錯誤,因此,必須控制循環次數合理使用,對於模板中使用循環更是應該小心,最好不要超過20次,如果是某些可能在同一頁面重複調用的模板,就一定不要使用循環了,若流程大體可控可以手動寫出循環,或者在Lua模塊中進行循環的操作。[2]
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#while: | 條件 | 語句}}
|
{{#vardefine: index | 0 }}{{#while: | {{#ifexpr: {{#var: index }} < 5 | true }} | <nowiki></nowiki> * {{#var: index }}{{#vardefine: index | {{#expr: {{#var: index }} + 1 }} }} }}→
|
當 條件 不為空時執行 語句
注意:擴展:Loops會對所有傳入的參數值去除開頭結尾的空白字符(包括空格、換行等)後再處理,如果你不想你的換行被刪除請使用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#dowhile: | 條件 | 語句}}
|
{{#vardefine: i | 99 }}{{#dowhile: | {{#ifexpr: {{#var: i}} < 5 | true }} | <nowiki></nowiki> * {{#var: i}}{{#vardefine: i| {{#expr: {{#var: index }} + 1 }} }} }}→
|
先執行一次 語句,然後當 條件 不為空時繼續執行語句(注意例子裏的初始值) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#loop: 變量名 | 初始值 | 循環次數 | 語句}}
|
{{#loop: count | 1 | 4 | <nowiki></nowiki> * This is round {{#var: count }} and we have {{#expr: 4 - {{#var: count }} }} more to go }}→
|
循環執行語句:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#forargs: 變量名前綴 | 索引變量名 | 值變量名 | 語句}}
|
若模板 Template:Loops Test 的內容如下:{{#forargs: arg | key | value | <nowiki></nowiki> * {{#var: key }} = {{#var: value }} }}那麼若調用如下代碼: {{Loops Test | arg1=val1 | spam=spammity | arg5=val5 | argument=value }} 則輸出:
|
遍歷參數:
變量名前綴 可以為空,此時將會對所有的參數進行循環且不對參數名做操作直接賦值給名為 索引變量名 的變量。 循環順序按照參數傳入的先後順序。注意Lua展開模板無視參數順序,所以使用Lua展開帶有 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#fornumargs: 索引變量名 | 值變量名 | 語句}}
|
若模板 Template:Loops Test 的內容如下:{{#fornumargs: number | value | <nowiki></nowiki> * {{#var: number }} = {{#var: value }} }}那麼若調用如下代碼: {{Loops Test | Alfa | B = Bravo | Charlie | 5 = Echo }} 則輸出:
|
遍歷參數:
循環順序按照數字參數的數字大小順序:即使上例中5 = Echo放在Alfa之前,5 = Echo仍會最後輸出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
雜項 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#language:語言代碼}} {{#language:語言代碼|目標語言代碼}}
|
{{#language:zh-cn}} → 中文(中國大陸){{#language:zh-cn|en-us}} → 中文(中國大陸)
|
以參數2的語言代碼指定的語言(沒有則以參數1的)輸出參數1的語言代碼對應的語言全名 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#special:特殊頁面名}}
|
{{#special:watchlist}} → Special:監視列表
|
輸出指定標準名稱的特殊頁面的本地化名。
可以在函數名後加e以輸出經MediaWiki URL編碼規則編碼後的頁面名:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#tag:標籤名稱|內容|屬性1=屬性值1|屬性2=屬性值2|……}}
|
{{#tag:div|右浮動|style="border: 1px gray solid; float: right; clear: both; padding: 1em;"}} → 右浮動
|
輸出一個元素的HTML源碼,參數1為其標籤名,參數2為其內容,參數3及之後為其屬性值對。請不要向參數1傳入自閉合標籤名,如br、img、hr等。
內容中的wikitext會在tag函數渲染之前完成渲染,並與往常一樣阻止不受信任的代碼渲染。 因此若標籤為nowiki且內容有使用模板則會輸出其模板輸出結果的代碼。 (pre標籤同理) 如果內容需要為空,則參數2必須為空,而不是省略。 不支持noinclude、includeonly。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#invoke:模塊名|函數名|參數1|參數2|……}}
|
(根據指定模塊輸出) | Lua模塊的調用方法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{DISPLAYTITLE:標題}} {{DISPLAYTITLE:標題|noerror}} {{DISPLAYTITLE:標題|noreplace}}
|
- | 本函數用以對當前頁面的標題的格式做出變換,該函數並不會修改頁面本來的標題(註)在url中顯示的標題,只是更改了頁面中標題顯示的文字和效果,例如改變大小寫、下劃線替代空格等。
參數1為「noerror」或「noreplace」時,會阻止由於使用多個該函數而導致的錯誤拋出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{DEFAULTSORT:分類索引}} {{DEFAULTSORTKEY:分類索引}} {{DEFAULTCATEGORYSORT:分類索引}} {{DEFAULTSORT:分類索引|noerror}} {{DEFAULTSORT:分類索引|noreplace}}
|
- | 本函數用以改變當前頁面在分類中的索引,比如{{DEFAULTSORT:A}} 會把頁面分到A部分下。
參數1為「noerror」或「noreplace」時,會阻止由於使用多個該函數而導致的錯誤拋出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#choose:選項1|選項2|選項3}}
|
{{#choose:選項1|選項2|選項3}} → 選項1
|
等概率隨機選擇選項中的一個作為輸出。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{{#cscore:UserName|參數}}
|
{{#cscore:示例用戶|score}} → {{#cscore:示例用戶|score}}{{#cscore:示例用戶|changes}} → {{#cscore:示例用戶|changes}}{{#cscore:示例用戶|pages}} → {{#cscore:示例用戶|pages}}
|
獲取用戶的編輯頁面數(pages)/編輯次數(changes)/戰鬥力(score)。 |
|
參見
- MediaWiki官方文檔
- 魔術字
- 幫助:擴展:解析器函數
- ↑ 由於萌百使用了緩存,因此使用該函數檢測主站頁面可能不會被標記為高開銷,只有檢測多媒體文件(Media虛擬命名空間)會觸發,但仍應該避免在同一頁面中大量使用。
- ↑ User:東東君/從零開始的模板教程#循環語句