21

テンプレート パーサーを壊さずにテンプレート パラメーターで「=」文字を使用するにはどうすればよいですか? 私は MediaWIKI 開発者ではないので、コードをデバッグしたり、ログをチェックしたりしていません。テンプレートに渡された文字をエスケープするためのヒントがここにあることを願っています。

次の内容で「Test」というテンプレートを作成します。

{{{1}}}

このような:

{{ Test | R = 3/(2-(1+1)) }} 

複雑な数式の代わりに {{{1}}} をレンダリングします! 「=」文字が原因であると判断しました。

4

4 に答える 4

23

MediaWiki テンプレート パラメーター文字列に等号が含まれている場合、記号の前のすべてがパラメーターの名前と見なされます。等号が含まれていない場合、パラメータ文字列は次に使用可能な数値パラメータに割り当てられます。

したがって、番号付きパラメータ値に等号を実際に含めたい場合の最も簡単な回避策は、次のように明示的に番号を付けることです。

{{ Test | 1 = R = 3/(2-(1+1)) }}

これにより{{{1}}}、テンプレート内が次のように string に展開さR = 3/(2-(1+1))れます。

{{ Test | equation = R = 3/(2-(1+1)) }}

{{{equation}}}同じ文字列に展開されます。

于 2014-01-03T17:55:02.503 に答える
12

{{=}}値が のテンプレートを作成できます=。次に、テンプレートの等号の代わりにそのテンプレートを使用します。次のようにします。

{{ Test | R {{=}} 3/(2-(1+1)) }} 
于 2014-01-03T05:54:27.217 に答える
1

Extension:Variablesが有効になっている場合は、変数を使用します。=変数定義は、とを含むほとんどすべての記号を保持し|、テンプレート展開のみを実行します。そのため、複雑な式や URL を処理する場合、これはかなり安全なアプローチです。

{{ #vardefine: myequation | R = 3/(2-(1+1)) }}
{{ Test | {{ #var: myequation }} }}
于 2015-11-12T02:05:19.990 に答える