模块:IfUtil/doc
这是Module:IfUtil的文档页面
此页面是Module:IfUtil的模块文档。 此页面可能包含了模板的使用说明、分类和其他内容。 |
此模块文档被引用于约167,000个页面。 为了避免造成大规模的影响,所有对此模块文档的编辑应先于沙盒或测试样例上测试。 测试后无误的版本可以一次性地加入此模块文档中,但是修改前请务必于讨论页发起讨论。 模板引用数量会自动更新。 |
ifnewhtmlline
判断输入字符串中是否存在HTML的换行标签
noTrim
由于默认的解析器函数(如{{#if:}}
、{{#ifexpr:}}
)会自动将输入的参数做去除头尾空白或断行字符的操作
这对部分需要使替换引用结果出现换行又要避免出现尾部占位符(如在换行后加入<!---->
或{{void}}
等作法避免trim)是不可行的,或者需要较复杂的语法书写方式(参见mw:Manual:Newlines_and_spaces#Trimming_on_expansion),这将使的模板代码的可读性和可维护性变得十分的差,并且增加模板展开调用甚至可能增加维基媒体服务器的运作负担。
因此为了解决{{#if:}}
、{{#ifexpr:}}
和{{if}}
会自动将参数trim掉的问题,因此这个模块通过Module:Arguments将关闭参数trim功能提供了一个解决方案。
基本用法
{{#invoke:ifUtil
|noTrim|命令|判斷參數|成立時返回|不成立時返回}}
- 简易用法
- 高级用法
{{yesno}}
- 参数顺序:
{{#invoke:ifUtil|noTrim|yesno|布林值|為真時(yes)|為假時(no)|空白時(blank)|非法輸入時(def)|未定義時(¬)}}
- 参数顺序:
- if...elseif...else
{{#invoke:ifUtil|noTrim|expr|判斷式1|式1為真時|式1為假時}}
{{#invoke:ifUtil|noTrim|expr|判斷式1|式1為真時|elseif判斷式2|式2為真時}}
{{#invoke:ifUtil|noTrim|expr|判斷式1|式1為真時|elseif判斷式2|式2為真時|皆為假時}}
{{#invoke:ifUtil|noTrim|expr|判斷式1|式1為真時|elseif判斷式2|式2為真時|elseif判斷式3|式3為真時}}
{{#invoke:ifUtil|noTrim|expr|判斷式1|式1為真時|elseif判斷式2|式2為真時|elseif判斷式3|式3為真時|皆為假時}}
- 以此类推,参数长度没有上限 (除了WP:模板限制)
- 比较
注意留意“文字”与“Yse/No”模板间的空格状况
项目 | 使用Module:IfUtil#noTrim | 使用Help:解析器函数 | ||
---|---|---|---|---|
您所输入的 | 您所看到的 | 您所输入的 | 您所看到的 | |
#ifexpr: |
文字{{#invoke:IfUtil|noTrim|expr|5>3|
Yes
|
No
}}文字
|
文字
Yes 文字 |
文字{{#ifexpr:5>3|
Yes
|
No
}}文字
|
文字Yes文字 |
#ifexpr: |
文字{{#invoke:IfUtil|noTrim|expr|5<3|
Yes
|
No
}}文字
|
文字
No 文字 |
文字{{#ifexpr:5<3|
Yes
|
No
}}文字
|
文字No文字 |
#ifeq: |
文字{{#invoke:IfUtil|noTrim|eq|A|A|
Yes
|
No
}}文字
|
文字
Yes 文字 |
文字{{#ifeq:A|A|
Yes
|
No
}}文字
|
文字Yes文字 |
#ifeq: |
文字{{#invoke:IfUtil|noTrim|eq|A|B|
Yes
|
No
}}文字
|
文字
No 文字 |
文字{{#ifeq:A|B|
Yes
|
No
}}文字
|
文字No文字 |
yesno:是 | 文字{{#invoke:IfUtil|noTrim|yesno|是|
Yes
|
No
}}文字
|
文字
Yes 文字 |
文字{{yesno|是|yes=
Yes
|no=
No
}}文字
|
文字Yes文字 |
#ifexist: 无此条目!! |
文字{{#invoke:IfUtil|noTrim|exist|無此條目!!|
Yes
|
No
}}文字
|
文字
No 文字 |
文字{{#ifexist:無此條目!!|
Yes
|
No
}}文字
|
文字No文字 |
#ifexist: WP:条目 |
文字{{#invoke:IfUtil|noTrim|exist|WP:條目|
Yes
|
No
}}文字
|
文字
Yes 文字 |
文字{{#ifexist:WP:條目|
Yes
|
No
}}文字
|
文字Yes文字 |
所有命令
命令 | 基本用法 | 描述 | ||
---|---|---|---|---|
常规判断 | ||||
if
|
{{#invoke:ifUtil|noTrim|if|判斷的字串|字串有值時返回|字串為空時返回}}
|
{{#if:}} 的不trim版本。
| ||
expr
|
{{#invoke:ifUtil|noTrim|expr|expr表達式|表達式為真時返回|表達式為假時返回}}
|
{{#ifexpr:}} 的不trim版本。
| ||
内容比对 | ||||
eq
|
{{#invoke:ifUtil|noTrim|eq|判斷的字串|字串有值時返回|字串為空時返回}}
|
{{#ifeq:}} 的不trim版本。
| ||
eq|選項=Y/N
|
{{#invoke:ifUtil|noTrim|eq|選項1=Y/N|選項2=Y/N|判斷的字串|字串有值時返回|字串為空時返回}}
|
特殊选项的{{#ifeq:}} 。目前的选项有:
可叠加多个选项。 | ||
eq|trim=no
|
{{#invoke:ifUtil|noTrim|eq|trim=no|比對的字串1|比對的字串2|字串相等時返回|字串不同時返回}}
|
连输入欲比对之字符串都不trim的{{#ifeq:}} 。其会将“foo ”与“foo ”视为相异。
| ||
eq|i=yes
|
{{#invoke:ifUtil|noTrim|eq|i=yes|比對的字串1|比對的字串2|字串相等時返回|字串不同時返回}}
|
忽略大小写的trim的{{#ifeq:}} 。其会将“FOO ”与“foo ”视为相同。
| ||
内容判断 | ||||
error
|
{{#invoke:ifUtil|noTrim|error|欲除錯的內容|內容有錯誤時返回|內容沒有問題時返回}}
|
{{#iferror:}} 的不trim版本。
| ||
exist
|
{{#invoke:ifUtil|noTrim|exist|要判斷是否存在的頁面標題|頁面存在時返回|頁面不存在時返回}}
|
{{#ifexist:}} 的不trim版本。
| ||
工具 | ||||
yesno
|
{{#invoke:ifUtil|noTrim|yesno|可代表布林值的字串|布林值為真時返回|布林值為假時返回}}
|
{{yesno}} 的不trim版本[a],同时也支援{{yesno}}的。|yes= 、|no= 、|def= 、|¬= 和|blank= 等参数。(参见#高级用法#yesno)
| ||
其他if-else類模板
|
{{#invoke:ifUtil|noTrim|<其他if-else類模板>|判斷用參數|成立時返回|不成立時返回}}
|
其他if-else类模板的不trim版本[a]。 | ||
其他模板 [b]
|
{{#invoke:ifUtil|noTrim|<模板名稱>|參數1|參數2|參數3....}}
|
对于不支援或非if-else类的模板会有类似一般地调用模板的效果。 | ||
参数
下表按固定顺序显示了可用的位置参数(参数*
)。对于每个命令,都会标记适用的参数集。例如,如果已给出命令 eq
,那么至少应给出 判斷式①
和比對式
两个参数。
(必要) | (必要) | (ifeq必填) | (可选) | (可选) | (可选) | (可选) | ||||
{{#invoke:ifUtil|noTrim
|
命令
|
判斷式①
|
比对式
|
①成立时
|
否则
|
判断式②
|
②成立时
|
判断式③...
|
}}
| |
---|---|---|---|---|---|---|---|---|---|---|
其他参数
|
其他参数2
|
其他参数3...
| ||||||||
if , expr ,eq ,error ,exist ,yesno ,其他if-else类模板, 其他模板 |
||||||||||
eq
|
||||||||||
if , expr ,eq ,error ,exist ,yesno (yes参数),其他if-else类模板
|
||||||||||
if , expr , eq ,error ,exist ,yesno (no参数), 其他if-else类模板
|
||||||||||
expr , yesno (blank参数), 其他模板
|
||||||||||
expr , yesno (def参数), 其他模板 (可选 2nd, 3rd 等)
|
||||||||||
expr (可选 2nd, 3rd 等), yesno (¬参数), 其他模板
| ||||||||||