檢視 使用說明:模板擴展語法 的原始碼
←
使用說明:模板擴展語法
前往:
導覽
、
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
模板擴展語法是一個MediaWiki擴展,包含多個解析函數解釋器。本擴展的典型語法是: :<nowiki>{{</nowiki>#函數名: 參數1 | 參數2 | 參數 3 …}} 目前有預定義的函數:<tt>expr</tt>,<tt>if</tt>,<tt>ifeq</tt>,<tt>ifexpr</tt>,<tt>switch</tt>(<tt>rand</tt>暫時被廢除)。 各函數名都對大小寫不敏感。 語句中的空格、換行等空白字符將被省略。 == 函數 == === expr === <tt>expr</tt>函數,計算數學表達式。語法為: <nowiki>{{</nowiki> #expr: ''表達式'' }} 表達式支持的運算符有: {| class="homebg1" style="text-align: right;" ! 運算符 || 名稱 || 優先級 || 元數 || 結合性 || 樣例 |- | + || 正 || 9 || 1 || 右 || <nowiki>{{#expr: + 7}}</nowiki> = {{#expr: + 7}} |- | - || 負 || 9 || 1 || 右 || <nowiki>{{#expr: - 7}}</nowiki> = {{#expr: - 7}} |- | not || 邏輯非 || 9 || 1 || 右 || <nowiki>{{#expr: not 7}}</nowiki> = {{#expr: not 7}} |- | * || 乘 || 8 || 2 || 左 || <nowiki>{{#expr: 30 * 7}}</nowiki> = {{#expr: 30 * 7}} |- | / || 除 || 8 || 2 || 左 || <nowiki>{{#expr: 30 / 7}}</nowiki> = {{#expr: 30 / 7}} |- | div || 除 || 8 || 2 || 左 || <nowiki>{{#expr: 30 div 7}}</nowiki> = {{#expr: 30 div 7}} |- | mod || 模 || 8 || 2 || 左 || <nowiki>{{#expr: 30 mod 7}}</nowiki> = {{#expr: 30 mod 7}} |- | + || 加 || 6 || 2 || 左 || <nowiki>{{#expr: 30 + 7}}</nowiki> = {{#expr: 30 + 7}} |- | - || 減 || 6 || 2 || 左 || <nowiki>{{#expr: 30 - 7}}</nowiki> = {{#expr: 30 - 7}} |- | round || 舍入 || 5 || 2 || 左 || <nowiki>{{#expr: 30 / 7 round 7}}</nowiki> = {{#expr: 30 / 7 round 7}} |- | = || 等於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 = 7}}</nowiki> = {{#expr: 30 = 7}} |- | < || 小於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 < 7}}</nowiki> = {{#expr: 30 < 7}} |- | > || 大於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 > 7}}</nowiki> = {{#expr: 30 > 7}} |- | <= || 小於等於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 <= 7}}</nowiki> = {{#expr: 30 <= 7}} |- | >= || 大於等於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 >= 7}}</nowiki> = {{#expr: 30 >= 7}} |- | <> || 不等於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 <> 7}}</nowiki> = {{#expr: 30 <> 7}} |- | != || 不等於 || 4 || 2 || 左 || <nowiki>{{#expr: 30 != 7}}</nowiki> = {{#expr: 30 != 7}} |- | and || 邏輯與 || 3 || 2 || 左 || <nowiki>{{#expr: 30 and 7}}</nowiki> = {{#expr: 30 and 7}} |- | or || 邏輯或 || 2 || 2 || 左 || <nowiki>{{#expr: 30 or 7}}</nowiki> = {{#expr: 30 or 7}} |} round運算對運算數正負,位數正負都有不同的表現,參見下例。 *<nowiki>{{#expr: 300/7 round 1}}</nowiki> = {{#expr: 300/7 round 1}} *<nowiki>{{#expr: 300/7 round -1}}</nowiki> = {{#expr: 300/7 round -1}} *<nowiki>{{#expr: -300/7 round 1}}</nowiki> = {{#expr: -300/7 round 1}} 邏輯運算符把假映射為0,把真映射為非0,且返回值只有0或1。 同一表達式中先計算高優先級運算。括號優先級高於一切。 === if === <tt>if</tt>函數是一個if-then-else結構。語法是: <nowiki>{{</nowiki>#if: ''<判斷字符串>'' | ''<then字符串>'' [| ''<else字符串>'' ]}} 若判斷字符串為非空字符串(忽略前導或後綴空格),則函數返回then字符串,否則函數返回else字符串。else字符可被省略而不會造成錯誤,但函數在判斷字符串為空時便會返回空字符串。 === ifeq === <tt>ifeq</tt>比較兩個字符串,返回比較結果。語法為: <nowiki>{{</nowiki>#ifeq: ''<字符串1>'' | ''<字符串2>'' [| ''<相等時返回的字符串>'' [| ''<不相等時返回的字符串>'' ]]}} 注意:兩個空字符串是相等的。 === ifexist === ifexist根據指定名稱的頁面是否存在,返回兩個參數中的一個。用法: {{#ifexist: ''<待測頁面標題>'' | ''<存在文字>'' | ''<不存在文字>'' }}; 示例: *<nowiki>{{</nowiki>#ifexist:test|有test頁面|無test頁面}} 得到 {{#ifexist:test|有test頁面|無test頁面}} *<nowiki>{{</nowiki>#ifexist:user:sex|該用戶存在|該用戶不存在}} 得到 {{#ifexist:user:sex|該用戶存在|該用戶不存在}} *<nowiki>{{</nowiki>#ifexist:Calculation|Yes|Oops}} 得到 {{#ifexist:Calculation|Yes|Oops}} === ifexpr === <tt>ifexpr</tt>計算數學表達式,並根據計算結果返回字符串。 <nowiki>{{</nowiki> #ifexpr: ''<表達式>'' | ''<then字符串>'' [| ''<else字符串>''] }} 若表達式經計算不為0,則函數返回then字符串,否則函數返回else字符串。表達式語法與<tt>expr<tt>相同。 === switch === <tt>switch</tt>將一個值與多個預設值比較,若有匹配時則返回指定字符串,即雙射。語法是: <nowiki>{{</nowiki> #switch: ''<比較值>'' | ''<預設值1>'' [= ''<結果1>''] | ''<預設值2>'' [= ''<結果2>''] | ''...'' | ''<預設值n>'' [= ''<結果n>''] | [#default = ]''<缺省結果>'' }} <tt>switch</tt>將從左往右逐一嘗試,直到出現匹配。函數將返回第一個匹配值對應的結果,而忽略後面的匹配值。如果沒有匹配,函數將返回缺省結果。如果缺省結果沒有設置,函數將返回空串。 注意:「缺省結果」是'''最後一個沒有等號'''的預設值或「#default」預設值對應的結果;如果期望把一個包含「=」號的字符串作為缺省結果,則必須采用「#default」預設值形式。例如: <nowiki>#default = <span style</nowiki><span style="color:red;">=</span><nowiki>"color:red;">red</span></nowiki> <tt>switch</tt>也可用作滿射(多對一,避免重複設置結果)。即某預設值後未設置結果,這樣如果該預設值與比較值匹配,則函數返回'''第一個有結果的'''預設值的結果。例如: <nowiki> {{</nowiki> #switch: ''<比較值>'' | ''<預設值1>'' | ''<預設值2>'' | ''<預設值3>'' = ''<結果3>'' | ''<缺省結果>'' }} 如果比較值與預設值1或預設值2匹配,都將返回結果3。注意:「#default」後必須有「=」,但其他預設值可以使用「#default」的結果。 ===time=== <tt>time</tt>是一個時間日期格式化函數,它的語法為: <nowiki>{{</nowiki> #time: ''format'' }} 或者 <nowiki>{{</nowiki> #time: ''format'' | ''time'' }} ''format''參數是時間格式化設置,與php的date使用方法很相似。 [http://php.net/date PHP's date] :以下格式碼在php中也具有相同的含義。重大差異在於PHP的國際化處理 (即語言和locale的不同處理) 在ParserFunctions中將視為錯誤並被報告出來。所有數字格式化碼按本地語言返加格式化後的數字,可以使用xn指定的編碼來覆蓋它。 {| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" ! 編碼 ! 描述 ! 範例輸出 |-------------- | d | 所在月份的第幾天,有前導零 | 04 |-------------- | D | 簡寫的星期。 | Mon |-------------- | j | 所在月份的第幾天,沒有前導零 | 3 |-------------- | l | 完整的星期。 | Monday |-------------- | F | 完整的月份 | January |-------------- | m | 數字表示的月份,有前導零 | 01 到 12 |-------------- | M | 簡寫的月份。 | Jan |-------------- | n | 數字表示的月份,沒有前導零 | 1 to 12 |-------------- | Y | 4位數的年份 | 2006 |-------------- | y | 2位數的年份 | 06 |-------------- | H | 小時,有前導零 | 00 to 23 |-------------- | i | 分鐘,有前導零 | 00 to 59 |-------------- | s | 秒,有前導零 | 00 to 59 |} <!--The following format codes are extensions to the PHP syntax: {| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;" ! Code ! Description |-------------- | xn | Format the next numeric code as a raw ASCII number. For example, in the Hindi language, {{ #time:H, xnH}} produces ०६, 06. |-------------- | xr | Format the next numeric code as a roman numeral. |-------------- | xg | Output the genitive form of the month name, for languages which make such a distinction between genitive and nominative. |-------------- | xx | A literal "x" |} More format codes may be added in the future, as demanded by the users of this extension. This may come in the form of either a more complete implementation of PHP's format codes, or additional "x" codes. --> 所有非格式化編碼的字符將直接輸出。有兩個轉義字符可以輸出原始內容。 *兩個引號中的字符將直接輸出(引號本身去掉),沒有對應的引號將直接輸出: ** <nowiki>{{ #time: "本月是" m}}</nowiki> → 本月是05 ** <nowiki>{{ #time:i's"}}</nowiki> → 20'11" * 支持PHP的date()中反斜杠。如 \H 輸出一個原始字符 H, \" 輸出一個原始字符 "。 ''time''參數的格式與PHP的strtotime()函數的參數格式相同。支持相對時間的計算。如「+10 hours」。更多信息可以查看[http://www.gnu.org/software/tar/manual/html_node/tar_109.html the GNU tar manual]。 如果時間參數沒有指定,則默認為所在的文章轉化成HTML文檔時的時間。注意,由於緩存,文章上觀看到的時間和實際可能有近一周時間的出入。如果有必要可以手工更新,對文章不做任何更改進行保存就可以刷新緩存(「空編輯」)。 ====Examples==== *<nowiki>{{#time:Y年M月j日 |-14 days}}</nowiki> 得到14天前的日期: {{#time:Y年F月j日|-14 days}} *<nowiki>{{#time:H:i|+8 hours}}</nowiki> 得到當前的UTC+8時間: {{#time:H:i|+8 hours}} == subst == 應用subst:到模板擴展,必須在subst:和#之間不能有空格,才可以正常工作。 == 表格 == 模板擴展函數中由於使用了「|」管道符做參數分隔符,所以不能包括表格所需要的「|」符。要想在輸出中包含表格,可以通過以下兩個辦法達到: #通過嵌套模板來達到隱藏「|」的目的。 #使用HTML語法。 == 參見 == *[[Help:模板|模板]] [[Category:幫助文檔|MBKZYF]]
返回至
使用說明:模板擴展語法
。
導覽選單
個人工具
登入
命名空間
說明頁面
討論
變體
檢視
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連結至此的頁面
相關頁面修訂記錄
特殊頁面
頁面資訊