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 78% complete.

PD 注意: このページを編集すると、編集内容が CC0 のもとで公開されることに同意したと見なされます。詳細はパブリック・ドメインのヘルプ ページを参照してください。
PD

テンプレートのパラメーターにパーサー関数を使用する際、既定値として空の文字列を指定するためにパイプ記号 (|) を使用します。これは、パラメーターを指定したかどうかを把握して処理するためです。

  • {{{1}}}
サンプル A
{{#if: {{{1}}} | パラメーター 1 は未定義か、または null 以外/空以外です。 | パラメーター 1 は null であり、空の文字列または空白類などのみを含んでいます。}}
結果
パラメーター 1 は未定義か、または null 以外/空以外です。
  • {{{1|}}}
サンプル B
{{#if: {{{1|}}} | パラメーター 1 は定義されていて、null 以外/空以外です。 | パラメーター 1 は未定義か、または定義されているものの null です。空の文字列または空白類などのみを含んでいます。}}
結果
パラメーター 1 は未定義か、または定義されているものの null です。空の文字列または空白類などのみを含んでいます。
比較
テンプレート内での使用例
名前なしパラメーター 1 (1=)
名前ありパラメーター (param=)
パラメーターの条件 サンプル A:
{{#if: {{{1}}}| true| false}}
{{#if: {{{param}}}| true| false}}
サンプル B:
{{#if: {{{1|}}}| true| false}}
{{#if: {{{param|}}}| true| false}}

{{template}}
未定義:
パラメーターが未使用、
名前ありパラメーターにとって重要
TRUE FALSE

{{template|}} .. {{template|1=}} .. {{template|param=}}
定義されているものの、null/空 FALSE FALSE

{{template|value}} .. {{template|1=value}} .. {{template|param=value}}
定義されている
かつ
null 以外/空以外
TRUE TRUE

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.

テンプレート呼び出しでパラメーターが指定されていたかどうかを調べる方法の 1 つは:

{{#ifeq:{{{v|}}}|{{{v|-}}}| v が指定されました (空である可能性があります) | v は指定されませんでした }}

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):

<!-- wrapper template code -->
{{wrapped_template|
normal_parameter={{{normal_parameter|}}}|
sensitive_parameter{{#if:{{{sensitive_parameter|}}}||NULL}}={{{sensitive_parameter}}}|
...
}}

Note that the wrapped_template receives a specified but empty normal_parameter in two cases: when normal_parameter is specified and empty, and when normal_parameter is unspecified (because the default empty value is then specified by the wrapper template).

By contrast, the wrapped_template receives a specified sensitive_parameter only when it is indeed specified, because the #if changes the wrapped_template parameter name to « sensitive_parameterNULL » when sensitive_parameter is undefined.

Note also that wrapped_template receives a specified and empty sensitive_parameter only when the wrapper template receives a specified and empty sensitive_parameter. Of course, one must make sure the suffixed wrapped_template parameter name is meaningless to the wrapped_template for this to work properly.

関連項目[edit | edit source]