コンテンツにスキップ

テンプレート:Namespace detect

提供: Wikisource
テンプレートの解説[表示] [編集] [履歴] [キャッシュを破棄]

これは {{namespace detect}} メタテンプレートです。他のテンプレートが現在のページ種別を検出するのに役立ちます。

このテンプレートは、Wikisource で使われているさまざまな名前空間を、次のようなタイプに分類して検出します:

main = メイン/記事空間。通常のWikisource記事が保存されている場所。
talk = すべての会話空間("トーク:"、"利用者-トーク:"、"ファイル-トーク:" などで始まるページを含む)。
user, wikisource, file, mediawiki, template, help, category, portal, author = 会話ページ以外のその他の名前空間。
other = 上記以外で、テンプレートにパラメータとして指定されていない名前空間(詳細は後述)。

後方互換性のため、image パラメータもサポートされています(これは現在では非推奨で file に置き換えられています)。

注意: 通常は、より単純な名前空間検出テンプレート(下記の関連項目参照)を使うのが適しています。このテンプレートはパラメータ名のスペルミスなどのヒューマンエラーが起きやすくなっています。

使い方

[編集]

このテンプレートは、上記のページタイプ名を名前とする1つ以上のパラメータを取ります。例:

{{namespace detect
| main  = 記事用テキスト
| talk  = 議論ページ用テキスト
| other = その他ページ用テキスト
}}

このテンプレートが記事ページ上にある場合、次のように出力されます:

記事用テキスト

記事でも会話ページでもないその他のページ上にある場合は、次のように出力されます:

その他ページ用テキスト

上記の例は、すべてのページタイプに対して何らかの出力を返す構成になっています。ただし、other パラメータを使用しなかった場合や空にした場合、それ以外のページタイプでは何も出力されません。例:

{{namespace detect
| file     = ファイルページ用テキスト
| category = カテゴリページ用テキスト
| other    =
}}

上記の構成では、ファイル または category 以外のページでは何も表示されません。

特定のページ種別で出力を抑制したい場合は、該当パラメータを空にすることで非表示にできます。例:

{{namespace detect
| main  = 
| other = その他ページ用テキスト
}}

上記の構成では、メイン空間では何も表示されず、それ以外の空間では "その他ページ用テキスト" を返します。

demospace と demopage

[編集]

テストや例示目的で、このテンプレートは demospace および demopage という2つのパラメータを受け取れます。

demospace はこのテンプレートで使われているページタイプ名(other を含む)を値として取り、そのページタイプであるかのように振る舞います。例:

{{namespace detect
| main  = 記事用テキスト
| other = その他ページ用テキスト
| demospace = main
}}

このコードは、どのページに置いても「記事用テキスト」を出力します。

一方、demopage は通常のページ名を指定し、そのページ上にいるかのようにテンプレートが動作します。存在しないページ名でも指定可能です:

{{namespace detect
| user  = 利用者ページ用テキスト
| other = その他ページ用テキスト
| demopage = User:Example
}}

上記のコードは、どのページにあっても「利用者ページ用テキスト」を出力します。

テンプレートに demospace や demopage パラメータを転送したい場合、以下のように記述すると便利です:

{{namespace detect
| main  = 記事用テキスト
| other = その他ページ用テキスト
| demospace = {{{demospace|}}}
| demopage  = {{{demopage|}}}
}}

demospacedemopage の両方が空または未定義の場合、テンプレートは通常通り現在のページ種別を検出します。

パラメータ一覧

[編集]
{{namespace detect
| main  = 
...
| other =
| demospace = {{{demospace|}}} / main / talk / user /
              wikisource / file / mediawiki / template /
              help / category / portal / author / other
| demopage  = {{{demopage|}}} / User:Example
}}

※注意:「main」〜「author」の各パラメータに空の値を指定することで、出力抑制の意味になります。

ウィキソース向けのローカライズ

[編集]

このテンプレートはもともと Wikipedia 姉妹プロジェクトで作成されたもので、そこには Page: 名前空間が存在しませんでした。 Wikisource 向けにローカライズする際、元の "page" パラメータは "demopage" に置き換えられています。 そのため、姉妹プロジェクトからそのままテンプレートやテンプレート群をインポートすると、Wikisource 上では正しく動作しない可能性があります。

技術的な詳細

[編集]

"画像" 名前空間は 2008年12月11日に "ファイル" に改称されました。 このテンプレートはそれより前に両方の名前を認識するように更新されており、現在も問題なく動作します。 後方互換性のため、"image" というパラメータ名や、"demospace = image" のような値指定にも対応しています。

"Book" 名前空間は、英語版Wikipediaにおいて 2009年12月28日に追加されました。 このテンプレートは "Book:" 名前空間を book タイプとして、"Book talk:" を talk タイプとして正しく処理します。

このテンプレートにテーブル(表)を引数として渡す場合、以下の点に注意が必要です:

テンプレートは、引数に |(パイプ)を含むデータを正しく処理できないことがあります。ただし、別のテンプレート内か、リンク [[w:Help:Template|help]] 内のパイプであれば問題ありません。 つまり、ウィキテーブルをそのままテンプレートに渡すことはできず、{{!}} テンプレートでエスケープする必要があります。 このため、テンプレートでテーブルを使いたい場合は、HTMLウィキマークアップを用いる方が堅牢です。

他プロジェクトへの移植や CSS ベースの名前空間検出などの技術的詳細については、{{main talk other}} およびそのノートをご覧ください。

関連項目

[編集]
  • {{Main other}} — メイン名前空間とそれ以外で内容を分けたい場合
  • {{Page other}} — Page: 名前空間とそれ以外で内容を分けたい場合
  • {{Page index other}} — Page: / Index: / その他で分ける場合
  • {{Talkspace detect}} — 会話名前空間かどうか、または異なる会話空間ごとの分岐
  • {{Namespace link}} — 名前空間によってリンク先を切り替えたい場合
  • {{Double link}} — Page: とメイン名前空間でリンクを切り替える
  • {{Scan page link}} — Page: / Index: / メイン空間でリンク先が変わるページ番号リンク
  • {{TOC link}} — Page: 空間の目次リンク用テンプレート(Page: / Index: / main に対応)