トランスクルージョンとは?定義・仕組み・ウィキでの活用(テンプレート)
トランスクルージョンとは何かを定義・仕組み・ウィキでのテンプレート活用法まで図解と実例で分かりやすく解説。初心者向けの導入・除外・ネスティング対策も
トランスクルージョンとは、ある電子文書(ページ)の内容を別の文書に「コピー」することなく、その場で読み込んで表示する仕組みです。元のコンテンツが変更されると、その変更はトランスクルード(包含)しているすべてのページに自動的に反映されます。2つの文書はハイパーテキストで結ばれていると考えられます。英語の "transclusion" はtrans(横断)とinclusion(包含)を組み合わせた語で、「別の場所から持ち込まれた内容を含む」という意味を持ちます。
ウィキペディアなどのMediaWiki系サイトでは、特にテンプレート(共通部品)を別の記事に挿入するときにトランスクルージョンが多用されますが、テンプレート以外のページ同士の包含にも使えます。
仕組み(簡易説明)
ページ名の周りに二重中括弧{{ }}を付けると、ソフトウェアはその参照先ページのwikiのソースコードを読み込み、HTMLに変換して現在のページに組み込みます。変換はレンダリング時に行われるため、参照先が更新されていれば表示にも即座に反映されます。こうした「他ページの内容を参照して挿入する」動作を、元の英語のまま「リファレンシング(referencing)」や日本語で「参照」と呼ぶことがあります。
基本的な使い方(例)
- テンプレートを挿入する基本形:
{{テンプレート名}} - パラメーター付きの呼び出し:
{{テンプレート名|値1|名前=値2}}— テンプレート側でパラメータを受け取り、挿入先ごとに表示を変えられます。 - ページ内の特定セクションだけを挿入する:
{{:ページ名#見出し}}— コロン(:)を先頭につけることで名前空間を明示し、#でセクションを指定できます。
除外・限定の方法
テンプレートやページの一部だけを「含めない」「含める」といった制御も可能です。MediaWikiでは次のタグがよく使われます(表示例は実際のウィキでの記法を示します)。
<noinclude>...</noinclude>— この中の内容はテンプレート本体では表示されるが、テンプレートをトランスクルージョンした先には含まれません(カテゴリ付けのコードやテンプレートの説明などに利用)。<includeonly>...</includeonly>— テンプレートとして使われるときだけ含まれ、テンプレート自身のページを直接閲覧したときは表示されません。<onlyinclude>...</onlyinclude>— このタグで囲まれた部分のみがトランスクルージョン先に含まれ、それ以外は無視されます。
ネスティング(入れ子)と制限
トランスクルードされたページ内にさらに別のページをトランスクルードすること(ネスティング)は可能で、これによりモジュール化や共通部品の多段階化ができます。しかし、ネストが深くなりすぎると無限ループ(AがBを含み、BがAを含むなど)や過度の再帰が発生する恐れがあるため、ソフトウェア側でトランスクルージョンの深さに制限が設けられていることが一般的です(実際の上限値は実装や設定に依存します)。制限を超えるとレンダリングが停止したり、エラー表示になったりします。
利点と注意点
- 利点
- 中央で編集すれば複数ページに変更が反映されるため、保守性が高まる。
- 共通レイアウト(インフォボックス、ナビゲーション、著作欄など)を一元管理できる。
- テンプレートのパラメータで柔軟に表示を切り替えられる。
- 注意点
- トランスクルージョンが多用されるとページ間の依存関係が複雑になり、編集やトラブルシューティングが難しくなる。
- レンダリング時に含み先を読み込むため、過剰なトランスクルージョンはパフォーマンスに影響する場合がある。
- テンプレート内でのロジックが複雑化すると、利用者にとって理解しづらくなることがある。
実務上のヒント
- テンプレートは用途ごとに分け、役割を明確にしておく(例:外部リンク用、警告ボックス用、インフォボックス用)。
- テンプレートに説明文や使用例を記述しておくと、他の編集者が使いやすくなる。
- 大きなネストや循環参照が疑われる場合は、段階的にトランスクルージョンを解除して原因を特定する。
まとめると、トランスクルージョンは文書の再利用性と一貫性を高める強力な手法ですが、依存関係やパフォーマンス、可読性に注意して設計・運用することが重要です。
質問と回答
Q:トランスクルージョンとは何ですか?
A:トランスクルージョンとは、ある電子文書の内容をコピーすることなく、別の文書で利用する方法です。2つの文書はハイパーテキストで接続されており、ページ名の周りに二重中括弧{{ }}が置かれると、ソフトウェアはそれを読み、元のページのソースコードの変換を続ける前に、その時点でそのページのコンテンツを追加することになります。
Q: ウィキペディアでは、トランスクルージョンはどのように機能するのですか?
A: ウィキペディアでは、通常、テンプレートと呼ばれる特別な記事の内容を他の記事に入れるためにトランスクルージョンが使われますが、他の種類の記事でも機能します。二重中括弧{{ }}がページ名の周りに置かれると、ソフトウェアはそれを読み、元のページのソースコードの変換を続ける前に、その時点でそのページの内容を追加します。
Q:オリジナル文書に変更があった場合はどうなりますか?
A: オリジナル文書に変更があった場合、その文書からトランスコードされたコンテンツを使用している記事には、自動的に変更が表示されます。
Q: 何段階までトランスクルージョンを行うことができるのか、制限はありますか?
A: はい、プログラム翻訳の際に問題となる偶発的または意図的な無限ループを防ぐために、トランスクルージョンのレベル数に制限があります。
Q:トランスクルージョンを使用する際の参照とは何ですか?
A: 参照とは、中括弧{{ }}でページ名を指定し、その内容を別の文書内のある箇所に追加できるようにすることです。
Q: 転送されたページの一部を除外することは可能ですか?
A: はい、トランスクルードされたページの一部を除外することも、1つのセクションのように一部を含めることも可能です。
Q:トランスクルード・ページに他のトランスクルード・ページを含めることは可能ですか?A:はい、これはネストと呼ばれ、偶発的または意図的な無限ループを防ぐために設定された限界に達するまで行うことができ、プログラムの翻訳に問題を引き起こす可能性があります。
百科事典を検索する