目次 Edit


関連 Edit

検索:ページ

ページ周辺のタグ Edit

Array

ページとは Edit

→Page[?]

ページは再帰構造のデータベース。MVCのModelの中でも最も重要なもの。MVCのViewでもある。
ページがMまたはVに属するのではなく、ページの中にMとVが存在する。
wikiは1つのページ

思い付き Edit

  • 仕様が大きくなりそう
    ページの仕様は分割する必要がありそう?
  • Wikiのページにはファイルと同様にアクセス許可リスト、日付、読み専用などの属性、パスなどがある。
  • 章を1ページにすれば使い回しや情報集約のために分ける作業が減る。

Wiki構築をページ Edit

Wiki構築をページで。
他のWikiEngineでのプラグイン

  • ページにはアクセス権、日付、読み専用属性、パスなどがある。
  • 章を1ページにすれば使い回しや情報集約のために分ける作業が減る。

APIページ内の表をレコード単位で読み出しするようなことができれば実現しやすい。

アクセス権は引き継がれる Edit

自動生成ページは元のページ(入力されたページ)すべてのアクセス権を引き継ぐ。
アクセス権の合成ルールが必要。

自動生成ページの実装次第。他の要素には影響しない。

Wikiは1ページが1つの板 Edit

利用者登録も?WikiFarmとは違う?

HTML許可ページ Edit

ブログパーツなど、サイトに貢献する人だけが作れるページ
HTMLタグなどが閲覧ページまで残る。

作った後は(ページの機能を利用して)他のページに埋め込んだりできる。

ヘッダーの使い道 Edit

**自由欄
適宜、動的要素を表示する部分。ページの先頭に表示。WikiFormatで位置が指定されているときはそこ(だけ)に表示。RIGHT::t/属性
ヘッダー。つまり通常のページ埋め込みリンクで埋め込むだけ。
動的かどうかはプラグインによるのでここでは考慮しない。

内容は…

…などを章として追加。

実装 Edit

ページは…

  • データ保存場所
  • 保持しているデータや関連情報を提供する
  • 利用者から送られてきたクエリーのうち、自身に関する部分だけは解釈できる
    →これはフレームワークに。他のクラスにおいても同じ。
  • 入れ子関係になっている場合、親になるページインスタンスから属性を受け継ぐ
    →入れ子にはしない。埋め込みリンクで閲覧時にそう見えるようにするだけ。でも下位にあるページ属性継承できる。

ページは…

  • 読まれる
  • 書かれる
  • 自動的に書かれる
  • 自動的に読まれる
    ページに書かれた設定をプログラムが参照するとき。
  • 名前を持つ
  • ID(内部名)を持つ

ページの構成…

newプラグインを標準に Edit

ページへのリンク(Wiki内リンク)にはNew!が付く。
実装するならオプション。サイト設定で。

添付ファイルは1ページ扱い Edit

添付ファイル1つに1ページ生成。フォーマットの統一。
こうしたほうが扱いやすいし、ページの機能を添付ファイルでも利用できる。

埋め込みリンクを利用して添付ファイルに対応するページを他のページ埋め込み

存在しないページは無い Edit

存在しないページ=内容が空で存在するページ
ページ管理クラス(ページとファイルを結び付けるクラス)以外では(UIからも含めて)そうなっているように。

ページ内容はコードと見なせる Edit

ページ内容をコードと見なすと…

  • ページ内容は基本的に全てコメント
  • ただし、#(プラグインの接頭辞)で始まる行はコード
  • コードの出力はコメント
    コードとして再処理することは無い。
    他のコードの引数(データ)になることはある。
  • コードの出力はコードと置き換わる。

本文のレンダリングは最後 Edit

本文ヘッダーなど以外の部分)の展開(レンダリング、HTML変換)は最後。
1つの画面に重複部分があるとき、ヘッダーなどを優先する。
二重展開を防ぐようにした場合、先にヘッダーなどを展開しないとヘッダー編集時のプレビューができなくなるから。

ページ更新できるのは自身だけ Edit

編集など、ページ属性を変更する操作は自身が全て行なう。
(自身とはインスタンス)

他から変更したいときは、指示を対象ページにキューイング。
そのページは最新状態をリクエストされるまでに自身を変更すればいい。

参照は自由にできていい。

編集は遅延処理。
ページに手を加えるにはページごとに{属性→値}という形式で指示をキューイング。
適当なときに処理。

最新版が必要なときはそのページを呼び出して、最新版になってもらう。

衝突したか知らせるために、編集後のレスポンスには最新版が必要。それまでに更新しなければならない。

Webページテンプレートは特定のページに書く Edit

システムが用意するページ(Webページ)は:config/Page/Editのような特定のページで定義。

このページを書き換えて…

  • ページの構造・内容(HTML)
  • どんなときにどんなページを使うか
    User-Agent別に定義して、フルブラウザ用とか、ケータイ用とか、スマートフォン用とか。
    利用者権限別とか。

条件、それに合ったときの戻り値は特定のページに。
条件に使えるデータ、戻り値の用途はシステムにコードで定義。(用意されている中から選択して設定で利用)

コンテンツとスタイルの分離 Edit

「人気のページ」など、データを提供するページはコンテンツとスタイルを分ける。
スタイルは…

  1. スタイルシート
    RIGHT::t/スタイルシート[?]
  2. フィルター
  3. テンプレート

…で。
フィルターとテンプレートは別のページに埋め込んだときに可能…になるはず。

検索に含まれている。

リストとハッシュ Edit

リスト状に並んだページ
ハッシュに格納…Wiki。

ページ内容がオブジェクト構成を表す Edit

ページは独立したオブジェクト。
それを構成するElement系クラスを決めるのはページ内容

プラグインからはこのオブジェクト構成を参照できるように。
WebページのDOMアクセスと同様に。

1つのページ内部名にインスタンスは1つ Edit

Flyweight。内部名がID。ページ名は同じものが複数あっていい。

アクセスログページ属性 Edit

アクセスログページ化する。
プラグインから扱えるように。

ページプラグインのDB Edit

プラグインが生成するデータはページに記録。
プラグインが独自にデータ保存するよりも使いやすくなければ無意味。

資料 Edit

ごく簡単なHTMLの説明 - The Web KANZAKI
http://www.kanzaki.com/docs/htminfo.html

閲覧時のページ→HTML変換の参考に。

設計 Edit

コード Edit

Perl Edit

code*:364