テンプレート:記事名の制約
このテンプレートの記述は複雑な構成となっております。編集後の結果が予想できないか、または変更にともなう影響を修正する用意ができていない場合は編集をお控えください。練習や実験はサンドボックスやご自身の利用者スペースのページなどでお願いします。 |
このテンプレートは、様々な理由から名称の正確な表記が記事名として使えない、あるいは正しく表示できない文字(アンダースコアなど)を含む場合に使用します。この問題について詳しくは、Wikipedia:記事名の付け方やHelp:ページ名をご覧ください。
このテンプレートを使用すると、ウェブブラウザのタイトルバーの表示が変更されます。さらに、記事名と正確な表記の差異がアンダースコア( _ )、上付き文字(Tommy february6の"6"の部分)、下付き文字(H2Oの"2"の部分)のみの場合、記事名を正しい表記に置換させることができます。そのほかの記号などの場合はメッセージを表示させます。
使い方と注意
編集{{記事名の制約|(引数)}}または
{{記事名の制約|title=(引数)}}
- 「
(引数)
」の部分に名称の正しい表記(例:Shift JISではShift_JIS)を記述してください。引数で指定した表記がアンダースコアや上付き文字、下付き文字のタグを除く部分で本来の記事名と異っている場合は記事名の置換が動作せず、メッセージが表示されます。特に曖昧さ回避のための括弧を使用している場合は注意してください。 subst:
は使わずに出力させてください。- 前後に空行を入れないでください。
- 引数の一部として画像やTeX表記を使用する場合は注意が必要です。そのような場合、記事名の置換は起きませんが、タイトルバーの表示が意図しないものに変更されることがあります。これを防ぐために、次のセクションで説明する
disablerealtitle
パラメータを指定してください。
記事名 | 記述 | 結果 (メッセージの表示/非表示) |
---|---|---|
Tommy february6 (アルバム) | {{記事名の制約|Tommy february<sup>6</sup> (アルバム)}} |
非表示 |
H2O | {{記事名の制約|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 で始まるブロックを参照してください。以下は大まかな解説です。
前提: 以下を全て満たす場合に動作します。
- id="RealTitleBanner" を持つ要素が存在する(通常、テンプレート全体を囲む <div> 要素などに付く)
- id="RealTitle" を持つ要素が存在する(本来の名称を示す部分を <span> で囲み、この id を付ける)
- id="DisableRealTitle" を持つ要素が存在しない
- 真偽値 disableRealTitle が偽である(ユーザスクリプトで無効にするためのスイッチ)
動作:
- id="RealTitle" とした要素の中身を (A) とし、 (A) からHTML要素を除いたプレーンテキストを (B) とする。
- (B) をウィンドウのタイトルバーの表示に反映する。
- (B) の先頭を大文字に・アンダースコアをスペースに変換した文字列と、実際のシステム的な記事名のアンダースコアをスペースに変換した文字列が一致する場合、文書タイトル(最初の <h1> 要素)が書き換わる。
- この際、(A) が "複雑"(sub, sup, small, big 以外のHTML要素がある場合)であれば、タイトルは (B) になり、そうでなければ (A) になる。
- タイトルが書き換わり、さらに (A) が "複雑" でなければ、 id="RealTitleBanner" とした要素(テンプレート全体)を非表示にする。
テンプレートデータ
編集説明はありません。
パラメーター | 説明 | 型 | 状態 | |
---|---|---|---|---|
記事名の正確な表記 | 1 title | その記事の主題の正確な表記を記述してください。 | 不明 | 必須 |
JavaScript 処理 | disablerealtitle | このパラメータを使用すると、この JavaScript による記事名の書き換え機能を無効にすることができます。
| 文字列 | 省略可能 |