Help:テンプレート展開

This page is a translated version of the page Help:ExpandTemplates and the translation is 100% complete.
Screenshot Expand templates Βικιβιβλία.png

ExpandTemplates(テンプレート展開)は特定のテンプレートを使用中に、そのテンプレートやパーサ関数、変数を展開させるテンプレートのこと。

ExpandTemplatesには入力欄が2つあり、一方はウィキテキスト用、他方はページ名 pagename を記入します。 「結果」欄に展開したウィキテキスト、すなわちテンプレート、パーサ関数、変数は帰納的に展開されます。ページ名pagenameに依存する変数は、提示された pagename に基づいて展開します。 この過程は、ページ保存または「プレビュー」を済ませた後でページのレンダリングを実施する (または生成されたウィキテキストを他の処理へ送る直前の) 中間の結果であり、ウィキテキストの展開を理解しでバグするために役立ちます。 サブスティチュートは対応しません (ここで扱う展開とは別に、編集窓にウィキテキストを入力後、「プレビューを見る」または「保存」ボタンを押したときに実行される展開のことで、生成されたウィキテキストが正しいか「変更点を表示」ボタンを押して任意の編集窓で調べるか、テストページを保存後に編集窓を再度開くと調べることができます。)

これらに加えてプレビューの領域があります。 しかしながら、ここには展開済みのウィキテキストをレンダリングした結果を再度、表示します (タスク T30616。) 表示結果は通常、1回だけ展開した時と同じですが、初回の展開でカッコが生成されると、見た目が変わります。

マジックワードの〔!〕は半角縦棒「|」をテンプレートまたはパーサー関数のパラメーター値に置き換えることができ、特に表の構文に使った場合が当てはまります。 このテンプレートをExpandTemplatesに使用すると、部分的な展開もしくはサブスティチュートが実行できます。

表にTemplate:2xを使うと、{{!}}にはパラメーター区切り子「|」が代入され、通常の展開をさせません。末尾のカラムにプレビューが表示されます (表示内容は二重の展開の結果。)

使用法

元のウィキテキスト 展開されたウィキテキスト レンダリング ExpandTemplates の出力のプレビュー
{{2x|[[MediaWiki]] }} [[MediaWiki]] [[MediaWiki]] MediaWiki MediaWiki MediaWiki MediaWiki
{{2x{{!}}[[MediaWiki]] }} {{2x|[[MediaWiki]] }} MediaWiki }} MediaWiki MediaWiki
{{2x{{!{{!}}}}[[MediaWiki]] }} {{2x{{!|}}[[MediaWiki]] }} }}MediaWiki }} MediaWiki }}

コメントの除去

「コメントの除去」オプションでは、コメントを除去するか選択でき、最終の結果だけでなく展開プロセス全体で実施されます。 するとパーサー関数の出力にも影響します。コメントが#exprまたは#ifexprの表現形式の場合、「コメントを除去」が有効でない場合にはエラーメッセージを表示し、またコメントは#ifおよびifeqにも影響します。

例:

{{#expr:<!--p-->3}}

{{#ifeq:<!--p-->3|3|1|0}}

{{#if:<!--p-->|1|0}}

通常の展開、ExpandTemplates を使い「コメントを除去」が有効の場合:

3

1

0

完全にサブスティチュートした例で、ExpandTemplates を使い「コメントを除去」が無効の場合:

Expression error: Unexpected < operator

0

1

XML パースの樹形図

オプションとして XML パーシングの樹形図 (ウィキテキストを 表記したもので、別称ドキュメントツリーまたはDOMツリーとも呼ぶ) を表示 (Manual:Preprocessor_DOM.php も参照。) 例えば:

a [[b|c]]
{{CURRENTYEAR}}
{{{{{a}}}}}
{{#ifeq:2|3|a|b}}
{{#switch:a|a=3|b=4|a=5}}
{{a|b|c=d[[e|f]]g|h}}
{{{a|b}}}
{{#tag:nowiki|a=b}}
{{#tag:nowiki|aeb}}

出力結果は以下のようになります。

<root>a [[b|c]]
<template lineStart="1"><title>CURRENTYEAR</title></template>
<template lineStart="1"><title><tplarg><title>a</title></tplarg></title></template>
<template lineStart="1"><title>#ifeq:2</title><part><name index="1"/><value>3</value></part><part><name index="2"/><value>a</value></part><part><name index="3"/><value>b</value></part></template>
<template lineStart="1"><title>#switch:a</title><part><name>a</name>=<value>3</value></part><part><name>b</name>=<value>4</value></part><part><name>a</name>=<value>5</value></part></template>
<template lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part><part><name>c</name>=<value>d[[e|f]]g</value></part><part><name index="2"/><value>h</value></part></template>
<tplarg lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part></tplarg></root>
<template lineStart="1"><title>#tag:nowiki</title><part><name>a</name>=<value>b</value></part></template>
<template lineStart="1"><title>#tag:nowiki</title><part><name index="1"/><value>aeb</value></part></template>

その結果:

  • 結果には評価に移る前の処理中の状態が表示されます。 その結果、変数名やパーサー関数の名前、テンプレート類でさえ、検討されていません。 また、半角コロン記号や半角シャープ「#」はまだ未検出のため、変数とパーサー関数とテンプレートの分別ができず、変数やパーサー関数やテンプレートがあるかないかすら検出できません。 そのため、次のようになります。
    • パラメーター項目同士の見分けは半角等号「=」の有無で判断しますが、パーサー関数の特定の項目の場合、結局のところ、パーサー項目はただの平文として扱うこともあります。
    • 「|a=b|a=c」はまだ「|a=c」には短縮されず、理由は等号(イコール記号)の左辺は評価後にしか認識できず、さらにこの短縮はタイトル の評価に左右されるからです。 一例として、書式の#switch:..のタイトル「|a=b|a=c」は、結局は「|a=b」と等しくなります。
  • 半角角カッコ2個のペアは「|」がパラメータの区切り子として解釈されるのを予防し、それでもリンクはツリー内で分離して表示されません。

URL欄に文字を入力

入力するウィキテキストは URL 欄に記入してもよく、例えばurlエンコードだと{{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}}と記入すると出力は//www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput=%7B%7Btexpr%7Cabc%7D%7Dです。 {{!}}Template:!を適用するとテンプレートのtexprがURLで展開しないように制限し、さらに半角の縦棒記号「|」をurlエンコード内の2番目のダミーのパラメーターとの区切り記号と解釈させない働きをします。 またパラメーターを介さずにテンプレート呼び出しを実現し、ExpandTemplatesの入力ボックス内では、無名のパラメーター{{{1}}}を無定義ではなく空の文字列として扱います:例えば{{fullurl:special:ExpandTemplates|wpInput={{tc{{!}}}}}}として。 これは変数やパーサー関数には無効で、カッコ1組に半角パーセント記号を使って対応します (ウィキテキストを参照)。ParserFunctions の接頭辞「#」には%23を代入。

https://www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput={{CURRENTTIME}}.

https://www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput={{%23expr:2*3}}.

クエリのパラメーター
  • wpContextTitle=pagetitle
  • wpGenerateRawHtml=true
  • wpGenerateXml=true
  • wpInput=
  • wpRemoveComments=true
  • wpRemoveNowiki=true

URL:

カスタマイズ

ボックスの幅を調節

入力と結果の表示窓の幅は、既定で 11 文字に制限されています。 最大幅に広げるには、ご利用の CSS に下記のような記述を追加します。

textarea {
    border: 1px solid #2f6fab;
    color: Black;
    background-color: white;
    width: 100%;
    padding: 0.1em;
    overflow: auto;
}

関連項目