ページとは Edit

ページは情報を持ち、アクセス制御をするもの。アクセス制御するので見る者によって与える情報を変えることになる。見る者とは利用者、他のページ/要素、よそのシステム。
ページ/名前 × アクセス制御 → 情報。書き込むときは逆方向。

アクセス制御を表すのは権限。情報を表すのはページ/要素
つまり、ページ/名前 × ページ/要素 × 権限を対応付けるのがWiki。

メタファー Edit

ページはいろいろなアプリケーションやサービスにも見られるもの。情報を記録するものと見たり、商品として見たり。

ページはファイルやデータベースに例えることができる。利用者が書いたことを記録してアクセス制御をするもの。そのページを集めたのがWiki。どのページに何を書いてどれとどれをリンクするかがWikiの構造。現在では情報は検索で探すものになっているので構造は重要でないとされているが、構造も情報のひとつなので、利用しない手はない。

Edit

ページにはがある。ページ/型設定すればHTMLを直接書いたり、各種記法のレンダリング後(HTML)を貼っただけのページも利用可能。
:i/HTML許可ページ
:i/HTML書き込み

管理者のみページ/型:HTMLを使えるようにするには属性値に「ページ/型をHTMLにできる」といった値を設定可能にする。運用の問題
:Done/ページ型/スレッド/データコンテキスト/記法定義まとめ#o051e5a4

権限を独占できる Edit

ページ作成者には以降の編集を自分だけで行なう権利がある。
全ての利用者には権限があって、その権限編集可能なページがある。
:i/俺のモノは俺のモノ

#te598c37

ページの構造 Edit

ページ内容本文)はページ/要素だけ。要素間ではネストするけど、ページ内にページは現れない。
下位展開では名前に共通部分があるページをまとまりと見なしてレイアウト上で並べるだけ。ページ間のつながりではない。明示的リンクページ間の関連性を示すことはできる。自動検出ではない関連性。

ページの組み合わせ方 Edit

ページの組み合わせがWiki。でもページ──Wikiまでの間にも組み合わせはある。
よそのWikiEngineと同じく各ページには固有のページ名がある。でも同じページに複数のがあったりして…それらを列挙すると全部で4つの名前が必要になる。

外部名4区分
利用者に見えるほうのページ名。(もう一方は内部名
4区分とはスペースページ/名前見解(統一感がない。統一感を出す別名名前空間?ウィキ名?/項目名/見解名/名)

ページ/名前ページ内容から自動生成。ページ内容の一部をページ名にする。
実体は外部名を完全に決めないとページを特定できないということ。

のリストがページ/履歴
名以外を特定しなければページ/履歴は得られないということ。

ページ/名前のほかにWeb上でのページタイトル(<title>...</title>)もある。これもページ/内容見出し要素から自動的に生成される。

#afb81108

:i/ページ本文も属性のひとつ Edit

ページを操作するためのUI Edit

ページ管理名前で行なう。名前の変更でページの移動や削除まで実施できる。そういうわけで(編集作業のために)閲覧中のページ名をコピペしやすくする必要がある。

名前さえあれば内容がなくてもページは存在できる。存在しないページを閲覧すると「書いて」ではなく空のページ(と関連情報)が見られる。この点はよそのWikiと違う点。

ページ削除方法 Edit

ページ削除編集で。ページ名を(空)にすれば削除手続きになる。削除編集なので、編集と同様に編集/承認が必要。その後実際の削除が行なわれる。(とは言っても(空)を示す最新版が作られるだけ)

#m7402a92

UIになるページ Edit

UI化するページ/要素
特定のページ/型を持つページ有効。→ :i/UI要素

UIになるページ/テンプレート Edit

閲覧時に適用されるテンプレートヘッダー/フッター/常設メニューを作るのに使う。

入力用のテンプレート Edit

複数のUI要素を集めたテンプレートは「入力用テンプレート」とも呼べる。別名フォームテンプレート」。閲覧ビューでの編集UIその場編集UI)としても利用する。
:i/UI要素
:i/テンプレートは制限するものではない

ページの元にするためのテンプレート Edit

:i/増殖するページ
利用者ページ/作成をリクエストするほか、ログが増えるときにも使われる。投稿時に適用されるテンプレートなので、適用後はドキュメントに混ざって再利用はできなくなる。

複数ページをまとめる枠 Edit

下位展開時の枠や、複数のユースケースを一度に呼ばれたときの枠も「テンプレート」と呼んでいるけど「レイアウト」にしたほうが良さそう。複数のビューを1つのWebページにする。枠/枠1つぶんのリクエストはそれぞれ別。枠の数だけリクエストしてもらう。
:i/ヘッダーの使い道
† :i/ユースケースチェイン[?]
ヘッダー

テンプレート見解クライアントに合わせて差し替えれば多言語対応に。 Edit

テンプレートにも見解がある??
:i/Webページのテンプレートは特定のページに書く

#a6ce55e1

Wiki構築のためのページ Edit

管理者によるカスタマイズ。ページを作ることで実現できるように。

カスタマイズの手順。

  1. プラグインを導入。プラグインではないページ/要素ビルトイン要素)もある。
  2. その設定(特定のページ)を書き換える。
  3. プラグインビルトイン要素ページ上に配置。



いろいろなカスタマイズ Edit

カスタマイズの動機になる情報を載せるページ Edit

† :i/機能/分析[?]
MediaWikiでの特別ページのように管理に役立つ情報を載せるページ(ユーティリティページ

分析ページは通常のページと実装が異なっていても、ページとして扱えるようにしたい。そのため呼び出し方を統一する。ページ名指定でページを参照すれば分析結果が通常のページの形式で分かるように。多くの場合、テンプレートを埋め込んだりするのでページ/要素として実装する。それを配置したページが分析ページ管理者に作ってもらう。情報を記録する必要があるならページに記録する。† :i/ログはページに記録

:i/ページの重さも特別ページの1つ。
Wikiの可視化概要把握の機能とその表示。

:i/最近更新されたページも特別ページ。実体がページ/要素で、その出力が動的なページリスト。

#pfc0f372

ページを実装するには Edit

ページ自体の機能は永続化くらい。豊富な機能はページ/要素に委譲したり、ページを扱う側で実装。
ページでやることX/Pageページクラスの仕様。

#v0cd5027


ページは情報をページ/要素の入れ子にして保持する。永続化の対象はページ(と含まれるページ/要素)だけ。情報を生かすのはページ/要素自身とそれを使う側の問題なのでページは個々の要素を区別しない。ページが持つ機能は「NotationText記法を使ったテキスト)←→ページ/要素」の相互変換と保持と参照くらい。

ページ/要素NotationTextのとき、ページ/型が「ページ/要素」を表す値のとき、データコンテキストに合った変換を行なう。「行なう」と言ってもページが行なうのはページ/要素データコンテキストを伝えるくらい。

ページ/要素NotationTextのときの変換はNotationTextで使われている記法系ページ/要素次第。ページ自体は介入しない。

ページページ/要素 Edit

主体はページ/要素が持つ情報(利用者が書いたこと)。それを組み合わせるのがページページを組み合わせるのがWiki。ページ/要素が中心。

ページ間に上下関係があったり要素間に構造があったりするものの、利用者からのリクエストパラメーターはそれを解釈できる要素が直接解釈する。中間にあるオブジェクトは受け渡しするだけ。リクエスト→要素→レスポンス。構造無視。要素は単独でWebアプリのように振る舞う。

Xのモデル層にはページページ/要素くらいしかない。永続化するのはこれらのオブジェクトくらい。(よそのアプリと連携するためのモデルクラスはできるかも知れない。)ページページ/要素は同一視できないものの共通点はある(:i/ページは要素でもある)。例えばデータコンテキストに応じる機能。ページ/要素:i/ページにtoJsonを実装して、いずれでもJSON形式を作れるようにする。インターフェイスを共通にする??

ページの用途 Edit

Wikiの構成要素としての使われ方
:i/属性と内容の実態は同じ。:i/ページ内容と属性領域の違いは操作に必要な権限。いずれも実体はページ
:i/権限が影響するもの[?]ページが関わるところ全てと、ユースケース。つまりいたるところ。権限の参照を速くすれば高速化できそう。

利用者からの使われ方/用途は決めていない。「何を書き込まれるか」と書き込みから生じた要素の実装次第なので定義不可。ページを操作するAPIは用意するけど用途は未定義。
利用者にとってのページUI上で見えるページ)は複数のページの集約。ページ/内容ページ/属性ページ/裏、ページ/権限。さらに内容はドキュメント/スレッド1/スレッド1-1/スレッド2/…と分かれている。いずれも実体は独立したページ

ページの上下関係 Edit

1つの上位ページで複数の下位ページをまとめることができる。ただページ/名前に共通部分を作るだけ。ページ間に関連なし・名前だけつながりのネスト構造。オブジェクト間はつながっていない。

ページを上下関係でまとめるとページ/属性継承属性/継承)や下位展開の対象になる。

下位のあるページ下位展開でまとめて表示可能。上下関係はページ名に含まれる単語数で分かる。→ 順不同パス#i8d1b64a "1つ上/1つ下"
下位展開時の表示順序ページ/属性で(だいたい)決まる。
:i/ページと他オブジェクトとの関わり合い
† :Done/セクションをやめてページのネストで[?]

上下関係で最上位にあるのはルートページ

ルートページ
…は全てのページの上位に位置するページ
…は全てのページに共通する名前 / を持つ(だけの)ページということ。
…の階層レベルは0。単語1つでレベル1。

:i/なんでもページに記録 Edit

ほか Edit

関連 Edit

ページ関連のアイデア目録。