• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/Wiki]]

[[フレームワーク/WikiEngine]]より

#contents

*やること [#b0ecaf87]

***フレームワーク/WikiEngine [#e202a9a0]
†[[フレームワーク/WikiEngine#be46ac08,WikiEngineとは]] [#v47ed41a]

+利用者 → フレームワーク/Webアプリケーション
クライアントアプリとユーザーエージェントの役目。リクエスト。
+フレームワーク/Webアプリケーション → フレームワーク/WikiEngine
クエリーの解析、セッションの用意など。
†[[プロトタイピング#d19defef,フレームワーク間の関係]]
+フレームワーク/WikiEngine → ページと要素
セッションページなどページ/要素のための環境を用意。ページが持つWikiTextからページ/要素の生成。
+ページ → ページ/要素
ページでやること。
+ページ/要素(各種機能)
各ページ/要素でやること。
+…
+フレームワーク/WikiEngine → フレームワーク/Webアプリケーション → 利用者
レスポンスをデコレーションしてそれぞれふさわしい形式にして。
†[[プロトタイピング#d19defef,フレームワーク間の関係]]
*これから考えること [#h0ad6a3d]
**[[X]] [#z799ea9d]
実装案。

RIGHT:[[:t/Wiki]] [[:t/X]] [[:t/実装]]



**連携相手になるページ/要素を指定する方法 [#hca262be]

***全てURIで [#xd4ba4da]
***参照記法は不要 [#zf9a4c9e]
全てURIで。埋め込みで使えれば参照記法は不要。

RIGHT:[[:t/URI]] [[:t/埋め込み]] [[:t/要素]]



***API向けパーマリンク [#k60b745d]
全てURIで参照するための仕組み。
InterWikiName、InterIncludeでも使うのでUI(=API)。


RIGHT:[[:t/URI]] [[:t/API]] [[:t/パーマリンク]]





**ページ/要素の導入と呼び出す仕組み [#b3132b75]
***プラグイン [#i6d4c004]
プラグインの仕組みはフレームワーク/WikiEngineのもの。
最も多いのはページ/要素のプラグイン。


RIGHT:[[:t/プラグイン]] [[:t/管理]]



***記法の優先順位 [#w0db0d4e]
優先順位は表やリスト記法で特定のページに記述。
記述順が優先順。
正規表現→ページ/要素を複数記述。正規表現にもページ/要素にも重複があっていい。そうしたほうが設定しやすいし優先順位があるので解決できる。

RIGHT:[[:t/記法]] [[:t/管理]] [[:t/データアクセス]] [[:t/API]]


**ページから要素を作る方法 [#z75ea4bf]

***記法 [#a1753617]
***記法の仕組み [#w848fd97]
[[:t/機能]]とその実装である[[:t/要素]]、それを呼び出す[[:t/記法]]。

†[[変換ルールはページ内で定義]]
†[[記法の書式]]


RIGHT:[[:t/記法]] [[:t/要素]] [[:t/機能]]



***WikiTextから得られるページ/要素 [#i327c2f7]
-Notations
[[ページ/要素]]を表す記法
-AutoLink
[[リンク/自動リンク]]記法
-Semantics
WikiTextを独占しない/消費しない記法
†[[検索用テキストを作るならページ要素で]]
-Plains
WikiText中の記法になっていない部分

RIGHT:[[:t/記法]] [[:t/要素]] [[:t/リンク]] [[:t/検索]]
**ページ/要素ができること [#sdf5bce0]
***ページ要素間の連携方法 [#o15b3863]

RIGHT:[[:t/要素]] [[:t/API]]
***クラス別のセッションデータ [#i668dee7]
セッションをクラス間連携に使用するルール。
フレームワークの中で制御するので、個々の要素は値名と値を用意するだけ。簡単不自由なI/F.

†[[フレームワーク/WikiEngineでやること,ページ要素間の連携方法]]

RIGHT:[[:t/API]] [[:t/セッション]] [[:t/Wiki]] [[:t/セッション]]



***ページに記述されたとき、Chain of Responsibilityで [#bc5af990]
リクエストされたページにある要素は全て呼ばれる。
その中でどのクエリーをどう使うかは要素次第なので、別にChain of Responsibilityでなくてもいい。全ての要素がResponsibility.

ページではなくURLクエリーに記述されたときもChain of Responsibilityではない。Chain(連鎖)はするけど。

Androidのインテントのようなものでもない。送り先を決めてパラメーターを用意。戻り値の型も要求する。


RIGHT:[[:t/要素]] [[:t/実装]] [[:t/Wiki]] [[:t/ページ]] [[:t/URI]]


***フレームワーク/エラーメッセージにクラス名 [#y3fb5f7e]
エラーメッセージの書き方。
競合も矛盾もない。

エラーメッセージはエラー対処のためのUIでもある。
検索がサイト間のハブサイト、エラーメッセージはその検索へユーザーを誘導する。


RIGHT:[[:t/管理]] [[:t/開発]] [[:t/実装]]



***簡単なAPI [#c65a0538]
簡単不自由なAPIと、面倒自由なAPIの両方を用意。
引数の違い。

例えばページ/要素のコンストラクターを2種類用意。どちらかを定義すれば要素として使えるように。

RIGHT:[[:t/API]] [[:t/開発]] [[:t/要素]]



***要素のインスタンスID [#b1ca6fdf]
getElementById()のようなAPIに必要。

RIGHT:[[:t/データアクセス]] [[:t/要素]] [[:t/実装]]



***クエリーにどう反応するか [#v2ea51d4]
要素の協調でリダイレクトをどう行なうか。:t/?

RIGHT:[[:t/要素]] [[:t/UI]] [[:t/実装]]



***ページのイテレーター [#vad5bbbb]
ページ/要素のスキャンはVisitorパターン。その中でページ/要素のイテレーター(これもページ/要素)を使っている。
例えば検索にヒットしてページのプレビューテキスト取得に。

ページのイテレーターならPage/Factoryが提供するといい。
いろいろな順番で。

RIGHT:[[:t/ページ]] [[:t/API]] [[:t/要素]]



***機能/APIとは [#v9a941b9]
要素(機能の実装)がAPIを提供してもいい。制限しないだけ。サポートもしない。自由。

→[[ページ/要素/API]]にページ名変更。


RIGHT:[[:t/API]] [[:t/要素]]



***機能/API/テスト用コード [#q1e224ba]
インストール時に動くか確認。
管理者が改造したときにも使える。運用しやすくなる。

UIは…ページ/要素クラス別のページ(複数のバージョンがある場合は下位ページでも作って)にあるテスト実行ボタンで。
テストが複数定義されていればその数だけボタンを表示するように。リフレクション→UIに反映。
テスト環境をどう作るのか。テスト用コードだけでできる:t/?

RIGHT:[[:t/開発]] [[:t/API]] [[:t/管理]]



***ページ/要素/UI [#k5398aa0]
拡張可能な要素のUIとは。
†[[UIを使うページ要素]]

要素を呼び出すためのUIは記法。エディターと組み合わせて使う一大機能。
†[[記法]]
†[[汎用記法]]

RIGHT:[[:t/UI]] [[:t/要素]] [[:t/開発]] [[:t/記法]]



**ほか [#yb2d8d2a]


***URLクエリーに置くデータ [#i23dcd1f]
クエリー文字列にはよそに貼れるデータだけを。
年月が経っても有効なものを。

RIGHT:[[:t/URI]] [[:t/リクエスト]]



***ページタイトルにユースケース別接頭辞 [#l759d331]
閲覧時には無印なのがポイント。コピペで再利用しやすくなる。

RIGHT:[[:t/閲覧]]



***[[フレームワーク/WikiEngine/同一視#sa0f0121]] [#s515ccc6]
括弧書き記法はビルトインのページ/要素。

RIGHT:[[:t/ビルトイン]] [[:t/要素]] [[:t/同一視]]



***負荷軽減に編集後の更新処理を分割 [#y453f2be]
[[検索:永続化システム]]([[検索:永続化クラス]])で実装。

RIGHT:[[:t/編集]] [[:t/負荷]] [[:t/永続化]]



***フレームワーク/WikiEngine/スタイルシートをページから生成 [#be33d4d8]
データアクセス可能なのは埋め込み解決後のページ。
埋め込み前にアクセスできても煩わしいだけ。

WikiでWiki自身の設定を。


RIGHT:[[:t/設定]] [[:t/スタイル]] [[:t/埋め込み]] [[:t/データアクセス]]




***フレームワーク/Webアプリケーション/再送 [#of9bf0c9]
利用者の情報損失を防ぐ。リトライ可能に。使いにくくなるのを防ぐ。


RIGHT:[[:t/エラー]] [[:t/UI]]



***[[:t/利用者]]と[[:t/アカウント]]の利用 [#w754de3e]
†[[ログインはWebフレームワーク、ユーザー管理はWikiフレームワーク]]

フレームワークで扱うのはログイン(認証)と、権限(錠と鍵)の整合判定。

RIGHT:[[:t/Web]] [[:t/Wiki]] [[:t/ログイン]]


**まだ [#f83f441b]


***下位展開 [#u989dc3a]
ビューの問題。閲覧時以外にもページを扱う場面ならどこでも起こる。

RIGHT:[[:t/閲覧]] [[:t/UI]]



RIGHT:[[:t/ビュー]] [[:t/UI]]
***ページを扱う仕組み [#kd5a13b1]
-[[ページ]]
-[[ページ/名前]]
-[[ページ/内部名]]
-[[ページ/属性]]
-[[ページ/裏]]
-[[ページ/履歴]]
-[[ページ/編集/UI]]
-[[ToDo/ページ削除のUI]]