• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(プロトタイピング);

プロトタイピング03のメモ。

**実装 [#j722bd6b]
[[http://x.pmint.name/>http://x.pmint.name/]]

WikiText→HTML変換まで。

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

**WikiText→中間表現→Element [#b486234f]
 中間表現
 {j722bd6b}

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

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

最後にPlainText変換。{ }以外をオブジェクト化。{ }が区切りになる。
**チェックリスト [#k642720b]
-同じNotationを含むネスト
 {{ ... {{{ ... {{ ... }} ... }}} ... }}
…を正しく処理できるか。3つのElementが生成されるか。
-交差
 {{ ... {{{ ... }} ... }}}
…を正しく処理できるか。優先順位(設定による)の高いほうだけが生成される。生成されるElementは1つ。
-NoWikiを正しく処理できるか。NoWikiの中で変換は行なわれていいがWikiTextに戻せるか。
-連結できるか。
-同じNotationのネスト
 {{ ... {{ ... }} ... }}
…を正しく処理できるか。2つのElementが生成されるか。
**スコアは偏差値 [#vb2ccccf]
検索キー←は教科、全教科の偏差値を合計して。

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