Help:テンプレート内でのパーサー関数

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Help:Parser functions in templates and the translation is 47% complete.

Other languages:
العربية • ‎català • ‎Deutsch • ‎Zazaki • ‎English • ‎español • ‎suomi • ‎français • ‎italiano • ‎日本語 • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎Türkçe • ‎українська
PD 注意: このページを編集すると、編集内容が CC0 のもとで公開されることに同意したと見なされます。詳細はパブリック・ドメインのヘルプ ページを参照してください。
PD

テンプレートのパラメーターにパーサー関数を適用する際、既定値を指定するためにパイプ記号 (|) を使用できます。この既定値は、パラメーターが定義されていない時に使用されます。 Used in an #if parser function, the unexpanded text from the undefined parameter will evaluate as true, which may be an unexpected result.

Testing parameters with and without default values
パラメーター {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}} {{#if:<パラメーター>|True|False}}
説明 名前ありなしの例 {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}}
未定義。名前ありパラメーターで使用する方が適切。 {{template}} {{{1}}} True False
定義されているものの、null/空 {{template|}}, {{template|1=}}, {{template|param=}} False False
定義されている。空でも null でもない。 {{template|value}}, {{template|1=value}}, {{template|param=value}} value value True True
  • {{{1}}}
サンプル A
{{#if: {{{1}}} | パラメーター 1 は未定義か、または null 以外/空以外です。 | パラメーター 1 は null であり、空の文字列または空白類などのみを含んでいます。}}
結果
パラメーター 1 は未定義か、または null 以外/空以外です。
  • {{{1|}}}
サンプル B
{{#if: {{{1|}}} | パラメーター 1 は定義されていて、null 以外/空以外です。 | パラメーター 1 は未定義か、または定義されているものの null です。空の文字列または空白類などのみを含んでいます。}}
結果
パラメーター 1 は未定義か、または定義されているものの null です。空の文字列または空白類などのみを含んでいます。

The second usage ({{{1|}}}, sample B) with present empty default is often the desired way to handle situations where a parameter exists, but is comprised only of empty space.

Testing and passing undefined parameters[edit]

To distinguish a possibly empty parameter from an unspecified, one, compare it to itself using {{#ifeq:}} and different defaults. What the defaults are does not matter as long as they are different, so they are typically chosen to be short. The following all work equivalently:

{{#ifeq:{{{v|+}}}|{{{v|-}}}| v was defined (and may be empty) | v was not defined }}
{{#ifeq:{{{v|}}}|{{{v|-}}}| v was defined (and may be empty) | v was not defined }}
{{#ifeq:{{{v|}}}|{{{v}}}| v was defined (and may be empty) | v was not defined }}

In rare cases, a template behaves differently when a parameter is unspecified compared to when it is specified but empty. When this template is used by a wrapper template (which uses the same set of named parameters), one way to ensure undefined parameters remain undefined is as follows (the technique also works with numbered parameters):

{{wrapped_template|
normal_parameter={{{normal_parameter|}}}|
sensitive_parameter{{#if:{{{sensitive_parameter|}}}||NULL}}={{{sensitive_parameter}}}
}}

wrapped_template receives a defined normal_parameter in all cases. When normal_parameter is defined but empty and when it is undefined, wrapped_template receives an empty normal_parameter.

By contrast, the wrapped_template receives a defined sensitive_parameter only when it is indeed defined; when sensitive_parameter is undefined, the #if changes the parameter name to sensitive_parameterNULL. The suffixed parameter name must be meaningless to the wrapped_template for this to work properly.

関連項目[edit]