実装 Edit

http://x.pmint.name/

WikiText→HTML変換まで。

WikiNotationプラグイン定義のもの。正規表現で定義。

WikiText→中間表現→Element Edit

中間表現
{j722bd6b}

Elementに変換後、正規表現の邪魔にならないように
ElementのインスタンスIDを置いておく。Elementコンストラクターには中間表現が渡る。

変換前にWikiText内の { } は置き換え。

  1. 文字列置換 WikiText→中間表現
    Notation定義ごとに置き換え。Notationの数だけ置き換え処理。
  2. WikiTextがすべて{ }表現に置き換わる
  3. 文字列置換 中間表現→Element
    外側から。中間表現1つごとにElement生成。
    内側にある中間表現はElementに渡す。それをどうするかはElementによる。→NoWiki記法ではそれ以上深い処理をしなくていい。

最後にPlainText変換。{ }以外をオブジェクト化。{ }が区切りになる。

チェックリスト Edit

  • {{ ... {{{ ... {{ ... }} ... }}} ... }}
    …を正しく処理できるか。3つのElementが生成されるか。
    {{ ... {{{ ... }} ... }}}
    …を正しく処理できるか。優先順位(設定による)の高いほうだけが生成される。生成されるElementは1つ。
  • NoWikiを正しく処理できるか。NoWikiの中で変換は行なわれていいがWikiTextに戻せるか。
  • 連結できるか。

スコアは偏差値 Edit

検索キー←は教科、全教科の偏差値を合計して。

各教科の偏差値は1ページ内の最高スコアから求める。