维基百科:模板自动参数模式

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

原因

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

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

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

做法

對於模板{{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}}