Manual:Parser.php/ja

説明
このファイルはclass Parserにあるものを含みます. class Parserはfunction parseを含みます. function parseは$text引数のウィキテキストを解析するためにOutputPage.phpのaddPrimaryWikiText関数から呼び出されます. function parseはfunction stripを呼び出します. これはnowiki</tt>、pre</tt>、math</tt>、hiero</tt>といったものを「ストリップ」してからレンダーします. 例えば、nowiki</tt>タグの間のそれぞれのテキストを一時コードで置き換えます (これは最終的には「ストリップ解除」の処理によってもとのテキストに置き換えられます). この後でXMLスタイルのタグのエクステンションが処理されます.

strip</tt>を呼び出す前後に一つずつフックがあります. 次のセクションをご覧ください. その後で、この関数はfunction internalParse</tt> (ウィキテキストの$text</tt>文字列引数をHTMLに変換する) を呼び出します.

この関数はParserBeforeInternalParseフック</tt>で始まり次の順番で呼び出されます;


 * function replaceVariables</tt>: 再帰的に変数、テンプレートとテンプレートパラメータを拡張します; 次のものを呼び出します:
 * function replace_callback</tt>: 二重もしくは三重中括弧のペアに関してwikitextを解析する.
 * function braceSubstitution</tt>: 変数とテンプレートを拡張する.
 * パイプが存在しない場合、function variableSubstitution</tt>が呼び出されます.
 * 中括弧の間のテキストが変数の名前である場合function getVariableValue</tt>が呼び出されます.
 * 時間に依存する変数を評価するために、PHP関数のtime</tt>とdate</tt>が呼び出されます.
 * 左中括弧の後で、コアパーサ関数のタイトルとコロンがある場合、 <tt>CoreParserFunctions.php</tt>に関連した関数が呼び出されます.
 * <tt>function createAssocArgs</tt>: "a=3"、"5"、"a=4"、と"8"といったパラメータの配列定義を連想配列に変換します. 1、2がインデックスでパラメータの値は4、5、8といった配列の値とします.
 * <tt>function argSubstitution</tt>: テンプレートパラメータを拡張します.
 * <tt>function doHeadings</tt>: ヘッダーコードを置き換えます: <tt> ==a== </tt>は<tt> a <tt>などになります.
 * DateFormatter.phpにある<tt>function reformat</tt>: converts dates and times according to preferences
 * <tt>function doAllQuotes</tt>: replaces double and triple quotation marks by <tt> <i> </tt> and <tt> <b> </tt>.
 * <tt>function replaceInternalLinks</tt>: 内部リンクをHTMLに変換します.
 * <tt>function replaceExternalLinks</tt>: 外部リンクをHTMLに変換します.

その後、ティディ (整形) 処理があります. この前後にもフックがあります.

ファイルはSpecial:ExpandTemplatesのために使用される<tt>function preprocess</tt>を含みます. Special:ExpandTemplatesは<tt>strip</tt> と<tt>unstrip</tt>コールの間の<tt>replaceVariables</tt>関数のコールを含みます.

ファイルが一つの関数をセットアップしてそれを定義するPHP関数の名前でパーサ関数の<tt>magic_word_id</tt>を関連付けるときに呼び出される<tt>function setFunctionHook</tt>を含みます. (パーサ関数エクステンションもご覧下さい). この情報は<tt>array mFunctionHooks</tt>に保存されます. <tt>array mFunctionSynonyms</tt>も作成されます. これも配列で、インデクスとして、大文字小文字を問わない論理値を取り、値として、ウィキテキスト中で使うマジックワードをインデクスとしてマジックワードのIDを値とする配列を取ります. これらの配列は解析の間に使用されます.

関連項目

 * Manual:Code/ja
 * Manual:Coding conventions/ja