Template:Syesno
外观
| 本模板必須用於替换引用。 若要在一般情況下使用,請使用{{syesno}}。 |
用法:{{subst:#if:{{{{{|safesubst:}}}syesno|{{{1}}}}}|yes時文字|no時文字}}
介紹
{{syesno}}是{{yesno}}的替換引用(subst:)相容版本,也是{{safeyesno}}的修改版本。其主要功能是在模板需要支援subst:展開時,將各種代表「是」或「否」的字串範式化,同時避免產生多餘的代碼殘留或 HTML 註釋。
機制/原理
{{yesno}}及{{safeyesno}}模板在沒有傳入參數時,為了特定排版需求會輸出<!-- null -->註釋。然而,當該模板被置於其他解析器函數(如 #if)內部並執行替換引用時,這些 HTML 註釋會被判斷為非空字串,導致邏輯流失效。
本模板基於原生的#switch與lc:解析器函數編寫,在否或空值狀態下輸出乾淨的空字串,因此能在多層巢狀的safesubst:環境下正常運作。
用法
判定模式
模板共有以下五種判定邏輯:
- 是:輸入內容為
yes、y、true、t、1、是(不分大小寫)。 - 否:輸入內容為
no、n、false、f、0、否(不分大小寫)。 - 空值:輸入內容為空字串。
- 未定義:未定義輸入內容或輸入為
¬。 - 其他字串:輸入上述以外的內容。
參數
1(第一個匿名參數):需要進行邏輯判定的字串。yes:當判定為「是」時的返回值(預設為yes)。no:當判定為「否」時的返回值(預設為空字串)。blank:當判定為「空值」時的返回值(預設會後援至no的設定值)。¬:當判定為「未定義」時的返回值(預設為空字串)。def:當判定為「其他字串」時的返回值(預設會後援至yes的設定值)。
示例
在開發支援替換引用的模板時,常配合#if使用:
{{{{{|safesubst:}}}#if: {{{{{|safesubst:}}}syesno|{{{rounded|}}}}} | border-radius:15px; }}