Template:記事名の制約

半永久的に拡張半保護されているテンプレート
テンプレートの解説[表示] [編集] [履歴] [キャッシュを破棄]

このテンプレートは、様々な理由から名称の正確な表記がそのページの記事名として使えない、あるいは正しく表示できない文字(アンダースコアなど)を含む場合に使用します。この問題について詳しくは、Wikipedia:記事名の付け方Help:ページ名をご覧ください。

このテンプレートを使用すると、ウェブブラウザ「タイトル」バーの表示が変更されます。さらに、記事名と正確な表記の差異がアンダースコア(_)、上付き文字(歌手「Tommy february6」の"6"の部分)、下付き文字を意味する「H2O」の"2"の部分)のみの場合、記事名を正しい表記に置換させることができます。そのほかの記号などの場合はメッセージを表示させます。

1文字目をabcといった小文字で表示したいだけという目的には、Template:小文字を使用してください。

これを使用しても、記事の編集履歴などや、ウェブブラウザの「アドレス」バーでは置換されません。

使い方と注意

{{記事名の制約|(引数)}}
または
{{記事名の制約|title=(引数)}}
  • (引数)」の部分に名称の正しい表記(例:Shift JISではShift_JIS)を記述してください。引数で指定した表記がアンダースコアや上付き文字、下付き文字のタグを除く部分で本来の記事名と異っている場合は記事名の置換が動作せず、メッセージが表示されます。特に曖昧さ回避のための括弧を使用している場合は注意してください。
  • subst: は使わずに出力させてください
  • 前後に空行を入れないでください。
  • 引数の一部として画像TeX表記を使用する場合は注意が必要です。そのような場合、記事名の置換は起きませんが、タイトルバーの表示が意図しないものに変更されることがあります。これを防ぐために、次のセクションで説明するdisablerealtitleパラメータを指定してください。
使用例
記事名 記述 結果
(メッセージの表示/非表示)
Tommy february6 (アルバム) {{記事名の制約|Tommy february<sup>6</sup> (アルバム)}} 非表示[注釈 1]
H2O[注釈 2]非転送 {{記事名の制約|H<sub>2</sub>O}}
C Sharp {{記事名の制約|C#}} 表示
めちゃ×2イケてるッ! {{記事名の制約|めちゃ<sup>2</sup>イケてるッ!}}

めちゃ×2イケてるッ!では引数に本来の記事名とは異なる部分(×を含んでいない)が存在していることによってメッセージが表示されます。

表示

実際の記事名と引数として指定した文字列の差異が、アンダースコアと半角スペースの違いや先頭1文字の大文字/小文字の違いのみの場合に、引数の文字列を記事名として表示します。さらに、JavaScriptが有効になっているウェブブラウザでは、差異が前述のものに加えて、フォントサイズ・上付き文字・下付き文字を指定するHTMLタグのみの場合、引数文字列が記事名として表示されます(詳細は次のセクションを参照)。

ただし標準以外の名前空間(Category、Portalなど)で使った場合、:に次ぐ文字列で反映されます。またJavaScriptによる書き換え処理では、利用者名前空間に導入すると、利用者:がUser:の文字列に置換されるなど、名前空間部分を意図しないように書き換えてしまうことがあります。

上述の比較処理の結果として、またブラウザのJavaScriptが無効になっているために、記事名の書き換えが起こらない場合、以下のメッセージが表示されます。


disablerealtitleパラメータを使用すると、このJavaScriptによる記事名の書き換え機能を無効にすることができます。
{{記事名の制約|title=正確な記事名|disablerealtitle=yes}}
などと記述してください。

技術的な解説

前のセクションで述べたように、記事名(およびタイトルバー)の書き換え機能は二重に実装されています。

第1段階は、MediaWikiのDISPLAYTITLEマジックワードを利用しています。ここでは記事名の見出し(最初の<h1>要素)とタイトルバーの表示は常に同一です。

第2段階のJavaScriptによる処理はMediaWiki:Common.js (→プロジェクト:ウィキ技術部/共通スクリプト)にて実装されています。"Technical restrictions" title fix で始まるブロックを参照してください。(2016年9月に除去されています)以下は大まかな解説です。

前提

以下を全て満たす場合に動作します。

  • id="RealTitleBanner"を持つ要素が存在する(通常、テンプレート全体を囲む<div>要素などに付く)
  • id="RealTitle"を持つ要素が存在する(本来の名称を示す部分を<span>で囲み、このidを付ける)
  • id="DisableRealTitle"を持つ要素が存在しない
  • 真偽値 disableRealTitleが偽である(ユーザスクリプトで無効にするためのスイッチ)

動作

  1. id="RealTitle" とした要素の中身を(A)とし、(A)からHTML要素を除いたプレーンテキストを(B)とする。
  2. (B)をウィンドウのタイトルバーの表示に反映する。
  3. (B)の先頭を大文字に・アンダースコアをスペースに変換した文字列と、実際のシステム的な記事名のアンダースコアをスペースに変換した文字列が一致する場合、文書タイトル(最初の<h1>要素)が書き換わる。
    1. この際、(A)が"複雑"(sub, sup, small, big 以外のHTML要素がある場合)であれば、タイトルは(B)になり、そうでなければ(A)になる。
    2. タイトルが書き換わり、さらに(A)が "複雑" でなければ、 id="RealTitleBanner"とした要素(テンプレート全体)を非表示にする。

パラメータ

パラメータの一覧
パラメータ 指定する内容 既定値 説明
title
または
1
記事名の正確な表記 なし その記事の主題の正確な表記を記述してください。
disablerealtitle JavaScript 処理を無効にするか 処理は有効 前述

注釈

  1. ^ 非表示とあるけど、2023年7月現在リダイレクト「H2O」ページでは表示されている。
  2. ^ 実際にはH2Oへのリダイレクト

関連項目