Manual:Parser.php/ja
[edit] 説明
このファイルはclass Parserにあるものを含みます。class Parserはfunction parseを含みます。function parseは$text引数のウィキテキストを解析するためにOutputPage.phpのaddPrimaryWikiText関数から呼び出されます。function parseはfunction stripを呼び出します。これはnowiki、pre、math、hieroといったものを「ストリップ」してからレンダーします。例えば、nowikiタグの間のそれぞれのテキストを一時コードで置き換えます (これは最終的には「ストリップ解除」の処理によってもとのテキストに置き換えられます)。この後でXMLスタイルのタグのエクステンションが処理されます。
stripを呼び出す前後に一つずつフックがあります。次のセクションをご覧ください。 その後で、この関数はfunction internalParse (ウィキテキストの$text文字列引数をHTMLに変換する) を呼び出します。
この関数はParserBeforeInternalParseフックで始まり次の順番で呼び出されます;
- function replaceVariables: 再帰的に変数、テンプレートとテンプレートパラメータを拡張します; 次のものを呼び出します:
- function replace_callback: 二重もしくは三重中括弧のペアに関してwikitextを解析する。
- function braceSubstitution: 変数とテンプレートを拡張する。
- パイプが存在しない場合、function variableSubstitutionが呼び出されます。
- function createAssocArgs: "a=3"、"5"、"a=4"、と"8"といったパラメータの配列定義を連想配列に変換します。1、2がインデックスでパラメータの値は4、5、8といった配列の値とします。
- function argSubstitution: テンプレートパラメータを拡張します。
- function doHeadings: ヘッダーコードを置き換えます: ==a==は<h2>a</h2>などになります。
- DateFormatter.phpにあるfunction reformat: converts dates and times according to preferences
- function doAllQuotes: replaces double and triple quotation marks by <i> and <b>.
- function replaceInternalLinks: 内部リンクをHTMLに変換します。
- function replaceExternalLinks: 外部リンクをHTMLに変換します。
その後、ティディ (整形) 処理があります。この前後にもフックがあります。
ファイルはSpecial:ExpandTemplatesのために使用されるfunction preprocessを含みます。Special:ExpandTemplatesはstrip とunstripコールの間のreplaceVariables関数のコールを含みます。
ファイルが一つの関数をセットアップしてそれを定義するPHP関数の名前でパーサ関数のmagic_word_idを関連付けるときに呼び出されるfunction setFunctionHookを含みます。(パーサ関数エクステンションもご覧下さい)。この情報はarray mFunctionHooksに保存されます。array mFunctionSynonymsも作成されます。これも配列で、インデクスとして、大文字小文字を問わない論理値を取り、値として、ウィキテキスト中で使うマジックワードをインデクスとしてマジックワードのIDを値とする配列を取ります。これらの配列は解析の間に使用されます。
[edit] フック
| バージョン | フック | 説明 |
|---|---|---|
| 1.5.0 | MediaWiki hooks/ParserAfterStrip | |
| 1.5.0 | MediaWiki hooks/ParserAfterTidy | 完全にレンダーされたページの出力に若干の最終処理を追加するために使います |
| 1.6.0 | MediaWiki hooks/ParserBeforeInternalParse | |
| 1.5.0 | MediaWiki hooks/ParserBeforeStrip | 内部処理が適用される前の生のウィキテキストを処理するために使用されます |
| 1.5.0 | MediaWiki hooks/ParserBeforeTidy | ページに対するほぼレンダーされたHTMLコードを処理するために使用されます(HTMLのティディ (整形) 処理が起こる前です) |
| 1.6.0 | MediaWiki hooks/ParserClearState | |
| 1.6.0 | MediaWiki hooks/ParserGetVariableValueSwitch | |
| 1.6.0 | MediaWiki hooks/ParserGetVariableValueTs | |
| 1.6.0 | MediaWiki hooks/ParserGetVariableValueVarCache | |
| 1.6.0 | MediaWiki hooks/ParserTestParser |
[edit] 関連項目
| 言語: | English • 日本語 |
|---|
