Help:Extension:ParserFunctions

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Help:Extension:ParserFunctions and the translation is 88% complete.
Outdated translations are marked like this.

ParserFunctions 拡張かくちょう機能きのうは MediaWiki の既存きそんの「マジックワード 」を補完ほかんする11のパーサ関数かんすう提供ていきょうします。 (文字もじれつ処理しょりのために追加ついかのパーサー関数かんすう提供ていきょうするように設定せっていできるかもしれません。ここでいう文字もじれつ関数かんすう説明せつめい文書ぶんしょこちら 参照さんしょうしてください。) この拡張かくちょう機能きのう提供ていきょうするすべてのパーサー関数かんすう以下いか形式けいしきです:

{{#関数かんすうめい: 引数ひきすう 1 | 引数ひきすう 2 | 引数ひきすう 3 ... }}
PD 注意ちゅうい: このページを編集へんしゅうすると、編集へんしゅう内容ないようCC0 のもとで公開こうかいされることに同意どういしたとなされます。詳細しょうさいパブリック・ドメインのヘルプ ページ参照さんしょうしてください。 PD

#expr

関連かんれん項目こうもく: m:Help:Calculation および m:Help:Mod, round, floor, ceil, trunc
種類しゅるい 演算えんざん
グループ (括弧かっこ) ( )
数値すうち 1234.5   e (2.718)   pi (3.142)
こう演算えんざん e   単項たんこう +,-
単項たんこう not ceil trunc floor abs exp ln sin cos tan acos asin atan
こう ^
* / div mod
+ -
四捨五入ししゃごにゅう round
論理ろんり = != <> > < >= <=
and
or

この関数かんすうは、数式すうしき計算けいさんしてその計算けいさん結果けっかかえします。 この関数かんすうmw.ext.ParserFunctions.expr 関数かんすうかいして Scribunto でも使つかえます。

{{#expr: 数式すうしき }}

Basic example

{{#expr: 1 + 1 }}2

ひょうみぎらん使用しようできる演算えんざんで、うえほど優先ゆうせん順位じゅんいたかいものです。かく演算えんざん機能きのう詳細しょうさい計算けいさんのヘルプ ヘルプ:Calculation参照さんしょうしてください。出力しゅつりょく結果けっか精度せいど形式けいしきにははばがあり、ウィキを実行じっこうするサーバーのOSバージョン、サイト表示ひょうじ言語げんご数値すうち形式けいしき影響えいきょうけます。

ブール代数だいすう使用しようして評価ひょうかするさいがゼロなら falseゼロならせいかずでもまけかずでも true評価ひょうかされます:

{{#expr: 1 and -1 }}1
{{#expr: 1 and 0 }}0
{{#expr: 1 or -1 }}1
{{#expr: -1 or 0 }}1
{{#expr: 0 or 0 }}0

そら入力にゅうりょくしきそら文字もじれつかえします。無効むこうしきはいくつかのエラー メッセージのうちのいずれかをかえします。このエラーは #iferror 関数かんすう使用しようして捕捉ほそくできます:

{{#expr: }}
{{#expr: 1+ }}Expression error: Missing operand for +.
{{#expr: 1 = }}Expression error: Missing operand for =.
{{#expr: 1 foo 2 }}Expression error: Unrecognized word "foo".

数値すうち前後ぜんご加算かさんおよび減算げんざんオペランドの順序じゅんじょ意味いみがあり、あやまった入力にゅうりょくつオペランドとしてではなく、ただしまたはまけとしてあつかわれる場合ばあいがあります。

{{#expr: +1 }}1
{{#expr: -1 }}-1
{{#expr: + 1 }}1
{{#expr: - 1 }}-1

メモ: マジックワードの出力しゅつりょく使用しようする場合ばあいは、コンマを削除さくじょして数字すうじ翻訳ほんやくするために、それらをraw形式けいしきにする必要ひつようがあることに注意ちゅういしてください。 たとえば、{{NUMBEROFUSERS}} は 17,929,365 になりますが、17929365 が必要ひつようです。これは {{formatnum :{{NUMBEROFUSERS}}|R}}使用しようして取得しゅとくできます。 これは、数字すうじ翻訳ほんやくされる一部いちぶ言語げんごではとく重要じゅうようです。 たとえば、ベンガルでは、{{NUMBEROFUSERS}} は ৩০,০৬১ を生成せいせいします。

{{#expr:{{NUMBEROFUSERS}}+100}} Expression error: Unrecognized punctuation character ",".
{{#expr:{{formatnum:{{NUMBEROFUSERS}}|R}}+100}}17929465
警告 警告けいこく: 演算えんざん mod は、だい 2 引数ひきすうによってはあやまった結果けっかかえ場合ばあいがあります:
{{#expr: 123 mod (2^64-1)}}Division by zero. (そら文字もじれつかえしますが、123 をかえすべきです)
日付ひづけもとづいて計算けいさんおこな場合ばあい(たとえば、現在げんざい日付ひづけ時刻じこく日付ひづけ時刻じこくよりのちかどうかをテストする場合ばあい)、最初さいしょに{{#time: xNU }}を使用しようして時刻じこくを1970ねん1がつ1にち以降いこうびょうすう変換へんかんし、つぎ単純たんじゅん加算かさんして日付ひづけ数値すうちとして減算げんざんします。

四捨五入ししゃごにゅう機能きのう

左側ひだりがわ数字すうじ四捨五入ししゃごにゅうして 1/10 の倍数ばいすうげ、べき指数しすう右側みぎがわあたえられたかず小数点しょうすうてん2ケタ以下いかげたひとしくなります。

げやてをおこなうには、それぞれ単項たんこうceilfloor使用しようしてください。

テスト ケース 結果けっか 四捨五入ししゃごにゅう手法しゅほう
{{#expr: 1/3 round 5 }} 0.33333 最終さいしゅうけたが 5 未満みまんであるため、げはされません (0.333333… → 0.33333)
{{#expr: 1/6 round 5 }} 0.16667 最終さいしゅうけたが 5 以上いじょうであるため、げされます (0.166666… → 0.16667)
{{#expr: 8.99999/9 round 5 }} 1 この場合ばあいも、結果けっか最後さいごけたげられ、追加ついかげがおこなわれます。 (0.999998… → 1.00000 → 1)
{{#expr: 1234.5678 round -2 }} 1200 まけ小数点しょうすうてん左側ひだりがわまるめられるため、100にもっとちかまるめられます。
{{#expr: 1234.5678 round 2 }} 1234.57 せい小数点しょうすうてん右側みぎがわまるめられるため、もっとちかい100番目ばんめまるめられます
{{#expr: 1234.5678 round 2.3 }} 1234.57 round のみぎ小数点しょうすうてん以下いかは、まるめの結果けっかには影響えいきょうしません
{{#expr: trunc 1234.5678 }} 1234 小数点しょうすうてん以下いか
もっとちか整数せいすうへのまる
{{#expr: 1/3 round 0 }} 0 もっとちか整数せいすうへのてで 0
{{#expr: 1/2 round 0 }} 1 もっとちか整数せいすうへのげで 1
{{#expr: 3/4 round 0 }} 1 もっとちか整数せいすうへのげで 1
{{#expr: -1/3 round 0 }} -0 もっとちか整数せいすうへのげで 0
{{#expr: -1/2 round 0 }} -1 もっとちか整数せいすうへのてで -1
{{#expr: -3/4 round 0 }} -1 もっとちか整数せいすうへのてで -1
ceillfloor によるげや
{{#expr: ceil(1/3) }} 1 つぎおおきい整数せいすうまで
{{#expr: floor(1/3) }} 0 つぎの「ちいさい」整数せいすう、つまりゼロまで
{{#expr: ceil(-1/3) }} -0 もっとちか整数せいすうへのげで 0
{{#expr: floor(-1/3) }} -1 まけ整数せいすうであるつぎちいさい整数せいすうまで
{{#expr: ceil 1/3 }} 0.33333333333333 1がすで整数せいすうであるため、まるめはおこなわれません
警告 警告けいこく: あなたの予想よそうとはことなり、ceil(1/3)ではなく(ceil 1)/3と解釈かいしゃくされる

文字もじれつ

しき数値すうちのようなでのみ機能きのうし、文字もじれつ文字もじ比較ひかくすることはできません。わりに#ifeq使用しようできます。

{{#expr: "a" = "a" }}Expression error: Unrecognized punctuation character """.
{{#expr: a = a }}Expression error: Unrecognized word "a".
{{#ifeq: a | a | 1 | 0 }}1

#if

この関数かんすうはテスト文字もじれつ評価ひょうかし、それがそらであるかどうかを判定はんていします。空白くうはくのみをふくむテスト文字もじれつそらであると做されます。

{{#if: テスト文字もじれつ | テスト文字もじれつそらではない場合ばあい | テスト文字もじれつそら (または空白くうはくのみ) の場合ばあい}}
{{#if: パラメーター 1 | パラメーター 2 | パラメーター 3 }}

この関数かんすうは、はじめに最初さいしょ引数ひきすうそらでないかたしかめます。最初さいしょ引数ひきすうそらでない場合ばあい、2 番目ばんめ引数ひきすう表示ひょうじします。最初さいしょ引数ひきすうむなしまたは空白くうはく文字もじ空白くうはく改行かいぎょうとう)のみをふく場合ばあい、3 番目ばんめ引数ひきすう表示ひょうじします。

{{#if: | yes | no}}no
{{#if: string | yes | no}}yes
{{#if: &nbsp;&nbsp;&nbsp;&nbsp; | yes | no}}no
{{#if: | yes | no}}no

テスト文字もじれつつね純粋じゅんすいなテキストとして評価ひょうかされます。そのため数式すうしき評価ひょうかされません (#ifexpr参照さんしょう):

{{#if: 1==2 | yes | no }}yes
{{#if: 0 | yes | no }}yes

最後さいご引数ひきすう (false) は省略しょうりゃく可能かのうです:

{{#if: foo | yes }} yes
{{#if: | yes }}
{{#if: foo | | no}}

関数かんすうはネストできます。これをおこなうには、かこんでいる #if 関数かんすうのパラメーターのわりに、内部ないぶ#if 関数かんすう完全かんぜん形式けいしきでネストします。ウィキやメモリ制限せいげんによってことなりますが、最大さいだい7レベルのネストが可能かのうです。

{{#if:テスト文字もじれつ
|テスト文字もじれつそらではない場合ばあい
|{{#if:テスト文字もじれつ
  |テスト文字もじれつそらではない場合ばあい
  |テスト文字もじれつそら (または空白くうはくのみ) の場合ばあい
  }}
}}

テスト文字もじれつそらではない場合ばあい

#if ぶんにおいて引数ひきすうをテスト文字もじれつとしてもちいることも可能かのうです。変数へんすうめいのちには |(パイプ記号きごう)を追加ついかする必要ひつようがあります。 (そのため、パラメーターにがない場合ばあいは、文字もじれつ "{{{1}}}"ではなくそら文字もじれつ評価ひょうかされます。)

{{#if:{{{1|}}}|変数へんすう1にテキストを入力にゅうりょくしました|変数へんすう1にテキストがありません}}

このパーサー関数かんすうほかれいについては Help:テンプレートないでのパーサー関数かんすう 参照さんしょうしてください。

#ifeq

このパーサー関数かんすうは、2つの入力にゅうりょく文字もじれつ比較ひかくし、それらが同一どういつであるかどうかを判断はんだんし、結果けっかもとづいて2つの文字もじれつのうちの1つをかえします。 さらに比較ひかく出力しゅつりょく文字もじれつ必要ひつよう場合ばあいは、#switch使用しよう検討けんとうしてください。

{{#ifeq: string 1 | string 2 | value if identical | value if different }}

両方りょうほう文字もじれつ有効ゆうこう数値すうちである場合ばあい文字もじれつ数値すうちてき比較ひかくされます。

{{#ifeq: 01 | 1 | equal | not equal}}equal
{{#ifeq: 0 | -0 | equal | not equal}}equal
{{#ifeq: 1e3 | 1000 | equal | not equal}}equal
{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}equal

それ以外いがい文字もじれつとして比較ひかくします。その場合ばあい大文字おおもじ小文字こもじ識別しきべつします。

{{#ifeq: foo | bar | equal | not equal}}not equal
{{#ifeq: foo | Foo | equal | not equal}}not equal
{{#ifeq: "01" | "1" | equal | not equal}}not equal  (引用いんようなしで、上記じょうき同様どうようれい比較ひかくしてください)
{{#ifeq: 10^3 | 1000 | equal | not equal}}not equal  (前述ぜんじゅつした同様どうようれい対比たいひしてみるには、#expr有効ゆうこう特定とくてい数値すうちさきかえします)

実用じつようてきれいとして、既存きそんテンプレート Template:Timer をパーサーを使用しようして、みじか時間じかんなが時間じかんの2つの標準時ひょうじゅんじあいだから選択せんたくするとします。 文字もじれつ「short」と比較ひかくする最初さいしょ入力にゅうりょくとしてパラメータをります–順序じゅんじょ規則きそくはありませんが、パラメーターが最初さいしょにあるほうみやすくなります。 テンプレートコードはつぎのように定義ていぎされています:

{{#ifeq: {{{1|}}} | short | 20 | 40 }}

つぎのようになります:

{{timer|short}}20
{{timer|20}}40
{{timer}}40
警告 警告けいこく: パーサー関数かんすうない使用しようする場合ばあい、パーサータグおよびそののパーサー関数かんすう一時いちじてき一意いちいのコード える必要ひつようがあります。 これは比較ひかく影響えいきょうします:
{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}not equal
{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}not equal
{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}not equal
{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}equal
比較ひかくするどの文字もじれつも、そのタグをふくおなテンプレート 場合ばあいしん、そのタグをふく内容ないようおなじだが別々べつべつのテンプレートを場合ばあいにせ
警告 警告けいこく: PAGENAMEマジックワード との文字通もじどおりの比較ひかくは、サイトの構成こうせいによっては失敗しっぱいする場合ばあいがあります。 たとえば、ウィキによっては、{{FULLPAGENAME}}が最初さいしょ文字もじ大文字おおもじにし、すべてのアンダースコアをスペースにえる場合ばあいがあります。

これを回避かいひするには、両方りょうほうのパラメーターにマジックワードを適用てきようします。

{{#ifeq: {{FULLPAGENAME: L'Aquila}} | {{FULLPAGENAME}} | equal | not equal}}equal

#iferror

この関数かんすう入力にゅうりょく文字もじれつり、2つの結果けっかから1つをかえします。この関数かんすうは、 #expr#time#rel2abs のようなほかのパーサー関数かんすう、ループや再帰さいきのようなテンプレートエラー、そのの「フェースソフト」なパーサーエラーによってつくられた class="error"ふくむ HTML オブジェクトが入力にゅうりょく文字もじれつふくまれていた場合ばあいtrue評価ひょうかします。

{{#iferror: test string | value if error | value if correct }}

かえし文字もじれつ一方いっぽうまたは両方りょうほう省略しょうりゃくできます。もし correct文字もじれつ省略しょうりゃくされていた場合ばあい、エラーがないのであれば test stringかえされます。 error文字もじれつ省略しょうりゃくされていた場合ばあいは、エラーにから文字もじれつかえされます。

{{#iferror: {{#expr: 1 + 2 }} | error | correct }}correct
{{#iferror: {{#expr: 1 + X }} | error | correct }}error
{{#iferror: {{#expr: 1 + 2 }} | error }}3
{{#iferror: {{#expr: 1 + X }} | error }}error
{{#iferror: {{#expr: 1 + 2 }} }}3
{{#iferror: {{#expr: 1 + X }} }}
{{#iferror: {{#expr: . }} | error | correct }}correct
{{#iferror: <strong class="error">a</strong> | error | correct }}error

エラーによっては追跡ついせきカテゴリをしょうじさせ、{{#iferror:}}ててもどうカテゴリの追加ついか回避かいひできません。

#ifexpr

この関数かんすう数式すうしき評価ひょうかし、結果けっか真偽しんぎおうじて2つの文字もじれつのいずれかをかえします:

{{#ifexpr: expression | value if true | value if false }}

expression 入力にゅうりょくは、上記じょうき#exprとまったくおなじように評価ひょうかされ、おな演算えんざん使用しようできます。つぎに、出力しゅつりょく真偽しんぎしきとして評価ひょうかされます。

そら入力にゅうりょくしきfalse評価ひょうかされます:

{{#ifexpr: | yes | no}}no

上記じょうきのように、ゼロはfalse評価ひょうかされ、ゼロ以外いがいtrue評価ひょうかされるため、この関数かんすう#ifeq#exprのみを使用しようする関数かんすう同等どうとうです:

{{#ifeq: {{#expr: expression }} | 0 | value if false | value if true }}

そら入力にゅうりょくしきまたはあいだちがった入力にゅうりょくしきのぞきます(エラーメッセージはそら文字もじれつとしてあつかわれます。ゼロにひとしくないため、value if true取得しゅとくします)。

{{#ifexpr: = | yes | no }} Expression error: Unexpected = operator.

比較ひかく

{{#ifeq: {{#expr: = }} | 0 | no | yes }} yes

もどのいずれかまたは両方りょうほう省略しょうりゃくできます。適切てきせつなブランチがそらのままの場合ばあい出力しゅつりょく提供ていきょうされません。

{{#ifexpr: 1 > 0 | yes }}yes
{{#ifexpr: 1 < 0 | yes }}
{{#ifexpr: 0 = 0 | yes }} yes
{{#ifexpr: 1 > 0 | | no}}
{{#ifexpr: 1 < 0 | | no}} no
{{#ifexpr: 1 > 0 }}

等号とうごうまたは不等号ふとうごうのブール演算えんざん対応たいおうします。

{{#ifexpr: 0 = 0 or 1 = 0 | yes}}yes
{{#ifexpr: 0 = 0 and 1 = 0 | | no}}no
{{#ifexpr: 2 > 0 or 1 < 0 | yes}}yes
{{#ifexpr: 2 > 0 and 1 > 0 | yes | no}}yes
警告 警告けいこく: #ifexprによる数値すうち比較ひかく結果けっかは、#ifeq#switch結果けっかかならずしも一致いっちしません。 これらの後者こうしゃの2つは、#ifexprよりも正確せいかくであり、同等どうとう結果けっかかえしません。

変更へんこうされた最後さいごけたとのこれらの比較ひかく検討けんとうしてください:

{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}not equal
{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}not equal

#ifeq#switch使用しようされるPHPは、整数せいすうがたの2つの数値すうち比較ひかくするため、期待きたいされる結果けっかただしくかえします。 一方いっぽう#ifexprおな番号ばんごう場合ばあい

{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}equal

数字すうじことなると、equalの結果けっか実際じっさいにはまさしくありません。

#ifexprでのこの動作どうさは、MediaWikiがしきのリテラルすうをfloat(フロート)がた変換へんかんするために発生はっせいします。これは、このようなおおきな整数せいすう場合ばあいまるめをともないます。

#ifexist

この関数かんすう入力にゅうりょく文字もじれつり、それをページタイトルとして解釈かいしゃくし、そのページがローカルウィキに存在そんざいするかどうかにおうじて、2つののいずれかをかえします。

{{#ifexist: page title | value if exists | value if doesn't exist }}

ページが存在そんざいする場合ばあい、コンテンツがふくまれているかどうかにかかわらず、関数かんすうtrue(しん)と評価ひょうかされます(カテゴリリンクやマジックワード などのメタデータがふくまれていますが、表示ひょうじされていません)。 コンテンツ、空白くうはく、またはリダイレクト です。存在そんざいしていないページのみがfalse(にせ)と評価ひょうかされます。これには、ページが以前いぜん存在そんざいしていたが削除さくじょされた場合ばあいふくまれます。

{{#ifexist: Help:Extension:ParserFunctions/ja | exists | doesn't exist }}exists
{{#ifexist: XXHelp:Extension:ParserFunctions/jaXX | exists | doesn't exist }}doesn't exist

この関数かんすうは、カスタマイズされたシステムメッセージ と、ソフトウェアによって定義ていぎされた特別とくべつページ たいしてtrue(しん)と評価ひょうかされます。

{{#ifexist: Special:Watchlist | exists | doesn't exist }}exists
{{#ifexist: Special:CheckUser | exists | doesn't exist }}exists (Checkuser 拡張かくちょう機能きのうがこのウィキにインストールされているため)
{{#ifexist: MediaWiki:Copyright | exists | doesn't exist }}exists (MediaWiki:Copyrightがカスタマイズされているため)

ページが#ifexist:使用しようしてターゲットをチェックする場合ばあい、そのページはターゲットページのSpecial:WhatLinksHereリストに表示ひょうじされます。したがって、コード{{#ifexist:Foo }}がこのページ(Help:Extension:ParserFunctions/ja)にライブでふくまれている場合ばあいSpecial:WhatLinksHere/FooはHelp:Extension:ParserFunctions/jaをリストします。

共有きょうゆうメディアリポジトリを使用しようするWikiでは、#ifexist:使用しようして、ファイルがリポジトリにアップロードされているかどうかを確認かくにんできますが、Wiki自体じたいにはアップロードされていません。

{{#ifexist: File:Example.png | exists | doesn't exist }}doesn't exist
{{#ifexist: Image:Example.png | exists | doesn't exist }}doesn't exist
{{#ifexist: Media:Example.png | exists | doesn't exist }}exists

ファイルのローカル説明せつめいページが作成さくせいされている場合ばあい結果けっか上記じょうきのすべてにたいして existsになります。

#ifexist:インターウィキリンクでは機能きのうしません。

ifexistの制限せいげん

#ifexist: は、「こう負荷ふかなパーサー関数かんすう」となされます。 1つのページにふくめることができるのはかぎられたかずだけです(参照さんしょうみされたテンプレートない関数かんすうふくむ)。 この制限せいげんえると、参照さんしょうさきページが存在そんざいするかどうかに関係かんけいなく、それ以降いこう#ifexist: 関数かんすう自動的じどうてきにfalseをかえし、ページは Category:Pages with too many expensive parser function calls分類ぶんるいされます。 tracking category 名前なまえは、ウィキのコンテンツ言語げんごによってことなる場合ばあいがあります。

使用しよう事例じれいによっては、a.new (存在そんざいしないページへのリンクを選択せんたく) または a:not(.new) (存在そんざいするページへのリンクを選択せんたく) を使用しようして ifexist 効果こうかを css で代用だいようできます。 さらに、たんいちページで使用しようするメモリ消耗しょうもうはげしいパーサ関数かんすう件数けんすう上限じょうげん$wgExpensiveParserFunctionLimit 制御せいぎょされ、必要ひつよう場合ばあい上限じょうげんを LocalSettings.php で変更へんこうできます。

存在そんざいし、必要ひつようなページ

存在そんざいせず、#ifexistを使つかっているかどうかテストみのページは、募集ぼしゅうページ分類ぶんるいされます。 根拠こんきょタスク T14019記述きじゅつがあり、 回避かいひさく詳細しょうさいTemplate:Linkless参照さんしょうしてください。(訳注やくちゅう:リンクもと削除さくじょみ)

#rel2abs

この関数かんすう相対そうたいファイル パスを絶対ぜったいファイル パスに変換へんかんします。

{{#rel2abs: path }}
{{#rel2abs: path | base path }}

path 部分ぶぶんでは、以下いか構文こうぶん使用しようできます:

  • .現在げんざい階層かいそう
  • .. → 1 つうえ階層かいそう移動いどう
  • /foo下位かいディレクトリ /foo に 1 階層かいそう移動いどう

base path指定していしていない場合ばあいは、ページの完全かんぜんなページめいわりに使用しようされます:

{{#rel2abs: /quok | Help:Foo/bar/baz }}Help:Foo/bar/baz/quok
{{#rel2abs: ./quok | Help:Foo/bar/baz }}Help:Foo/bar/baz/quok
{{#rel2abs: ../quok | Help:Foo/bar/baz }}Help:Foo/bar/quok
{{#rel2abs: ../. | Help:Foo/bar/baz }}Help:Foo/bar

/././ のような無効むこう構文こうぶん無視むしされます。 連続れんぞくする終止符しゅうしふは2つまでしか許可きょかされていないため、つぎのようなシーケンスを使用しようして、連続れんぞくするステートメントを区切くぎることができます。

{{#rel2abs: ../quok/. | Help:Foo/bar/baz }}Help:Foo/bar/quok
{{#rel2abs: ../../quok | Help:Foo/bar/baz }}Help:Foo/quok
{{#rel2abs: ../../../quok | Help:Foo/bar/baz }}quok
{{#rel2abs: ../../../../quok | Help:Foo/bar/baz }}Error: Invalid depth in path: "Help:Foo/bar/baz/../../../../quok" (tried to access a node above the root node).

For a similar group of functions see also Help:Magic words#URL data. Built-in parser functions include: 'localurl:', 'fullurl:', 'anchorencode:' etc.

#switch

関連かんれん項目こうもく: w:Help:Switch parser function

この関数かんすう入力にゅうりょく1けん複数ふくすうのテストケースと比較ひかくし、ヒットした場合ばあい当該とうがい文字もじれつかえします。

{{#switch: comparison string
 | case = result
 | case = result
 | ...
 | case = result
 | default result
}}

れい:

{{#switch: baz | foo = Foo | baz = Baz | Bar }} Baz
{{#switch: foo | foo = Foo | baz = Baz | Bar }} Foo
{{#switch: zzz | foo = Foo | baz = Baz | Bar }} Bar

#switch with partial transclusion tags can affect a configuration file that enables an editor unfamiliar with template coding to view and edit configurable elements.

既定きてい

case文字もじれつ対応たいおうするcomparison stringがヒットしない場合ばあいdefault resultかえします。

{{#switch: test | foo = Foo | baz = Baz | Bar }} Bar

この構文こうぶんでは、デフォルトの結果けっか最後さいごのパラメーターである必要ひつようがあり、せい等号とうごう({{}}のない等号とうごう)をふくめることはできません。 一致いっちする場合ばあいは、ケース比較ひかくとしてあつかわれ、一致いっちするケースがない場合ばあいはテキストは表示ひょうじされません。 これは、既定きてい定義ていぎされていない (そらである) ためです。 ただし、大文字おおもじ小文字こもじ一致いっちする場合ばあいは、関連かんれんする文字もじれつかえされます。

{{#switch: test | Bar | foo = Foo | baz = Baz }} →
{{#switch: test | foo = Foo | baz = Baz | B=ar }} →
{{#switch: test | test = Foo | baz = Baz | B=ar }} → Foo

代替だいたい方法ほうほうとして、既定きてい結果けっかを "#default" のcase文字もじれつ明示めいじてき宣言せんげんすることもできます。

{{#switch: comparison string
 | case = result
 | case = result
 | ...
 | case = result
 | #default = default result
}}

この方法ほうほう宣言せんげんされたデフォルトの結果けっかは、関数かんすうないのどこにでも配置はいちできます。

{{#switch: test | foo = Foo | #default = Bar | baz = Baz }} Bar

defaultパラメータが省略しょうりゃくされ、一致いっちおこなわれない場合ばあいresult(結果けっか)はかえされません。

{{#switch: test | foo = Foo | baz = Baz }}

グループ結果けっか

いくつかの case 文字もじれつおなresult 文字もじれつかえす「フォールスルー」たせることができます。これにより重複じゅうふく最小限さいしょうげんおさえることができます。

{{#switch: comparison string
 | case1 = result1
 | case2 
 | case3 
 | case4 = result234
 | case5 = result5
 | case6 
 | case7 = result67
 | #default = default result
}}

ここではケース2と3、4とも出力しゅつりょくresult234です。ケース6と7の出力しゅつりょく両方りょうほうともresult67です 上記じょうき場合ばあい最後さいごのパラメータの「#default = 」は省略しょうりゃくできます。

パラメータとともに使用しよう

この関数かんすうは、テスト文字もじれつとしてパラメータとともに使用しようできます。 この場合ばあい大文字おおもじ小文字こもじ文字もじれつ{{{parameter name}}}」に設定せっていする可能かのうせい非常ひじょうひくいため、パラメータめいのちにパイプを配置はいちする必要ひつようはありません。 (これは、パイプが存在そんざいせず、パラメーターが存在そんざいしないか、がある場合ばあいにパラメーターがデフォルトで設定せっていするです。 Help:テンプレートないでのパーサー関数かんすう 参照さんしょうしてください。)

{{#switch: {{{1}}} | foo = Foo | baz = Baz | Bar }}

上記じょうき場合ばあい{{{1}}}fooひとしい場合ばあい関数かんすうFooかえします。 bazひとしい場合ばあい関数かんすうBazかえします。 パラメータがそらであるか存在そんざいしない場合ばあい関数かんすうBarかえします。

上記じょうきのセクションのように、ケースをわせて単一たんいつ結果けっかることができます。

{{#switch: {{{1}}} | foo | zoo | roo = Foo | baz = Baz | Bar }}

ここで、{{{1}}}foozoo、またはrooひとしい場合ばあい関数かんすうFooかえします。 bazひとしい場合ばあい関数かんすうBazかえします。 パラメータがそらであるか存在そんざいしない場合ばあい関数かんすうBarかえします。

さらに、テストパラメータがいずれの場合ばあいにも一致いっちしない場合ばあいなにかえしたくない場合ばあいは、デフォルトの結果けっか省略しょうりゃくできます。

{{#switch: {{{1}}} | foo = Foo | bar = Bar }}

この場合ばあい{{{1}}}存在そんざいしてfooまたはbarひとしい場合ばあいのぞき、関数かんすうそら文字もじれつかえします。この場合ばあい関数かんすうはそれぞれFooまたはBarかえします。

これは、デフォルトの結果けっかそらとして宣言せんげんするのとおな効果こうかがあります。

{{#switch: {{{1}}} | foo | zoo | roo = Foo | baz = Baz | }}

なんらかの理由りゆうでケースを「{{{parameter name}}}」に設定せっていすると、パラメーターが存在そんざいしないかがない場合ばあいに、関数かんすうはそのケースの結果けっかかえします。 関数かんすうのデフォルトの結果けっかかえすには、パラメーターが存在そんざいし、文字もじれつ{{{parameter name}}}以外いがいっている必要ひつようがあります。

({{{1}}}存在そんざいしないか、そら場合ばあい):
{{#switch: {{{1}}} | {{{1}}} = Foo | baz = Baz | Bar }} Foo
({{{1}}}が「test」の場合ばあい):
{{#switch: {{{1}}} | {{{1}}} = Foo | baz = Baz | Bar }} Bar
({{{1}}}が「{{{1}}}」の場合ばあい):
{{#switch: {{{1}}} | {{{1}}} = Foo | baz = Baz | Bar }} Foo


この架空かくうのケースでは、パイプをパラメーター({{{1|}}})に追加ついかする必要ひつようがあります。

比較ひかく挙動きょどう

#ifeq 同様どうよう比較ひかく比較ひかくする文字もじれつ対象たいしょうかく文字もじれつ数値すうちである場合ばあい数値すうちとして処理しょりされます。あるいは大文字おおもじ小文字こもじ識別しきべつする文字もじれつとして処理しょりされます。

{{#switch: 0 + 1 | 1 = one | 2 = two | three}} → three
{{#switch: {{#expr: 0 + 1}} | 1 = one | 2 = two | three}} → one
{{#switch: 02 | +1 = one | +2 = two | three}} → two
{{#switch: 100 | 1e1 = ten | 1e2 = hundred | other}} → hundred
{{#switch: a | a = A | b = B | C}} → A
{{#switch: A | a = A | b = B | C}} → C

case文字もじれつ空白くうはく場合ばあいがあります。

{{#switch: | = Nothing | foo = Foo | Something }}Nothing

一致いっちつかると、それ以降いこうcases無視むしされます。

{{#switch: b | f = Foo | b = Bar | b = Baz | }}Bar
警告 警告けいこく: #switchおよび#ifeq使用しようした数値すうち比較ひかくは、しき比較ひかく同等どうとうではありません(上記じょうき参照さんしょう)。
{{#switch: 12345678901234567 | 12345678901234568 = A | B}} → B
{{#ifexpr: 12345678901234567 = 12345678901234568 | A | B}} → A

なま等号とうごう

"Case" 文字もじれつにはなま等号とうごうふくめることができません。これを回避かいひするには、{{=}} マジックワードを使用しようして、等号とうごう記号きごうを HTML コード &#61;えます。

れい:

入力にゅうりょく 出力しゅつりょく
{{#switch: 1=2
 | 1=2 = raw
 | 1<nowiki>=</nowiki>2 = nowiki
 | 1{{=}}2 = template
 | default
}}
template
{{#switch: 1=2
 | 1&#61;2 = html
 | default
}}
html
この関数かんすう実社会じっしゃかい使つかやさしいれいとしてNBATemplate:NBA color (訳注やくちゅうバスケットボールチームの配色はいしょくようテンプレート) を参照さんしょうしてください。複雑ふくざつなサンプルは Template:Extension (テンプレート:拡張かくちょう機能きのう) と w:Template:BOTREQ (訳注やくちゅうBot作業さぎょう依頼いらいのコメントようテンプレート) の2けん参照さんしょうしてください。

#ifeqの置換ちかん

拡張かくちょう深度しんどらすには #switch使用しよう

たとえば:

  • {{#switch:{{{1}}} |condition1=branch1 |condition2=branch2 |condition3=branch3 |branch4}}

は、以下いか同等どうとうです

  • {{#ifeq:{{{1}}}|condition1 |branch1 |{{#ifeq:{{{1}}}|condition2 |branch2 |{{#ifeq:{{{1}}}|condition3 |branch3 |branch4}}}}}}

つまり、ふか線形せんけい:

{{#ifeq:{{{1}}}|condition1
  |<!--then-->branch1
  |<!--else-->{{#ifeq:{{{1}}}|condition2
                |<!--then-->branch2
                |<!--else-->{{#ifeq:{{{1}}}|condition3
                              |<!--then-->branch3
                              |<!--else-->branch4}}}}}}

一方いっぽう、switchの交換こうかんは、両方りょうほうのブランチにネストされたIF(インデントの代替だいたいしめされ、両側りょうがわにインデントされている)の場合ばあい複雑ふくざつ/実用じつようてきであり、完全かんぜん対称たいしょうてきなツリーになります。

{{#ifeq:{{{1}}}|condition1
 |<!--then-->branch1t{{
  #ifeq:{{{1}}}|condition2
   |<!--then-->branch1t2t{{#ifeq:{{{1}}}|condition4|<!--then-->branch1t2t4t|<!--else-->branch1t2t4e}}
   |<!--else-->branch1t2e{{#ifeq:{{{1}}}|condition5|<!--then-->branch1t2e5t|<!--else-->branch1t2e5e}}
  }}
 |<!--else-->branch1e{{#ifeq:{{{1}}}|condition3
   |<!--then-->branch1e3t{{#ifeq:{{{1}}}|condition6|branch1e3t6t|branch1e3t6e}}
   |<!--else-->branch1e3e{{
    #ifeq:{{{1}}}|condition7
     |branch1e3e7t
     |branch1e3e7t
    }}
  }}
}}

#time

このパーサ関数かんすう日付ひづけあるいは時間じかん (グレゴリアれき) をって指定してい文法ぶんぽうどおりにフォーマットします。にち時間じかんのオブジェクトを特定とくていする方法ほうほう; 既定きていマジックワード {{CURRENTTIMESTAMP}} – つまりページが最近さいきん HTML 形式けいしき表示ひょうじされた日時にちじ

{{#time: format string }}
{{#time: format string | date/time object }}
{{#time: format string | date/time object | language code }}
{{#time: format string | date/time object | language code | local }}

みぎには利用りようできる書式しょしきコードをまとめてあります。 書式しょしき文字もじれつないにこれら以外いがい文字もじふくまれると、処理しょり出力しゅつりょくします。空白くうはくるいあつかいは同様どうようです (コードの解析かいせき不要ふようなため)。 If no character is recognized in the formatting string, and the date/time object is without error, then the formatting string is returned as output. また書式しょしき文字もじれつない文字もじをエスケープする方法ほうほうが 2 つあります。

  1. バックスラッシュにつづけて書式しょしき指定してい文字もじれつ記述きじゅつすると、ひとまとまりのリテラル文字もじとして解釈かいしゃく
  2. 文字もじれつじゅう引用いんようかこむと、リテラル文字もじとしてあつか引用いんよう除去じょきょ

またさらに、有向ゆうこうグラフ xx場合ばあい、ひとまとまりのリテラル文字もじ「x」と解釈かいしゃくします。

As the list of formatting codes continues to evolve (with the support of new calendars, or of new date fields computed and formatted differently), you should escape all literal characters (not just ASCII letters currently used by formatting codes) that need to be passed through unaltered.

Unfortunately, for now, the ASCII single quote is still not recognized as a simple alternative for marking literal text to the currently supported ASCII double quotes (for example, double quotes are mandatory for in other uses like the delimitation of string values in JSON, C, C++...) and backslashes (which have to be escaped as well in string constants used by many languages, including JSON, C, C++, PHP, JavaScript, Lua). So you still cannot embed any literal double quote without escaping it with a backslash (or you can use other curly, angular or square quotation marks instead).

{{#time: Y-m-d }}2024-04-30
{{#time: [[Y]] m d }}2024 04 30
{{#time: [[Y (year)]] }}2024 (24UTCpmTue, 30 Apr 2024 16:38:55 +0000)
{{#time: [[Y "(year)"]] }}2024 (year)
{{#time: i's" }}38'55"

PHPはdate/time objectると、どの書式しょしきでも strtotime() 関数かんすう処理しょりします (訳注やくちゅう英文えいぶん形式けいしき日付ひづけを Unix タイムスタンプに変換へんかん)。 Absolute (e.g. 20 December 2000), relative (e.g. +20 hours), and combined times (e.g. 30 July +1 year) are accepted.

{{#time: r|now}}Tue, 30 Apr 2024 16:38:56 +0000
{{#time: r|+2 hours}}Tue, 30 Apr 2024 18:38:56 +0000
{{#time: r|now + 2 hours}}Tue, 30 Apr 2024 18:38:56 +0000
{{#time: r|20 December 2000}}Wed, 20 Dec 2000 00:00:00 +0000
{{#time: r|December 20, 2000}}Wed, 20 Dec 2000 00:00:00 +0000
{{#time: r|2000-12-20}}Wed, 20 Dec 2000 00:00:00 +0000
{{#time: r|2000 December 20}}Error: Invalid time.

ISO 639-3 (?) の言語げんごコードにより、文字もじれつ選択せんたくした言語げんご表示ひょうじします。

{{#time:d F Y|1988-02-28|nl}}28 februari 1988
{{#time:l|now|uk}}вівторок
{{#time:d xg Y|20 June 2010|pl}}20 czerwca 2010

localパラメーターは、「日付ひづけ/時刻じこくオブジェクト」がローカルタイムゾーンを参照さんしょうするかUTCを参照さんしょうするかを指定していします。

これは真偽しんぎのパラメーターです。そのは、引数ひきすうをキャストすることによって決定けっていされます(文字もじれつ真偽しんぎにキャストする方法ほうほう詳細しょうさいについては、公式こうしきPHPドキュメント参照さんしょうしてください)。

変数へんすう$wgLocaltimezoneUTC設定せっていされている場合ばあいlocaltrueまたはfalse設定せっていされていても、出力しゅつりょくちがいはないことに注意ちゅういしてください。

詳細しょうさいについては、つぎれい参照さんしょうしてください:

{{#time: Y F d H:i:s|now|it|0}}2024 aprile 30 16:38:56
{{#time: Y F d H:i:s|now|it|1}}2024 aprile 30 16:38:56
{{#time: Y F d H:i:s|+2 hours||0}}2024 4がつ 30 18:38:56
{{#time: Y F d H:i:s|+2 hours||1}}2024 4がつ 30 18:38:56
{{#time:c|2019-05-16T17:05:43+02:00|it}}2019-05-16T15:05:43+00:00
{{#time:c|2019-05-16T17:05:43+02:00|it|0}}2019-05-16T15:05:43+00:00
{{#time:c|2019-05-16T17:05:43+02:00|it|true}}2019-05-16T15:05:43+00:00

Unix タイムスタンプを計算けいさんする場合ばあいは、文字もじれつ先頭せんとう@ 記号きごうけると日付ひづけ計算けいさん使つかえます。

{{#time: U | now }}1714495136
{{#time: r | @1714495135 }}Tue, 30 Apr 2024 16:38:55 +0000
警告 警告けいこく: もしタイムスタンプの数値すうち先頭せんとう@けないと、ほぼ毎回まいかい、エラーか想定そうていがいかえします。
{{#time: r | 1970-01-01 00:16:39 }}Thu, 01 Jan 1970 00:16:39 +0000
{{#time: U | 1970-01-01 00:16:39 }}999
{{#time: r | @999 }}Thu, 01 Jan 1970 00:16:39 +0000 (ただしい)
{{#time: r | 999 }}Error: Invalid time. (とし書式しょしき想定そうていがい)
{{#time: r | 1970-01-01 00:16:40 }}Thu, 01 Jan 1970 00:16:40 +0000
{{#time: U | 1970-01-01 00:16:40 }}1000
{{#time: r | @1000 }}Thu, 01 Jan 1970 00:16:40 +0000 (ただしい)
{{#time: r | 1000 }}Wed, 30 Apr 1000 00:00:00 +0000 (とし想定そうてい今日きょう月日つきひえる)
{{#time: r | 1970-01-01 02:46:39 }}Thu, 01 Jan 1970 02:46:39 +0000
{{#time: U | 1970-01-01 02:46:39 }}9999
{{#time: r | @9999 }}Thu, 01 Jan 1970 02:46:39 +0000 (ただしい)
{{#time: r | 9999 }}Fri, 30 Apr 9999 00:00:00 +0000 (とし想定そうてい今日きょう月日つきひえる)
{{#time: r | 1970-01-01 02:46:40 }}Thu, 01 Jan 1970 02:46:40 +0000
{{#time: U | 1970-01-01 02:46:40 }}10000
{{#time: r | @10000 }}Thu, 01 Jan 1970 02:46:40 +0000 (ただしい)
{{#time: r | 10000 }}Error: Invalid time. (とし書式しょしき想定そうていがい)
警告 警告けいこく: 許容きょようできる入力にゅうりょくは「1 January 0111 → 31 December 9999」の範囲はんいです。としは100から110までが定形ていけいです。Y (とし) とうるうどしはその 100-110 と同様どうよう定形ていけい、r (RFC 5322 形式けいしき)、D (曜日ようび略号りゃくごう)、l (曜日ようび)、U (Unix日時にちじ) を記述きじゅつするととしを 2000-2010 の範囲はんいとして解釈かいしゃくします。
{{#time: d F Y | 29 Feb 0100 }}01 3がつ 0100
(これはうるうどしではないから出力しゅつりょくただしい)、ただし
{{#time: r | 29 Feb 0100 }}Mon, 01 Mar 0100 00:00:00 +0000 (こちらは間違まちがい。100 を2000と解釈かいしゃくできたのに、うるうどしだったため。)
{{#time: d F Y | 15 April 10000 }}Error: Invalid time.
{{#time: r | 10000-4-15 }}Sat, 15 Apr 2000 10:00:00 +0000

先頭せんとうに 0 をけて 4 けた書式しょしきにした場合ばあいのぞいて、とし 0-99 は 2000-2069 ねんおよび 1970-1999 ねん解釈かいしゃくされます:

{{#time: d F Y | 1 Jan 6 }}01 1がつ 2006
{{#time: d F Y | 1 Jan 06 }}01 1がつ 2006
{{#time: d F Y | 1 Jan 006 }}01 1がつ 2006
{{#time: d F Y | 1 Jan 0006 }}01 1がつ 0006 (4-digit format)
としが 100-110 の範囲はんいか、1753以上いじょうあたえられ、原因げんいんは 111-1752 の範囲はんいでは r-出力しゅつりょくが「不明ふめい」、l-出力しゅつりょくが「<>」となってしまうからです。結果けっかとして、r-出力しゅつりょくはこれらの範囲はんいとし入力にゅうりょくとして許容きょようされません。

完全かんぜんまたは部分ぶぶんてき絶対ぜったい日付ひづけ指定していできます。この関数かんすうcurrent 使用しようして、指定していされていない日付ひづけ部分ぶぶんを「補完ほかん」します。

{{#time: Y | January 1 }}2024
警告 警告けいこく: 補完ほかん関数かんすう定形ていけいです。特定とくてい部分ぶぶん現在げんざい補完ほかんされ、べつ部分ぶぶんはエラーになります。
{{#time: Y m d H:i:s | June }}2024 06 30 00:00:00 このれいのゼロゼロふん現在げんざい数式すうしき記述きじゅつしたつき (June=6がつ) ととし表示ひょうじ
{{#time: Y m d H:i:s | 2003 }}2003 04 30 00:00:00 このれいはゼロゼロふん現在げんざい月日つきひ数式すうしき記述きじゅつしたとし表示ひょうじ

満員まんいん例外れいがいケースがあります:

{{#time: Y m d H:i:s | June 2003 }}2003 06 01 00:00:00 1にちはじまりとつきはじまりをしめします。

4けた数字すうじつねとしとして解釈かいしゃくされ、時間じかんぶんとしては解釈かいしゃくされません。[1]

{{#time: Y m d H:i:s | 1959 }}1959 04 30 00:00:00

6けた数字すうじ時間じかん解釈かいしゃく、できるかぎりぶんびょうまで出力しゅつりょくしようとしますが、それ以外いがい場合ばあいはエラーになります (たとえば年月日ねんがっぴとは解釈かいしゃくしません)。

{{#time: Y m d H:i:s | 195909 }}2024 04 30 19:59:09 記述きじゅつしたコードはとしとゼロ補完ほかんつき要求ようきゅうしたのに、出力しゅつりょく時間じかんとして解釈かいしゃく
{{#time: Y m d H:i:s | 196009 }}Error: Invalid time. 19:60:09 は有効ゆうこう時刻じこくではないにもかかわらず、196009 は1960ねん9がつとは解釈かいしゃくされません。

関数かんすう日付ひづけ計算けいさんをこなそうとします。(訳注やくちゅう:Fは「サイトの言語げんごでの完全かんぜんつきめい」、dはゼロ補完ほかんもとめ、入力にゅうりょく不備ふび出力しゅつりょく結果けっか定形ていけい。)

{{#time: d F Y | January 0 2008 }}31 12がつ 2007
{{#time: d F | January 32 }}Error: Invalid time.
{{#time: d F | February 29 2008 }}29 2がつ
{{#time: d F | February 29 2007 }}01 3がつ
{{#time:Y-F|now -1 months}}2024-3がつ

#timeたいする書式しょしき文字もじれつそう文字数もじすう(すべてのしでの総和そうわ)は半角はんかく6000文字もじ制限せいげんされています[2]

タイムゾーンの問題もんだいてん

この#timeパーサ関数かんすう(より具体ぐたいてきにはPHP DateTime )には相対そうたいてきなタイムゾーンオフセットとして整数せいすう以外いがいわたせないというバグがあります。EDT (東部とうぶ夏時間なつじかん) など時間じかんどおりのタイムゾーンを使用しようする場合ばあい、この問題もんだい発生はっせいしません。れいをあげます。:

  • {{#time:g:i A | -4 hours }} → 12:38 PM

ところがインドは UTC (協定きょうてい世界せかい) との時差じさが +5.5 あいだのため、タイムゾーンを適用てきようすると通常つうじょうならただしいオフセットの計算けいさん失敗しっぱいするはずです。実例じつれいはこちら:

  • {{#time:g:i A | +5.5 hours }} → 4:38 PM

そこで回避かいひさくとして、単純たんじゅん時間じかんびょう (minutes か seconds) に換算かんさんして、つぎれいのようにあたえます。

  • {{#time:g:i A | +330 minutes }} → 10:08 PM
  • {{#time:g:i A | +19800 seconds }} → 10:08 PM

(関数かんすう開発かいはつしゃ Tim Starling がこれを解決かいけつする構文こうぶんいてくれました。)

#timel

この関数かんすう構文こうぶんのショートカットで local パラメータに true設定せっていすると挙動きょどう{{#time: ... }}同一どういつつね利用りようしゃ設定せっていした標準時ひょうじゅんじまたはウィキが設定せっていした時間じかんたい使用しよう (タイムゾーンの設定せってい$wgLocaltimezone したがう)

関数かんすう構文こうぶんつぎのとおりです:

{{#timel: format string }}
{{#timel: format string | date/time object }}
{{#timel: format string | date/time object | language code }}
変数へんすう$wgLocaltimezoneUTC設定せっていされている場合ばあいlocaltrueまたはfalse設定せっていされていても、出力しゅつりょくちがいはないことに注意ちゅういしてください。
タイムゾーンがUTCではないサーバーからの#timeおよび#timelパーサー関数かんすう使用しようれい

たとえば、以下いかれい参照さんしょうしてください:

{{#time:c|now|it}}2024-04-30T16:38:56+00:00
{{#time:c|now|it|0}}2024-04-30T16:38:56+00:00
{{#time:c|now|it|1}}2024-04-30T16:38:56+00:00
{{#timel:c|now|it}}2024-04-30T16:38:56+00:00
https://no.wikipedia.org/wiki/Maldiskusjon:Sommertidからの警告けいこくれい
警告 警告けいこく: UTC(旧称きゅうしょうGMT)とはことなるタイムゾーンのウィキペディアでは、1970-01-01 00:00:00 UTC以降いこう時間じかん時間じかん両方りょうほうのUがおなびょうすうかえすことに注意ちゅういしてください。
U Unix時間じかん。 1970ねん1がつ1にち00:00:00 GMTからのびょうすう
Z タイムゾーンのオフセット (びょう)
{{#time: U}}1714495135
{{#timel: U}}1714495135
{{#time: Z}}0
{{#timel: Z}}0

#titleparts

この関数かんすうは、ページのタイトルをスラッシュにもとづいてセグメントに分離ぶんりし、それらのセグメントの一部いちぶ出力しゅつりょくします。

{{#titleparts: ページめい | かえすセグメントすう | 最初さいしょかえすセグメント }}

かえされるセグメントのかず」パラメータが指定していされていない場合ばあい、デフォルトで「0」になり、「最初さいしょかえされるセグメント」(ふくまれている)からすべてのセグメントがかえされます。 「最初さいしょかえすセグメント」パラメータが指定していされていないか「0」の場合ばあい、デフォルトで「1」になります。

{{#titleparts: Talk:Foo/bar/baz/quok }}Talk:Foo/bar/baz/quok
{{#titleparts: Talk:Foo/bar/baz/quok | 1 }}Talk:Foo {{ROOTPAGENAME }} も参照さんしょうしてください。
{{#titleparts: Talk:Foo/bar/baz/quok | 2 }}Talk:Foo/bar
{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 2 }}bar/baz
{{#titleparts: Talk:Foo/bar/baz/quok | 2 | 3 }}baz/quok
{{#titleparts: Talk:Foo/bar/baz/quok | 3 | 2 }}bar/baz/quok
{{#titleparts: Talk:Foo/bar/baz/quok | | 2 }}bar/baz/quok
{{#titleparts: Talk:Foo/bar/baz/quok | | 5 }}

両方りょうほうまけれられます。かえされるセグメントのかずパラメータのまけは、文字もじれつ末尾まつびからセグメントを効果こうかてきに「ストリップ」します。 「最初さいしょかえされるセグメント」のまけは、「このセグメントをみぎからかぞえて開始かいしする」という意味いみになります。

{{#titleparts: Talk:Foo/bar/baz/quok | -1 }}Talk:Foo/bar/baz 文字もじれつ最後さいごからかぞえてはじめのセグメントを削除さくじょします。 {{BASEPAGENAME}} も参照さんしょうしてください。
{{#titleparts: Talk:Foo/bar/baz/quok | -4 }} 文字もじれつ末尾まつびから4つのセグメントすべてを削除さくじょします
{{#titleparts: Talk:Foo/bar/baz/quok | -5 }} 文字もじれつ末尾まつびから5つのセグメントを削除さくじょします(存在そんざいする以上いじょう)
{{#titleparts: Talk:Foo/bar/baz/quok | | -1 }} quok 最後さいごのセグメントをかえします。 {{SUBPAGENAME}} も参照さんしょうしてください。
{{#titleparts: Talk:Foo/bar/baz/quok | -1 | 2 }} bar/baz 文字もじれつ末尾まつびから1つのセグメントを削除さくじょしてから、2番目ばんめ以降いこうのセグメントをかえします
{{#titleparts: Talk:Foo/bar/baz/quok | -1 | -2 }} baz 最後さいごから2番目ばんめ要素ようそからコピーを開始かいしします。文字もじれつ末尾まつびから1つのセグメントを削除さくじょします

処理しょりするまえに、「pagename」パラメータはHTMLでデコードされます。標準ひょうじゅんのHTML文字もじエンティティがふくまれている場合ばあい、それらはプレーン文字もじ変換へんかんされます(UTF-8で内部ないぶてきにエンコードされます。つまり、MediaWikiソースページで使用しようするのとおなじエンコードです。このパーサー関数かんすう)。

たとえば、pagename&quot;&#34;、または&#x22;ふくまれている場合ばあいは、"えられます。
HTMLからプレーンテキストへのほか変換へんかん実行じっこうされないため、HTMLタグは、ページタイトルで無効むこうであっても、この最初さいしょのステップではそのままのこります。

Some magic keywords or parser functions of MediaWiki (such as {{PAGENAME }} and similar) are known to return strings that are needlessly HTML-encoded, even if their own input parameter was not HTML-encoded:

The titleparts parser function can then be used as a workaround, to convert these returned strings so that they can be processed correctly by some other parser functions also taking a page name in parameter (such as {{PAGESINCAT: }} but which are still not working properly with HTML-encoded input strings.

For example, if the current page is Category:Côte-d'Or, then:

  • {{#ifeq: {{FULLPAGENAME}} | Category:Côte-d'Or | 1 | 0 }}, and {{#ifeq: {{FULLPAGENAME}} | Category:Côte-d&apos;Or | 1 | 0 }} are both returning 1; (the #ifeq parser function does perform the HTML-decoding of its input parameters).
  • {{#switch: {{FULLPAGENAME}} | Category:Côte-d'Or = 1 | #default = 0 }}, and {{#switch: {{FULLPAGENAME}} | Category:Côte-d&apos;Or = 1 | #default = 0 }} are both returning 1; (the #switch parser function does perform the HTML-decoding of its input parameters).
  • {{#ifexist: {{FULLPAGENAME}} | 1 | 0 }}, {{#ifexist: Category:Côte-d'Or | 1 | 0 }}, or even {{#ifexist: Category:Côte-d&apos;Or | 1 | 0 }} will all return 1 if that category page exists (the #ifexist parser function does perform the HTML-decoding of its input parameters);
  • {{PAGESINCAT: Côte-d'Or }} will return a non-zero number, if that category contains pages or subcategories, but:
  • {{PAGESINCAT: {{CURRENTPAGENAME}} }}, may still unconditionally return 0, just like:
  • {{PAGESINCAT: {{PAGENAME:Category:Côte-d'Or}} }}
  • {{PAGESINCAT: {{PAGENAME:Category:Côte-d&apos;Or}} }}

The reason of this unexpected behavior is that, with the current versions of MediaWiki, there are two caveats:

  • {{FULLPAGENAME}}, or even {{FULLPAGENAME:Côte-d'Or}} may return the actually HTML-encoded string Category:Côte-d&apos;Or and not the expected Category:Côte-d'Or, and that:
  • {{PAGESINCAT: Côte-d&apos;Or }} unconditionally returns 0 (the PAGESINCAT magic keyword does not perform any HTML-decoding of its input parameter).

The simple workaround using titleparts (which will continue to work if the two caveats are fixed in a later version of MediaWiki) is:

  • {{PAGESINCAT: {{#titleparts: {{CURRENTPAGENAME}} }} }}
  • {{PAGESINCAT: {{#titleparts: {{PAGENAME:Category:Côte-d'Or}} }} }}
  • {{PAGESINCAT: {{#titleparts: {{PAGENAME:Category:Côte-d&apos;Or}} }} }}, that all return the actual number of pages in the same category.

Then the decoded pagename is canonicalized into a standard page title supported by MediaWiki, as much as possible:

  1. All underscores are automatically replaced with spaces:
    {{#titleparts: Talk:Foo/bah_boo|1|2}}bah boo Not bah_boo, despite the underscore in the original.
  2. The string is split a maximum of 25 times; further slashes are ignored and the 25th element will contain the rest of the string. The string is also limited to 255 characters, as it is treated as a page title:
    {{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee | 1 | 25 }}y/z/aa/bb/cc/dd/ee
    If for whatever reason you needed to push this function to its limit, although very unlikely, it is possible to bypass the 25 split limit by nesting function calls:
    {{#titleparts: {{#titleparts: a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/aa/bb/cc/dd/ee| 1 | 25 }} | 1 | 2}}z
  3. Finally the first substring is capitalized according to the capitalization settings of the local wiki (if that substring also starts by a local namespace name, that namespace name is also normalized).
    {{#titleparts: talk:a/b/c }}Talk:A/b/c

You can use #titleparts as a small "string parser and converter", but consider that it returns the first substring capitalized:

{{#titleparts: one/two/three/four|1|1 }}One
{{#titleparts: one/two/three/four|1|2 }}two

小文字こもじもとめるには lc: 関数かんすう使つか出力しゅつりょくをコントロールします。

{{lc: {{#titleparts: one/two/three/four|1|1 }} }}one

You can prepend a 'dummy' slash at the beginning of the string to get the correct first substring capitalization (uppercase or lowercase). Use 2 instead of 1 for first segment to return:

{{#titleparts: /one/two/three/four|1|2 }}one
{{#titleparts: /One/two/three/four|1|2 }}One
警告 警告けいこく:

Certain characters that are illegal in a page title will cause #titleparts to not parse the string:

{{#titleparts: {one/two} | 1 | 1 }}{one/two}. 以下いかにはなりません: {one
{{#titleparts: [[page]]/123 | 1 | 2 }}page/123. Does not work because brackets are illegal in page titles and this parser function does not process links embedded in its input pagename parameter, even when they use the MediaWiki syntax, or any other HTML or MediaWiki tags.
{{#titleparts: red/#00FF00/blue | 1 | 3 }} → "". Does not work because "#" is also illegal in page titles.
警告 警告けいこく:

If any part of the title is just "." or "..", #titleparts will not parse the string:

{{#titleparts: one/./three | 1 | 1 }}one/./three. The whole string is returned. It does not produce the expected: one
警告 警告けいこく: This function does not degrade gracefully if the input exceeds 255 bytes in UTF-8. If the input string is 256 bytes or more, the whole string is returned.


String functions

The ParserFunctions extension optionally defines various string functions (#len, #pos, #rpos, #sub, #count, #replace, #explode, #urldecode) if $wgPFEnableStringFunctions is set to true.

警告 警告けいこく: In 2013, it was decided that these functions will never be enabled on any Wikimedia wiki, because they are inefficient when used on a large scale (see phab:T8455 for some history). These functions do NOT work on Wikimedia wikis!

If you are here to write something on a Wikimedia project, you are looking for something else: if your home wiki has string functions, it probably uses Lua . For example, the English Wikipedia uses Module:String, which does some of the same things with wildly different syntax. There are also individual String-handling templates.

See here for examples.

Here is a short overview of Module:String functions:

  • #len (length of string): {{#invoke:String|len|target_string}}
  • #sub (substring): {{#invoke:String|sub|target_string|start_index|end_index}}
  • #match: {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
  • #pos (position of target): {{#invoke:String|pos|target_string|index_value}}
  • #find: {{#invoke:String|find|source_string|target_string|start_index|plain_flag}}
  • #replace: {{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
  • #rep (repeat): {{#invoke:String|rep|source|count}}
  • #escapePattern: {{#invoke:String|escapePattern|pattern_string}}
  • #count: {{#invoke:String|count|source_str|pattern_string|plain_flag}}
  • #join: {{#invoke:String|join|separator|string1|string2|...}}


全般ぜんぱんてき情報じょうほう

subst展開てんかい

パーサー関数かんすうsubst展開てんかいは、ハッシュ記号きごうまえsubst:します。

{{subst:#ifexist: Help:Extension:ParserFunctions/ja | [[Help:Extension:ParserFunctions/ja]] | Help:Extension:ParserFunctions/ja }}[[Help:Extension:ParserFunctions/ja]] というページが存在そんざいするため、コード Help:Extension:ParserFunctions/ja がウィキテキストに挿入そうにゅうされます。
警告 警告けいこく:

The results of substituted parser functions are undefined if the expressions contain unsubstituted volatile code such as variables or other parser functions. For consistent results, all the volatile code in the expression to be evaluated must be substituted. See Help:Substitution.

Subst展開てんかい‎<ref>‎</ref> ; では機能きのうしないので、予測よそくする結果けっかるには{{subst:#tag:ref|}}使つかってください。

リダイレクト

なかでも{{#time:…|now-…}}文中ぶんちゅう日付ひづけふくむページのリダイレクト とく利便りべんせいこうそうにえても、実用じつようじょう機能きのうしません。

ひょうないでのパイプ記号きごうのエスケープ

パーサー関数かんすうはウィキ記述きじゅつひょう wikitable 構文こうぶんりパイプ記号きごう (|) にあたえる役目やくめ変質へんしつさせ、せいのパイプ記号きごうたん変数へんすう区切くぎとしてあつかいます。 回避かいひさくとして過去かこにはほとんどのウィキで Template:! テンプレートを使つかせいのパイプ記号きごう (|) 単体たんたいのみしるしていたところ、MW 1.24 以降いこうはこのくるしい方法ほうほうわって {{!}} マジックワード 使つかえます。 これはにパイプ記号きごうを MediaWiki 関数かんすうたいして〈不可視ふかし〉することで、特定とくていのページないのテンプレートるい変数へんすうがすべて展開てんかいするまで、処理しょり対象たいしょうとして保留ほりゅうされます。 そしてひょうれつくだり区切くぎとして解釈かいしゃくされます。 代案だいあんとしてなまの HTML 形式けいしき関数かんすうひょう使つか方法ほうほうもあり、ただし直感ちょっかんてき記述きじゅつしにくくエラー発生はっせいかくりつたかめです。

パイプ記号きごうは、平文へいぶん (解釈かいしゃくされない) 文字もじとしてエスケープすることもできます。これには HTML エンティティ &#124;使用しようします。

説明せつめい 入力にゅうりょく内容ないよう 結果けっか
パイプ記号きごうひょうくだり/れつ区切くぎりとしてエスケープ
{{!}}
|
パイプ記号きごうをプレーンな文字もじとしてエスケープ
&#124;
|

空白くうはくるい除去じょきょ

空白くうはく (改行かいぎょう、タブ、空白くうはくアキ) はパーサ関数かんすうぜんパラメータの開始かいしから終了しゅうりょうまで除去じょきょします。これを回避かいひするには、引用いんようかこんでから文字もじれつ比較ひかくします。

{{#ifeq: foo           |           foo | equal | not equal }}equal
{{#ifeq: "foo          " | "          foo" | equal | not equal }}not equal

then 部分ぶぶんおよび else 部分ぶぶんでの空白くうはく除去じょきょ回避かいひする方法ほうほうm:Template:If参照さんしょうしてください。空白くうはくわりに <nowiki > </nowiki> を使用しようすることもできます。

foo{{#if:|| bar }}foofoobarfoo
foo{{#if:||<nowiki /> bar <nowiki />}}foofoo bar foo

ただし連続れんぞくする複数ふくすう空白くうはく文字もじはパーサにより1文字もじ圧縮あっしゅくされるため、この方法ほうほうにより処理しょりできるのは1文字もじ空白くうはく文字もじ限定げんていされます。

<span style="white-space: pre;">foo{{#if:||<nowiki/>      bar      <nowiki/>}}foo</span>
foo bar foo

このサンプルでは white-space: pre 書式しょしき採用さいようしてブラウザじょう表示ひょうじでも、空白くうはくスペースが保持ほじされるように強制きょうせいします。ソフトウェアにより、ブラウザにわたまえ空白くうはく文字もじ除去じょきょされるため発生はっせいします。

この挙動きょどう回避かいひするには、ソフトウェアによって置換ちかんされないように空白くうはくるい&#32; (改行かいぎょう可能かのう空白くうはく) または &nbsp; (改行かいぎょう不可ふか空白くうはく、nbsp) に置換ちかんします。

<span style="white-space: pre;">foo{{#if:||&#32;&#32;&#32;bar&#32;&#32;&#32;}}foo</span>foo bar foo
foo{{#if:||&nbsp;&nbsp;&nbsp;bar&nbsp;&nbsp;&nbsp;}}foofoo   bar   foo

パラメータ同士どうしおもみづけは同等どうとうでないてんにご注意ちゅういください。 パーサ関数かんすう ParserFunctions では、冒頭ぼうとう末尾まつび空白くうはくスペースはつね除去じょきょされます。 テンプレート では冒頭ぼうとう末尾まつび空白くうはくスペースは名前なまえきパラメータと名前なまえをつけた名無ななしパラメータにかんしては除去じょきょ、ただし名無ななしのままのパラメータからは除去じょきょしません :

foo{{1x|content= bar}}foofoobarfoo
foo{{1x|1= bar}}foofoobarfoo
foo{{1x| bar }}foofoo bar foo

関連かんれん項目こうもく

脚注きゃくちゅう

  1. 2011ねんr86805以前いぜんとはあつかいがわりました。
  2. phabricator.wikimedia.orgのExtParserFunctions.php 参照さんしょうしてください。