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

模板自动参数模式实现自动模板调用的一种机制,自动产生相关参数,为维基所提倡,模板的使用者能够因此免于输入和记忆相关的参数,比如签名、当时日期、复杂的参数。

原因

编辑

有许多模板已广泛应用在非替换参照的方法下,这时模板的内部是不允许以替换参照方式嵌套调用其它模板或魔术字。这个模板就不能产生模板使用者的签名或者使用时的日期等内容。

还有很多模板的参数过于复杂,输入相关的参数费时费劲。

可以把该模板的常用参数用另一个应用替换参照方式的模板来产生对前一模板的自动调用来解决上述问题,后一模板称为生成模板

做法

编辑

对于模板{{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}}