よみもの:テンプレートの作り方

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動
Smiley.svg よみものページ
この「よみもの」は、かにふとんが作成したものです。
他ユーザーの編集も歓迎いたします。

MediaWikiのテンプレートの作り方を解説します。

単純な例[編集]

基本的には、テンプレートを呼び出した場所にはテンプレートページに書いた文字がそのまま表示されます

説明用に用意したテンプレートで見てみましょう。テンプレート:サンプル1には下の文章が書いてあります。

'''おめでとう!'''あなたはテンプレート呼び出しに成功した!<br>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。

では、この下に{{サンプル1}}と書いて、テンプレート:サンプル1を呼び出してみます。本当にテンプレートを使っているかどうかは、編集画面でソースを表示すると確かめられます。

おめでとう!あなたはテンプレート呼び出しに成功した!
※このテンプレートはEnpedia:Enbooks(仮)/テンプレートの作り方で説明するためのサンプルです。

無事に呼び出せましたね。これにいろいろな工夫を加えることで、エンペディアの執筆に役立つテンプレートを作ることができます。

テンプレート説明文の書き方[編集]

いろいろな表示ができるテンプレートを作る前に、ちょっとだけ下準備。

テンプレート:サンプル1のような方法では、「このテンプレートは○○に使います」のような説明文も一緒に呼び出されてしまいます。これでは困るので、説明文を呼び出さないための特別な書き方を使います。テンプレート名の下に、テンプレートを呼び出した結果と中身を表示するので、見比べてみてください。

テンプレート:サンプル4

{{サンプル4}} → ここだけを呼び出してちょーだい!

<includeonly>ここだけを呼び出してちょーだい!</includeonly><noinclude>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。</noinclude>

テンプレートを書いた人の要望通り、「ここだけを呼び出してちょーだい!」だけが呼び出されました。つまり、<noinclude>~</noinclude>で囲んだ部分は呼び出されないということです。

また、テンプレートページ本体を表示したときに「ここだけを~」を見せたくない場合は<includeonly>~</includeonly>で囲みます。

(※他にも複数通りの書き方がありますが、長くなるので#補足に回します)

ある程度説明が長い場合、{{doc}}を使い、サブページ化する傾向も見られますが、これは任意です。

引数を指定する[編集]

単純な例が分かったところで、実際のテンプレートを見てみましょう。ここではテンプレート:Colorの中身を見てみます。

<includeonly><span style="color:{{{1}}};background-color:{{{bg|transparent}}};">{{{2}}}</span></includeonly><noinclude>{{doc}}</noinclude>

このうち、さきほど解説したテンプレートの説明文を表示する部分を除くと、呼び出される部分は以下のようになります。

<span style="color:{{{1}}};background-color:{{{bg|transparent}}};">{{{2}}}</span>

この中で{{{ }}}で囲まれている部分は「引数」(ひきすう)といい、この部分はテンプレートを呼び出す場所で自由に設定できる変数となります。この例でいえば、{{{1}}}{{{2}}}{{{bg|transparent}}}の3つです。

では、引数の動作を確かめてみましょう。引数は、テンプレート名の後ろに|で区切って引数名=変数の形で指定します。引数名を省略した場合は、前から順に1、2、3……と割り振られます。

{{Color|#FF0000|bg=#FFCCCC|文字も背景も赤くなりました}}文字も背景も赤くなりました

<span style="color:{{{1}}};background-color:{{{bg|transparent}}};">{{{2}}}</span>
↓
<span style="color:#FF0000;background-color:#FFCCCC;">文字も背景も赤くなりました

{{{ }}}で囲んだ部分が指定した引数によって置き換えられているのが分かります。

次に、bg=#FFCCCCを消してみます。テンプレート本体のソースに{{{bg|transparent}}}と書いたことで、bg=を指定しなかった場合はbg=transparentと同じように処理され、背景色がtransparent(透明)になります。

{{Color|#FF0000|文字だけ赤くなりました}}文字だけ赤くなりました

<span style="color:{{{1}}};background-color:{{{bg|transparent}}};">{{{2}}}</span>
↓
<span style="color:#FF0000;background-color:transparent;">文字だけ赤くなりました

しかし2番目の引数を消してしまうと、{{{2}}}がそのまま表示されてしまいます。

{{Color|#FF0000}}{{{2}}}

<span style="color:{{{1}}};background-color:{{{bg|transparent}}};">{{{2}}}</span>
↓
<span style="color:#FF0000;background-color:transparent;">{{{2}}}

引数を省略した場合に{{{ }}}を表示してほしくない場合は、{{{2|}}}のように書く方法もあります。{{{bg|transparent}}}と原理は同じですが、|の右側に何も書いていないため、2番目の引数を省略したら何も表示されないようにできるわけです。


補足[編集]

#テンプレート説明文の書き方での説明の補足です。

  • <noinclude>~</noinclude>囲んだ部分は呼び出されません。(サンプル2・4で使用)
  • <onlyinclude>~</onlyinclude>囲んでいない部分は呼び出されません。(サンプル3・5で使用)
  • <includeonly>~</includeonly>で囲んだ部分はテンプレートページ本体を表示したときに表示されません。(サンプル4・5で使用)

以下のサンプルで比較してみてください。呼び出した結果は全て同じになります。ただし、テンプレートページ本体を表示すると、サンプル2・3とサンプル4・5の違いが分かります。

テンプレート:サンプル2

{{サンプル2}} → ここだけを呼び出してちょーだい!

ここだけを呼び出してちょーだい!<noinclude><br>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。</noinclude>

テンプレート:サンプル3

{{サンプル3}} → ここだけを呼び出してちょーだい!

<onlyinclude>ここだけを呼び出してちょーだい!</onlyinclude><br>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。

テンプレート:サンプル4

{{サンプル4}} → ここだけを呼び出してちょーだい!

<includeonly>ここだけを呼び出してちょーだい!</includeonly><noinclude>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。</noinclude>

テンプレート:サンプル5

{{サンプル5}} → ここだけを呼び出してちょーだい!

<includeonly><onlyinclude>ここだけを呼び出してちょーだい!</onlyinclude></includeonly>※このテンプレートは[[Enpedia:Enbooks(仮)/テンプレートの作り方]]で説明するためのサンプルです。

include(「~を外部から呼び出して含める」という英単語)だらけでややこしいので、3種類のタグを今すぐに覚える必要はありません。テンプレートの説明文を書くときには特別な書き方をすることを覚えておきましょう。