ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Help:模板扩展语法 - Wikipedia

Help:模板扩展语法

维基百科,自由的百科全书

维基百科使用手册目录 · 關於 · 阅读 · 编辑 · 管理 · 开发 · 附錄 · 元zh-hans:帮助;zh-hant:幫助;zh-tw:說明;

您可以在元维基找到更多與此項目相關的訊息:

模板扩展语法是一个MediaWiki扩展,包含多个解析函数解释器。本扩展的典型语法是:

{{#函数名: 参数1 | 参数2 | 参数 3 …}}

目前有预定义的函数:exprififeqifexprswitchrand暂时被废除)。

各函数名都对大小写不敏感。

语句中的空格、换行等空白字符将被省略。

目录

[编辑] 函数

[编辑] expr

参见:Help:计算

expr函数,计算数学表达式。语法为:

{{ #expr: 表达式 }}

表达式支持的运算符有:

运算符 名称 优先级 元数 结合性 样例
+ 9 1 {{#expr: + 7}} = 7
- 9 1 {{#expr: - 7}} = -7
not 逻辑非 9 1 {{#expr: not 7}} = 0
* 8 2 {{#expr: 30 * 7}} = 210
/ 8 2 {{#expr: 30 / 7}} = 4.2857142857143
div 8 2 {{#expr: 30 div 7}} = 4.2857142857143
mod 8 2 {{#expr: 30 mod 7}} = 2
+ 6 2 {{#expr: 30 + 7}} = 37
- 6 2 {{#expr: 30 - 7}} = 23
round 舍入 5 2 {{#expr: 30 / 7 round 7}} = 4.2857143
= 等于 4 2 {{#expr: 30 = 7}} = 0
< 小于 4 2 {{#expr: 30 < 7}} = 0
> 大于 4 2 {{#expr: 30 > 7}} = 1
<= 小于等于 4 2 {{#expr: 30 <= 7}} = 0
>= 大于等于 4 2 {{#expr: 30 >= 7}} = 1
<> 不等于 4 2 {{#expr: 30 <> 7}} = 1
 != 不等于 4 2 {{#expr: 30 != 7}} = 1
and 逻辑与 3 2 {{#expr: 30 and 7}} = 1
or 逻辑或 2 2 {{#expr: 30 or 7}} = 1

round运算对运算数正负,位数正负都有不同的表现,参见下例。

逻辑运算符把假映射为0,把真映射为非0,且返回值只有0或1。

同一表达式中先计算高优先级运算。括号优先级高于一切。

[编辑] if

if函数是一个if-then-else结构。语法是:

{{#if: <判断字符串> | <then字符串> | <else字串串> }}
{{#if: <判断字符串> | <then字符串> }}

若判断字符串为非空字符串(忽略前导或后缀空格),则函数返回then字符串,否则函数返回else字符串。else字符可被省略而不会造成错误,但函数在判断字符串为空时便会返回空字符串。

[编辑] ifeq

ifeq比较两个字符串,返回比较结果。语法为:

{{#ifeq: <字符串1> | <字符串2> | <相等时返回的字符串> | <不相等时返回的字符串> }}

注意:两个空字符串是相等的。

示例:

假设模板Ifeq test的内容是

{{#ifeq:{{{lang}}}|zh|我使用中文|I don't use Chinese}}

则{{Ifeq test|lang=zh}}的结果是我使用中文;而{{Ifeq test|lang=en|I prefer English}}的结果是I don't use Chinese

[编辑] ifexist

ifexist根據指定名稱的頁面是否存在,返回兩個參數中的一個。用法:

{{#ifexist: <待測頁面標題> | <存在文字> | <不存在文字> }}

示例:

  • {{#ifexist:test|有test頁面|無test頁面}} 得到無test頁面
  • {{#ifexist:User:Sex|該用戶存在|該用戶不存在}} 得到 該用戶不存在
  • {{#ifexist:维基百科||×}} 得到

[编辑] ifexpr

ifexpr计算数学表达式,并根据计算结果返回字符串。

{{ #ifexpr: <表达式> | <then字符串> | <else字符串> }}

若表达式经计算不为0,则函数返回then字符串,否则函数返回else字符串。表达式语法与expr相同。

[编辑] switch

switch将一个值与多个预设值比较,若有匹配时则返回指定字符串,即双射。语法是:

{{ #switch: <比较值>
| <预设值1> [= <结果1>]
| <预设值2> [= <结果2>]
| ...
| <预设值n> [= <结果n>]
| [#default = ]<缺省结果> 
}}

switch将从左往右逐一尝试,直到出现匹配。函数将返回第一个匹配值对应的结果,而忽略后面的匹配值。如果没有匹配,函数将返回缺省结果。如果缺省结果没有设置,函数将返回空串。

注意:“缺省结果”是最后一个没有等号的预设值或“#default”预设值对应的结果;如果期望把一个包含“=”号的字符串作为缺省结果,则必须采用“#default”预设值形式。例如:

#default = <span style="color:red;">red</span>

switch也可用作满射(多对一,避免重复设置结果)。即某预设值后未设置结果,这样如果该预设值与比较值匹配,则函数返回第一个有结果的预设值的结果。例如:

{{ #switch: <比较值>
| <预设值1>
| <预设值2>
| <预设值3> = <结果3>
| <缺省结果>
}}

如果比较值与预设值1或预设值2匹配,都将返回结果3。注意:“#default”后必须有“=”,但其他预设值可以使用“#default”的结果。

[编辑] time

time是一个时间日期格式化函数,它的语法为:

{{ #time: 格式参数 }}

或者

{{ #time: 格式参数 | 时间参数 }}

下表以北京时间2008年4月6日(星期日)10时02分05秒(UTC时间2008-04-06 02:03:05)为例说明各格式参数的作用。

格式参数 说明 显示结果
A 显示AM或PM AM
a 显示am或pm am
c 显示长日期 2008-04-06T02:03:05+00:00
D 星期数,以一个汉字显示
d 日期日数,有0补齐, 06
F或M 月份 4月
G或g 当前UTC时间小时数,1位或2位数字 2
H或h 小时数,2位数字 02
i 分钟数,2位数字 03
j 日数,2位数字 6
L 日期星期数,1位数字,星期日为1,星期六为7 1
l 日期星期数,1位汉字 星期日
m 月份数,2位数字 04
N 星期数,星期一为1,星期日为7 7
n 月份数,1位或2位数字 4
r 英文长日期格式 Sun, 06 Apr 2008 02:03:05 +0000
s 秒数 05
t 该月天数 30
U 时间序数,1970-1-1 0:0:1为1 1207447385
W 日期周数,显示日期为当年第几周 14
w 星期数,星期日为0,星期六为6 0
Y 日期年份,4位数字 2008
y 日期年份,2位数字 08
z 显示日期为当年第几周 96

系统默认的时间参数为当前UTC+0时间,可以使用{{#time:参数|+8 hours}}得到当前北京时间(UTC+8时间)。

时间参数可以使用绝对时间,如“2008-12-31 23:59:59”,也可以使用相对时间,如“+7 days”或者“-5 hours”得到默认时间7日之后或默认时间5小时之前的时间。也可以二者混合使用,比如{{#time:Y-m-d H:i:s|2001-2-3 04:05:06 +1 year +2 months +3 days +4 hours +5 minutes +6 seconds}}返回 2002-04-06 08:10:12

使用xr可以在其后显示罗马数字,如{{#time:xrY年xrm月xrd日|2008-12-31}}显示为MMVIII年XII月XXXI日

[编辑] language

#language得到指定語言代碼的該語言名稱。

{{#language:de}} 得到 Deutsch
{{#language:en}} 得到 English
{{#language:ja}} 得到 日本語
{{#language:nl}} 得到 Nederlands
{{#language:zh}} 得到 中文
{{#language:zh-cn}} 得到 ‪中文(中国大陆)‬
{{#language:zh-tw}} 得到 ‪中文(台灣)‬
{{#language:zh-hk}} 得到 ‪中文(香港)‬
{{#language:zh-sg}} 得到 ‪中文(新加坡)‬

[编辑] subst

应用subst:到模板扩展,必须在subst:和#之间不能有空格,才可以正常工作。

[编辑] 表格

模板扩展函数中由于使用了“|”管道符做参数分隔符,所以不能包括表格所需要的“|”符。要想在输出中包含表格,可以通过以下两个办法达到:

  1. 通过嵌套模板来达到隐藏“|”的目的。比如:{{!}}
  2. 使用HTML语法。

[编辑] 参见

其他语言


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -