• 追加された行はこの色です。
  • 削除された行はこの色です。
#norelated
RIGHT:&tag(ページ,思い付き,実装,コード,目次);

*目次 [#t94a8d59]
#contents
----
#lsx(new=true);

*関連 [#l71ba1cd]
#lsx(tag=ページ,new=true,except=^ページ(/.*)?$)

[[検索:ページ]]

*ページ周辺のタグ [#yc4ea82b]
#tag(0,ページ)

*ページとは [#qe624dec]
RIGHT:[[:t/ページ]] [[:t/フィルタリング]] [[:t/拡張]] [[:t/アクセス権]] [[:t/リダイレクト]]

→[[Page]]

ページは再帰構造のデータベース。
wikiは1つのページ。
*思い付き [#o96998b0]

-仕様が大きくなりそう
ページの仕様は分割する必要がありそう?

-Wikiのページにはファイル権限、日付、読み専用などの属性、パスなどがある。

-段落を1ページにすれば使い回しや集約のために分ける作業が減る。


**Wiki構築をページで [#g3e22770]
Wiki構築をページで。
他のWikiEngineでのプラグイン。

RIGHT:[[:t/組み立て]]

-ページにはファイル権限、日付、読み専用などの属性、パスなどがある。
-段落を1ページにすれば使い回しや集約のために分ける作業が減る。
**アクセス権は引き継がれる [#cfbd8cd4]
自動生成ページは元のページ(入力されたページ)すべてのアクセス権を引き継ぐ。
アクセス権の合成ルールが必要。

RIGHT:[[:t/アクセス権]]


**添付ファイルは1ページ扱い [#hf16f53a]
添付ファイル1つに1ページ生成。
こうしたほうが扱いやすいし、ページの機能を利用できる。
ページにページを含める機能を利用して添付。
RIGHT:[[:t/属性]]
**履歴を取らないとき [#z7d8afc2]
同一ユーザーによる同じページの複数回更新は上書き。
バックアップや履歴を取らない。無駄。
更新を1回取り消すと他のユーザーによる更新まで戻ることになる。
**Wikiは1ページが1つの板 [#g198eae4]
-この範囲で検索
-書き込み
-削除
などを。

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


**ページクラスに追加 [#ac7869e0]
iframeタグを生成するプラグインなど、管理者だけが使えるプラグインを使えるページ。
使える文字列が違う。

このページ自体管理者だけが使えるものでなくてはならない。
**newプラグインを標準に [#b38375a2]
章にはNew!が付く。
ということでページへのリンクにも付く。
章へのリンクにも。
RIGHT:[[:t/共通化]]

ページタイトルと章タイトルにも。
タイトルに付ける方法は?

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


**名前変更でリダイレクト [#sef60446]
ページの名前変更をしたら旧名はリダイレクトページになる。
もう一手間かけてリダイレクトページを消してもいいし、旧名をまた使うまで残しておくのも良い。

他サイトからのリンクを切らないための措置。

RIGHT:[[:t/連携]]


**自由欄 [#s9cf9fc3]

適宜、動的要素を表示する部分。
ページの先頭に表示。
WikiFormatで位置が指定されているときはそこ(だけ)に表示。
RIGHT:[[:t/属性]]

内容は…
-(管理者からではなく)システムからのメッセージ
リンクやボタンなども含む。
-検索に適合した部分
前後の数文字、数行を含めて表示。
リンクも生成して。
-リンクリスト
これが生成されたときはページ内にはアンカーを埋め込む。そのアンカーは前述のリンクへリンク。

…などを章として追加。
*実装 [#t1357f32]

**本文のレンダリングは最後 [#ua1b6934]
本文(ヘッダーなど以外の部分)の展開(レンダリング、HTML変換)は最後。
1つの画面に重複部分があるとき、ヘッダーなどを優先する。
二重展開を防ぐようにした場合、先にヘッダーなどを展開しないとヘッダー編集時のプレビューができなくなるから。
**ページを更新できるのは自身だけ [#e17f3c5c]
編集など、ページの属性を変更する操作は自身が全て行なう。
(自身とはインスタンス)

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

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

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

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

衝突したか知らせるために、編集後のレスポンスには最新版が必要。

RIGHT:[[:t/遅延処理]]
**Webページのテンプレートは特定のページに書く [#e7516dbe]
システムが用意するページ(Webページ)は:config/Page/Editのような特定のページで定義。

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

条件、それに合ったときの戻り値は特定のページに。
条件に使えるデータ、戻り値の用途はシステムにコードで定義。
**コンテンツとスタイルの分離 [#jcbb0dd4]
「人気のページ」など、データを提供するページはコンテンツとスタイルを分ける。
スタイルは…
+スタイルシート
RIGHT:[[:t/スタイルシート]]
+フィルター
+テンプレート


…で。

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


**リストとハッシュ [#z69970b0]
リスト状に並んだページ…版。
ハッシュに格納…Wiki。




**編集ページは検索エンジンにインデクシングさせないように指定 [#c52b3e86]


**本体はオブジェクト [#qdd0826b]
ページの本体はオブジェクト。
WikiTextではない。
WikiTextはオブジェクトを操作するためのコマンド集。あるいはオブジェクトの設計書。


**1つのページ名にインスタンスは1つ [#ocee16cb]
Flyweight。
**アクセスログはページの属性 [#i50a7b52]
ページを扱うとき、一緒にアクセスログも扱えるように。
RIGHT:[[:t/フレームワーク]] [[:t/属性]]


**ページはプラグインのDB [#d6676d32]
プラグインが生成するデータはページに記録。
独自形式を使うよりも使いやすくなければ無意味。


**再作成を頻繁に行うので… [#vbc54925]
ページにID
同一IDはFlyweight。
→Factoryが要る。
RIGHT:[[:t/属性]]
**資料 [#sb6c1333]
ごく簡単なHTMLの説明 - The Web KANZAKI
[[http://www.kanzaki.com/docs/htminfo.html>http://www.kanzaki.com/docs/htminfo.html]]
**属性はファイル名に保存 [#sa05e0d9]
ファイルの中に書くよりも活用しやすいので、属性はファイル名の一部に。
データ量が大きい属性やプラグインが定義する属性には対応せず、ファイルの中に書くことにして。
凍結→r、とか編集権限削除とか読み取り専用とか。
RIGHT:[[:t/属性]]


***ファイル名に置く属性 [#oe49cd6e]
-ページ名(ページ名のパスも含む)
-凍結中?
RIGHT:[[:t/属性]]


*コード [#b9332bbb]

**Perl [#n3bc38ca]
[[code*:364]]