跳转到内容

模組:IfUtil/doc

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由A2569875留言 | 贡献2020年3月3日 (二) 18:21 noTrim编辑。这可能和当前版本存在着巨大的差异。

这是Module:IfUtil的文档页面

noTrim

由於預設的解析器函數(如{{#if:}}{{#ifexpr:}})會自動將輸入的參數做去除頭尾空白或斷行字元的操作

這對部分需要使替換引用結果出現換行又要避免出現尾部佔位符(如在換行後加入<!---->{{void}}等作法避免trim)是不可行的,或者需要較複雜的語法書寫方式,這將使的模板代碼的可讀性和可維護性變得十分的差,並且增加模板展開調用甚至可能增加維基媒體伺服器的運作負擔。

此外,現有的Help:解析器函數替代模板{{if}}同為自動trim模板,並且已經廣泛的在許多條目中使用,因此修改該模板的行為有可能大量影響條目內容與顯示。

因此為了解決{{#if:}}{{#ifexpr:}}{{if}}會自動將參數trim掉的問題,因此這個模組透過Module:Arguments將關閉參數trim功能提供了一個解決方案。

基本用法

{{#invoke:ifUtil|noTrim|命令|判斷參數|成立時返回|不成立時返回}}

命令
命令 基本用法 描述
常規判斷
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:}}。目前的選項有:
  • |trim=:不去除頭尾空格比較字串,預設為yes。
  • |i=:是否忽略大小寫,預設為no。
  • |unstrip=:是否忽略擴展標籤,預設為no。
  • |preprocess=:是將傳入的字串式微危機代碼並做一次解析,預設為no。

可疊加多個選項。

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」視為相同。
內容判斷
iferror {{#invoke:ifUtil|noTrim|iferror|欲除錯的內容|內容有錯誤時返回|內容沒有問題時返回}} {{#iferror:}}的不trim版本。
ifexist {{#invoke:ifUtil|noTrim|ifexist|要判斷是否存在的頁面標題|頁面存在時返回|頁面不存在時返回}} {{#ifexist:}}的不trim版本。
工具
yesno {{#invoke:ifUtil|noTrim|yesno|可代表布林值的字串|布林值為真時返回|布林值為假時返回}} {{yesno}}的不trim版本[a],同時也支援{{yesno}}的。|yes=|no=|def==|blank=等參數。
其他if-else類模板 {{#invoke:ifUtil|noTrim|<其他if-else類模板>|判斷用參數|成立時返回|不成立時返回}} 其他if-else類模板的不trim版本[a]
其他模板[b] {{#invoke:ifUtil|noTrim|<模板名稱>|參數1|參數2|參數3....}} 對於不支援或非if-else類的模板會有類似一般地調用模板的效果。
  1. ^ 1.0 1.1 這類模板如{{yesno}}同樣是透過普通的Help:解析器函數實現,因此仍會有trim的問題。此處透過嘗試接收{{模板名稱|判斷式|yes|no}}的輸出來決定要返回哪個未trim參數,若失敗則當作一般模板調用。
  2. ^ if-else模板測試失敗時的效果。

if2number