- 追加された行はこの色です。
- 削除された行はこの色です。
RIGHT:[[:t/要素]] [[:t/Wiki]]
RIGHT:[[:t/要素]] [[:t/Wiki]] [[☆]]
機能の実装。ページ/要素を使うためにXというフレームワークがある。
利用者によってページに記述され、ページごと呼び出される。
----
## ページ/要素
- 要素は利用者が入力した情報と、いろいろな機能を併せ持つもの。
-- 要素はページに記録された情報をオブジェクト化したもの。
-- 要素はいろいろ考えた機能の実装。要素の作り方は自由にしていい。
- 要素をページ上に配置するために使われるのが[[記法]]。
ビルトイン要素は簡易マークアップで。プラグイン要素は汎用記法で。
→ [[:Done/ページ型/スレッド/データコンテキスト/記法定義をまとめて設計#je7681db]]
----
ページ/要素とはページに記述できるプラグイン。記述方法は→[[記法]]。
汎用記法か、管理者が定義した記法で記述すると機能するようになる。
%%記法処理中にどの記法も汎用記法に置き換えられる。%%
→要素はユーザーから渡されたNotationTextを返せなければならない。要素を生成する前に何かに置き換えることはできない。
----
#contents
*[[:t/要素]]より [#ua6a9967]
あとで残りの[[:t/要素]]を追加。
**ページ/要素とは [#ia525a2a]
***[[:i/ページとは]] [#y7f86567]
ページ/要素はデータベーステーブル内のフィールドにあたる。ただし1要素で値1つ(1フィールドの1レコード分)。
***[[ページ/要素/API]] [#v9a941b9]
要素(機能の実装)がAPIを提供してもいい。制限しないだけ。サポートもしない。自由。
RIGHT:[[:t/API]] [[:t/要素]]
**ページ/要素ができること/しなくてもいいこと [#sdf5bce0]
***[[:i/リクエスト内のパラメーターと汎用記法のパラメーターは同じ]] [#r2d562d2]
呼び出され方を区別しなくていい。
データコンテキストの区別はデータコンテキスト名別のTo…メソッドでできるし。
***[[:i/クエリーにどう反応するか]] [#v2ea51d4]
要素の協調でリダイレクトをどう行なうか?
→リダイレクトは要素ではなくユースケースの役目。問題なし。
要素がリダイレクトを指示するなら他の要素の出力を抑えなければならない。協調しないということなので、不可。リダイレクトをするユースケースを呼び出すボタンを用意して、利用者に押してもらう(協調しないユースケースを呼んでもらう)ような方法なら可。
RIGHT:[[:t/要素]] [[:t/UI]] [[:t/実装]]
***[[:i/要素の展開タイミング]] [#k4332ba0]
***[[ページ/要素/UI]] [#k5398aa0]
拡張可能な要素のUIとは。
†[[:i/UIを使うページ要素]]
要素を呼び出すためのUIは記法。エディターと組み合わせて使う一大機能。
†[[記法]]
†[[汎用記法]]
RIGHT:[[:t/UI]] [[:t/要素]] [[:t/開発]] [[:t/記法]]
***[[:i/簡単なAPI]] [#c65a0538]
簡単不自由なAPIと、面倒自由なAPIの両方を用意。
引数の違い。
例えばページ/要素のコンストラクターを2種類用意。どちらかを定義すれば要素として使えるように。
RIGHT:[[:t/API]] [[:t/開発]] [[:t/要素]]
***[[ページ/要素/API#vcafaa10]] [#q1e224ba]
テストコード。
インストール時に動くか確認。
管理者が改造したときにも使える。運用しやすくなる。
UIは…ページ/要素クラス別のページ(複数のバージョンがある場合は下位ページでも作って)にあるテスト実行ボタンで。
テストが複数定義されていればその数だけボタンを表示するように。リフレクション→UIに反映。
テスト環境をどう作るのか。テスト用コードだけでできなければならない。
RIGHT:[[:t/開発]] [[:t/API]] [[:t/管理]]
***[[:i/エラーメッセージにクラス名]] [#y3fb5f7e]
エラーメッセージの書き方。
競合も矛盾もない。
エラーメッセージはエラー対処のためのUIでもある。
検索がサイト間のハブサイト、エラーメッセージはその検索へユーザーを誘導する。
RIGHT:[[:t/管理]] [[:t/開発]] [[:t/実装]]
***[[:i/汎用記法で名前付きパラメーター]] [#u041faad]
***[[:i/要素にはUsageを含める]] [#pbc25ee4]
**ほか [#wdbd0966]
***[[:i/時刻だけ書いたら同じページに書かれている日付を加味]] [#g3ec4985]
***[[:i/投稿時展開する記法は要らない]] [#t494053a]
**性質 [#g8639f13]
***[[:i/設定違いを別記法にするとシンプルに]] [#ed2bbc36]
***[[:i/複数行パラメーターの書き方]] [#dd35ce2d]
***[[:i/要素3態]] [#efe11f51]
***[[:i/ページは要素のコンポジション]] [#p34dd91b]
***[[:i/要素は部品]] [#s08ea3a6]
***[[:i/要素がページに記述されたとき、Chain of Responsibilityで]] [#y336df0d]
→ [[:i/要素がページに記述されたとき、Chain of Responsibilityで?]]
要素間/ページ間の依存をなくす。それぞれが独立。連携するなら相手に依存することになる。プラグインが守らなければならないルールが無い代わりに、連携をサポートすることも無い。
***%%[[:/ページ全体も要素]]%% [#d01e8e41]
***[[:i/プラグイン要素は記法]] [#bfdf34e7]
***[[:i/要素展開は閲覧時]] [#zf4ad7b0]
***[[:i/要素はChain of Responsibility]] [#de0ad35e]
***[[:i/ページ──要素間はコンポジションに]] [#cbce981c]
***[[:i/要素クラスの継承]] [#vabdfaec]
***[[:i/要素の使い方は2種類]] [#tf737297]
***[[:i/要素に使い方が2種類あっても実体は1つ]] [#f69d5c72]
***[[:i/要素はリクエストから直接呼び出されてもネスト可能]] [#bd2fc668]
***[[:i/要素呼び出しとMVC]] [#xeb24cb5]
**利用例 [#w93325f6]
***[[:i/URLクエリーは一時的ページ]] [#d7fd2837]
***[[:i/要素を必要なときにインストール]] [#j7bbaff7]
**要素/ [#m6f2d009]
#ls