機能の実装。ほとんどのプラグインページ/要素。拡張の要。


  1. :t/要素より
    1. URLクエリー
      1. :/検索式を使う検索
    2. いろいろなページ/要素
      1. :i/レイアウト要素
    3. 未分類
      1. :i/時刻だけ書いたら同じページに書かれている日付を加味
      2. :i/投稿時展開する記法は要らない
      3. :i/階層化ページ名がタグなら一覧化しないと[?]
    4. ページ/要素とは
      1. :i/ページとは
      2. ページ/要素/API[?]
    5. ページ/要素ができること/しなくてもいいこと
      1. :i/リクエスト内のパラメーターと汎用記法のパラメーターは同じ
      2. :i/クエリーにどう反応するか
      3. :i/要素の展開タイミング
      4. ページ/要素/UI
      5. :i/簡単なAPI
      6. ページ/要素/API#vcafaa10[?]
      7. :i/エラーメッセージにクラス名
      8. :i/汎用記法で名前付きパラメーター
      9. :i/要素にはUsageを含める
    6. 性質
      1. :i/設定違いを別記法にするとシンプルに
      2. :i/複数行パラメーターの書き方
      3. :i/要素3態
      4. :i/ページは要素のコンポジション
      5. :i/要素は部品
      6. :i/要素がページに記述されたとき、Chain of Responsibilityで
      7. :/ページ全体も要素
      8. :i/プラグイン要素は記法
      9. :i/要素展開は閲覧時
      10. :i/要素はChain of Responsibility
      11. :i/ページ──要素間はコンポジションに
      12. :i/要素クラスの継承
      13. :i/要素の使い方は2種類
      14. :i/要素に使い方が2種類あっても実体は1つ
      15. :i/要素はリクエストから直接呼び出されてもネスト可能
      16. :i/要素呼び出しとMVC
    7. 使われ方
      1. :i/URLクエリーは一時的ページ
      2. :i/要素を必要なときにインストール
  2. ページ/要素/

:t/要素より Edit

URLクエリー Edit

:/検索式を使う検索 Edit

利用するユースケースクラスによってはURLクエリーがページと同じになる。ページとの違いはデータコンテキストの違いだけ。呼ばれたページに含まれるページ/要素は、URLクエリーからデータを引き出すことになる。

あるユースケースでは、URLクエリー上で一時的なページを作れる。レスポンスにはそのページが載る。複数のページをひとつのレスポンスにまとめたりできる。

いろいろなページ/要素 Edit

:i/レイアウト要素 Edit

随時作ればいい。
スタイルを与えるだけのもの。あるいは入口と出口の要素を分けて、出口をテンプレート内に配置。入口はページ本文で後から追加。入口の内容が出口にだけ表示される。

未分類 Edit

:i/時刻だけ書いたら同じページに書かれている日付を加味 Edit

:i/投稿時展開する記法は要らない Edit

:i/階層化ページ名がタグなら一覧化しないと[?] Edit

ページ/要素とは Edit

:i/ページとは Edit

ページ/要素はデータベーステーブル内のフィールドにあたる。ただし1要素で値1つ(1フィールドの1レコード分)。

ページ/要素/API[?] Edit

要素(機能の実装)がAPIを提供してもいい。制限しないだけ。サポートもしない。自由。

ページ/要素ができること/しなくてもいいこと Edit

:i/リクエスト内のパラメーターと汎用記法のパラメーターは同じ Edit

呼び出され方を区別しなくていい。
データコンテキストの区別はデータコンテキスト名別のTo…メソッドでできるし。

:i/クエリーにどう反応するか Edit

要素の協調でリダイレクトをどう行なうか?

リダイレクト要素ではなくユースケースの役目。問題なし。

要素リダイレクトを指示するなら他の要素の出力を抑えなければならない。協調しないということなので、不可。リダイレクトをするユースケースを呼び出すボタンを用意して、利用者に押してもらう(協調しないユースケースを呼んでもらう)ような方法なら可。

要素で行う場合でも、:i/レイアウト要素と同じように、HTMLヘッダーやHTTPヘッダーに出力できれば可能。要素から要素を呼ぶことになる。

:i/要素の展開タイミング Edit

ページ/要素/UI Edit

拡張可能な要素UIとは。
:i/UIを使うページ要素

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

:i/簡単なAPI Edit

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

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

ページ/要素/API#vcafaa10[?] Edit

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

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

:i/エラーメッセージにクラス名 Edit

エラーメッセージの書き方。
競合も矛盾もない。

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

:i/汎用記法で名前付きパラメーター Edit

:i/要素にはUsageを含める Edit

性質 Edit

:i/設定違いを別記法にするとシンプルに Edit

設定スペースにひとつ。その中に同じ要素のパラメーター違いを用意して、それぞれを別の記法にするのがいい。

:i/複数行パラメーターの書き方 Edit

書き方…記法の問題。改行文字をどう扱うか。

:i/要素3態 Edit

記法は別になった。要素はオブジェクト。

:i/ページは要素のコンポジション Edit

ページ要素を与えると機能になるような設計。
ページが機能を持つので、ページ名が機能名になっていい。

:i/要素は部品 Edit

要素は組み合わせて使う。
個々が機能を提供しなくてもいい。

:i/要素がページに記述されたとき、Chain of Responsibilityで Edit

:i/要素がページに記述されたとき、Chain of Responsibilityで?
要素間/ページ間の依存をなくす。それぞれが独立。連携するなら相手に依存することになる。プラグインが守らなければならないルールが無い代わりに、連携をサポートすることも無い。

:/ページ全体も要素 Edit

:i/プラグイン要素は記法 Edit

プラグインは作る。要素の元になる上位クラス。
要素プラグインとして作るので、プラグインインターフェイスを実装した要素になる。

:i/要素展開は閲覧時 Edit

:i/要素はChain of Responsibility Edit

:i/ページ──要素間はコンポジションに Edit

:i/要素クラスの継承 Edit

:i/要素の使い方は2種類 Edit

:i/要素に使い方が2種類あっても実体は1つ Edit

:i/要素はリクエストから直接呼び出されてもネスト可能 Edit

:i/要素呼び出しとMVC Edit

使われ方 Edit

:i/URLクエリーは一時的ページ Edit

:i/要素を必要なときにインストール Edit

ページ/要素/ Edit