維基百科:模板自動參數模式

模板自動參數模式實現自動模板調用的一種機制,自動產生相關參數,為維基所提倡,模板的用戶能夠因此免於輸入和記憶相關的參數,比如簽名、當時日期、複雜的參數。

原因

編輯

有許多模板已廣泛應用在非替換參照的方法下,這時模板的內部是不允許以替換參照方式巢狀調用其它模板或魔術字。這個模板就不能產生模板用戶的簽名或者使用時的日期等內容。

還有很多模板的參數過於複雜,輸入相關的參數費時費勁。

可以把該模板的常用參數用另一個應用替換參照方式的模板來產生對前一模板的自動調用來解決上述問題,後一模板稱為生成模板

做法

編輯

對於模板{{X}},它的生成模板應當取名為{{X/auto}},命名統一有助於編輯者適應和掌握呼叫生成方法。

{{X/auto}}請記得加入<noinclude>{{AutoTemplateDoc}}</noinclude>

{{X}}<noinclude></noinclude>部分加上說明「[[Wikipedia:模板自动参数模式|本模板支持自動生成]]」。

在生成模板{{X/auto}}中放入類似{{X|自動參數1|自動參數2|...}}的代碼,其中的自動參數根據{{X}}的要求填寫,如此就可以在頁面中使用{{X/auto}}的方式產生對{{X}}的自動調用了。常用的自動參數可以參見魔術字

自動參數代碼範例

編輯

當時年月日

編輯
  • {{<includeonly>subst:</includeonly>#time:c}}
  • {{<includeonly>subst:</includeonly>CURRENTYEAR}}
  • {{<includeonly>subst:</includeonly>CURRENTMONTH}}
  • {{<includeonly>subst:</includeonly>CURRNETDAY}}
  • {{<includeonly>subst:</includeonly>CURRENTTIMESTAMP}}(等效於{{<includeonly>subst:</includeonly>#time:YmdHis}}

簽名

編輯
  • {{<includeonly>subst:</includeonly>4~}}(等效於<includeonly>~</includeonly><includeonly>~~</includeonly>
  • --{{<includeonly>subst:</includeonly>4~}}
  • {{<includeonly>subst:</includeonly>5~}}(等效於<includeonly>~~</includeonly><includeonly>~~~</includeonly>

案例

編輯

支持自動日期及簽名

編輯

複雜參數

編輯

Template:Go將產生一個圍棋譜,但它的參數十分繁雜,可以用{{subst:go/auto}}生產一個易於理解的調用,在這基礎上再做調整。

產生的代碼:

{{Goban
<!-- 19 -->| | | | | | | | | | | | | | | | | | | 
<!-- 18 -->| | | | | | | | | | | | | | | | | | | 
<!-- 17 -->| | | | | | | | | | | | | | | | | | | 
<!-- 16 -->| | | |x| | | | | |x| | | | | |x| | | 
<!-- 15 -->| | | | | | | | | | | | | | | | | | | 
<!-- 14 -->| | | | | | | | | | | | | | | | | | | 
<!-- 13 -->| | | | | | | | | | | | | | | | | | | 
<!-- 12 -->| | | | | | | | | | | | | | | | | | | 
<!-- 11 -->| | | | | | | | | | | | | | | | | | | 
<!-- 10 -->| | | |x| | | | | |x| | | | | |x| | | 
<!--  9 -->| | | | | | | | | | | | | | | | | | | 
<!--  8 -->| | | | | | | | | | | | | | | | | | | 
<!--  7 -->| | | | | | | | | | | | | | | | | | | 
<!--  6 -->| | | | | | | | | | | | | | | | | | | 
<!--  5 -->| | | | | | | | | | | | | | | | | | | 
<!--  4 -->| | | |x| | | | | |x| | | | | |x| | | 
<!--  3 -->| | | | | | | | | | | | | | | | | | | 
<!--  2 -->| | | | | | | | | | | | | | | | | | | 
<!--  1 -->| | | | | | | | | | | | | | | | | | | 
<!--        A B C D E F G H J K L M N O P Q R S T-->|20}}

參見

編輯
  • {{dated}},如果只是為維護模板標記日期,可使用此模板完成,如{{subst:dated|substub}}