将 MediaWiki 模板中的参数传递给包含的模板
Hand over parameters from a MediaWiki template to a included one
我正在使用 MediaWiki 扩展 DynamicPageList(第三方),它可以用作模板:
{{#dpl:
|category=foo
|notcategory=bar
}}
我尝试在我的其中一个使用更多参数的模板中使用此模板,例如:
{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}
myTemplate 看起来像这样:
do something with mypara1
...
do something with mypara2
...
{{#dpl:
|category=foo
|notcategory=bar
}}
我知道我的参数,但是 #dpl: 可以使用一个或多个参数。
如何将我的参数与 #dpl: 的参数分开?我怎么能只交出属于#dpl:?
的参数
谢谢,
雷
也许我误解了你的问题,但你可以将参数传递给 DPL,就像传递给模板或另一个 parser function 一样。在大多数情况下,您可能希望添加一个空的默认值:
我的模板:
do something with {{{mypara1}}}
do something with {{{mypara2}}}
{{#dpl:
|category = {{{category|}}} <!-- default to empty string -->
|notcategory = {{{notcategory|}}} <!-- default to empty string -->
}}
这样称呼:
{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}
也将使用缺少的参数:
{{myTemplate
|category=foo
|mypara1=bla
|mypara2=lala
}}
最后我想出了以下解决方案:
DPL 有一个额外的模板 #dplreplace
。我正在使用它来解析我的参数。
调用模板:
{{myTemplate
| filter=category:foo;notcategory:bar
| mypara1=bla
| mypara2=lala
}}
在模板中,我将 :
替换为 =
,将 ;
替换为 {{!}}
。
{{#dpl:
| {{#dplreplace: {{#dplreplace: {{{filter}}} | /:/ | = }} | /;/ | {{!}} }}
| ordermethod = sortkey
| suppresserrors = true
}}
注意:{{!}}
是一个模板,已被 |
取代。
此致;
雷
我正在使用 MediaWiki 扩展 DynamicPageList(第三方),它可以用作模板:
{{#dpl:
|category=foo
|notcategory=bar
}}
我尝试在我的其中一个使用更多参数的模板中使用此模板,例如:
{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}
myTemplate 看起来像这样:
do something with mypara1
...
do something with mypara2
...
{{#dpl:
|category=foo
|notcategory=bar
}}
我知道我的参数,但是 #dpl: 可以使用一个或多个参数。
如何将我的参数与 #dpl: 的参数分开?我怎么能只交出属于#dpl:?
的参数谢谢,
雷
也许我误解了你的问题,但你可以将参数传递给 DPL,就像传递给模板或另一个 parser function 一样。在大多数情况下,您可能希望添加一个空的默认值:
我的模板:
do something with {{{mypara1}}}
do something with {{{mypara2}}}
{{#dpl:
|category = {{{category|}}} <!-- default to empty string -->
|notcategory = {{{notcategory|}}} <!-- default to empty string -->
}}
这样称呼:
{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}
也将使用缺少的参数:
{{myTemplate
|category=foo
|mypara1=bla
|mypara2=lala
}}
最后我想出了以下解决方案:
DPL 有一个额外的模板 #dplreplace
。我正在使用它来解析我的参数。
调用模板:
{{myTemplate
| filter=category:foo;notcategory:bar
| mypara1=bla
| mypara2=lala
}}
在模板中,我将 :
替换为 =
,将 ;
替换为 {{!}}
。
{{#dpl:
| {{#dplreplace: {{#dplreplace: {{{filter}}} | /:/ | = }} | /;/ | {{!}} }}
| ordermethod = sortkey
| suppresserrors = true
}}
注意:{{!}}
是一个模板,已被 |
取代。
此致;
雷