Manual:Parser.php/ja

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

strip</tt>のコールの前後に一つのフックがあります. 次のセクションをご覧下さい. その関数が$text</tt>文字列をwikitextからHTMLに変換するfunction internalParse</tt>を呼び出した後です.

この関数はhook 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に変換します.

tidyがある場合の後で、それの前後のフックが伴われます.

ファイルは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>も作成されます. ケースセンシティブの論理値はindexとして、wikitextで使用されるマジックワード付きの値はindexesとして、マジックワードのIDは値として. これらの配列は解析の間に使用されます.

関連項目

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