詳細な設計→Page

Wikiはページの集約。利用者ページ/内容にしか興味はない。

Wikiの情報もデータもすべてページに記録する。ページ永続化する。

目次 Edit

  1. 目次
  2. 関連
  3. ページ
  4. ページ周辺のタグ
    1. ページとは
  5. ページとは
  6. 思い付き
    1. メタファー
    2. 権限を独占できる
    1. スレッドモード
    2. Wiki構築をページで
    3. ページの構造
    4. アクセス権は引き継がれる
      1. ページの組み合わせ方
    5. Wikiは1ページが1つの板
    6. HTML許可ページ
    7. ヘッダーの使い道
      1. :i/ページ本文も属性のひとつ
  7. 実装
    1. ページを操作するためのUI
    2. ビュー
    3. 構成
    4. ページとは
      1. ページの削除方法
    5. UIになるページ
    6. UIになるページ/テンプレート
      1. 入力用のテンプレート
      2. ページの元にするためのテンプレート
      3. 複数ページをまとめる枠
      4. テンプレートや見解をクライアントに合わせて差し替えれば多言語対応に。
    7. Wiki構築のためのページ
      1. いろいろなカスタマイズ
      2. カスタマイズの動機になる情報を載せるページ
    8. ページを実装するには
      1. ページとページ/要素
      2. ページの用途
      3. ページの上下関係
      4. :i/なんでもページに記録
      5. ほか
      6. 関連
  8. :t/ページより
    1. ページとは
      1. :i/派閥はページ←Amazonでの商品にあたるもの
      2. :i/ページは…
      3. :i/ページとは
      4. :/ページと要素は似ている
      5. :i/ページの属性は下位が豪華、内容は上位が豪華
      6. :i/ページはファイルと類似
      7. :i/ページは機能のDB
      8. :i/ページは要素のインターフェイス
    2. ページの内部
      1. :Done/スレッドモードは不要
      2. :Done/ページの中のページは不可か
      3. :i/ページ内容がオブジェクト構成を表す
    3. ページの性質
      1. :i/BracketNameは不要
      2. :i/ページに型を
      3. HTMLを直接書けるページ
      4. :i/俺のモノは俺のモノ
      5. :i/見出しをページのタイトルに
    4. 全ページ見出しから始める
    5. ページを操作するためのUI
    6. newプラグインを標準に
    7. 添付ファイルは1ページ扱い
      1. →:タイトルとURLをコピペ
      2. :i/存在しないページは無い
    8. 存在しないページは無い
    9. ページの内容はコードと見なせる
    10. 本文のレンダリングは最後
    11. ページを更新できるのは自身だけ
      1. :Done/ページ削除のUI
    12. UIになるページ
    13. Wiki構築のためのページ
      1. :i/Wiki構築をページで
      2. :i/ページ主体の設計
    14. Webページのテンプレートは特定のページに書く
      1. :i/Webページのテンプレートは特定のページに書く
      2. :i/増殖するページ
    15. コンテンツとスタイルの分離
    16. リストとハッシュ
      1. :i/テンプレートは制限するものではない
    17. ページ内容がオブジェクト構成を表す
    18. 1つのページ内部名にインスタンスは1つ
    19. アクセスログはページの属性
    20. ページはプラグインのDB
    21. 資料
      1. :i/利用者のページ化
      2. 隠しページ
      3. 機能/分析
      4. :i/ログはページに記録
      5. :i/ページの重さ
      6. :i/最近更新されたページ
    22. 実装案
    23. 空のページ
      1. :Done/ページ型/スレッド/データコンテキスト/記法定義まとめ
      2. ルートページ
      3. :i/ページと他オブジェクトとの関わり合い
  9. 設計
    1. 属性と内容
      1. :i/ページを保存するときはオブジェクトだけ
      2. :i/アクセスログはページの属性
    2. 他オブジェクトとの関わり合い
      1. :i/クラスごとにページを
  10. コード
    1. :/セクションをやめてページのネストで
    2. :i/テンプレートはページ名
    1. Perl
      1. :i/属性と内容
      2. :i/検索結果でページを作れば「検索結果の検索結果」が可能に
      3. :i/権限を判定するケース
      4. :i/添付ファイルもページ
      5. :i/ページにtoJsonを
      6. :i/ページの1行目は特別
      7. :i/ページは要素でもある
      8. :i/ページ内容と属性領域の違い
    2. コード
    3. まだまとめてない
      1. :i/仮想ページという考え方
      2. :/ページ属性の型は文字列だけ
      3. :i/ページ属性の接頭辞をやめる
      4. :i/ページ属性はセレクターで読む
      5. :i/ページ属性はデータアクセスで参照
      6. :i/属性領域も複数に
      7. :/権限領域のページ名
      8. :i/継承にも錠と鍵を[?]
      9. :i/見出しかダガーがその見出しへのリンク
      10. :Done/Twitter連携するときページ名をどうするか
    4. いらない
      1. :/ユーティリティページ
      2. :/ページはメモ化しない
      3. :/DBクラスにページ検索の機能を
      4. :/X/PageFactory
      5. :/プラグインが使えるフック
      6. :/ページをセクションと比べると…
      7. :/ページを更新できるのは自身だけ
      8. :/リストとハッシュ
      9. :/保存は入力されたままのWikiTextか
      10. :/ページの出力はHTML
      11. :/ページを細切れにするのは隠蔽すべき?
      12. :/対象範囲
      13. :/機能/複数ページ組み合わせ
      14. :/自動生成されるページ
      15. :/埋め込めないプレースホルダーは非表示
  11. ページ/

ページでやること

X/Page

関連 Edit

  1. 目次
  2. 関連
  3. ページ
  4. ページ周辺のタグ
    1. ページとは
  5. ページとは
  6. 思い付き
    1. メタファー
    2. 権限を独占できる
    1. スレッドモード
    2. Wiki構築をページで
    3. ページの構造
    4. アクセス権は引き継がれる
      1. ページの組み合わせ方
    5. Wikiは1ページが1つの板
    6. HTML許可ページ
    7. ヘッダーの使い道
      1. :i/ページ本文も属性のひとつ
  7. 実装
    1. ページを操作するためのUI
    2. ビュー
    3. 構成
    4. ページとは
      1. ページの削除方法
    5. UIになるページ
    6. UIになるページ/テンプレート
      1. 入力用のテンプレート
      2. ページの元にするためのテンプレート
      3. 複数ページをまとめる枠
      4. テンプレートや見解をクライアントに合わせて差し替えれば多言語対応に。
    7. Wiki構築のためのページ
      1. いろいろなカスタマイズ
      2. カスタマイズの動機になる情報を載せるページ
    8. ページを実装するには
      1. ページとページ/要素
      2. ページの用途
      3. ページの上下関係
      4. :i/なんでもページに記録
      5. ほか
      6. 関連
  8. :t/ページより
    1. ページとは
      1. :i/派閥はページ←Amazonでの商品にあたるもの
      2. :i/ページは…
      3. :i/ページとは
      4. :/ページと要素は似ている
      5. :i/ページの属性は下位が豪華、内容は上位が豪華
      6. :i/ページはファイルと類似
      7. :i/ページは機能のDB
      8. :i/ページは要素のインターフェイス
    2. ページの内部
      1. :Done/スレッドモードは不要
      2. :Done/ページの中のページは不可か
      3. :i/ページ内容がオブジェクト構成を表す
    3. ページの性質
      1. :i/BracketNameは不要
      2. :i/ページに型を
      3. HTMLを直接書けるページ
      4. :i/俺のモノは俺のモノ
      5. :i/見出しをページのタイトルに
    4. 全ページ見出しから始める
    5. ページを操作するためのUI
    6. newプラグインを標準に
    7. 添付ファイルは1ページ扱い
      1. →:タイトルとURLをコピペ
      2. :i/存在しないページは無い
    8. 存在しないページは無い
    9. ページの内容はコードと見なせる
    10. 本文のレンダリングは最後
    11. ページを更新できるのは自身だけ
      1. :Done/ページ削除のUI
    12. UIになるページ
    13. Wiki構築のためのページ
      1. :i/Wiki構築をページで
      2. :i/ページ主体の設計
    14. Webページのテンプレートは特定のページに書く
      1. :i/Webページのテンプレートは特定のページに書く
      2. :i/増殖するページ
    15. コンテンツとスタイルの分離
    16. リストとハッシュ
      1. :i/テンプレートは制限するものではない
    17. ページ内容がオブジェクト構成を表す
    18. 1つのページ内部名にインスタンスは1つ
    19. アクセスログはページの属性
    20. ページはプラグインのDB
    21. 資料
      1. :i/利用者のページ化
      2. 隠しページ
      3. 機能/分析
      4. :i/ログはページに記録
      5. :i/ページの重さ
      6. :i/最近更新されたページ
    22. 実装案
    23. 空のページ
      1. :Done/ページ型/スレッド/データコンテキスト/記法定義まとめ
      2. ルートページ
      3. :i/ページと他オブジェクトとの関わり合い
  9. 設計
    1. 属性と内容
      1. :i/ページを保存するときはオブジェクトだけ
      2. :i/アクセスログはページの属性
    2. 他オブジェクトとの関わり合い
      1. :i/クラスごとにページを
  10. コード
    1. :/セクションをやめてページのネストで
    2. :i/テンプレートはページ名
    1. Perl
      1. :i/属性と内容
      2. :i/検索結果でページを作れば「検索結果の検索結果」が可能に
      3. :i/権限を判定するケース
      4. :i/添付ファイルもページ
      5. :i/ページにtoJsonを
      6. :i/ページの1行目は特別
      7. :i/ページは要素でもある
      8. :i/ページ内容と属性領域の違い
    2. コード
    3. まだまとめてない
      1. :i/仮想ページという考え方
      2. :/ページ属性の型は文字列だけ
      3. :i/ページ属性の接頭辞をやめる
      4. :i/ページ属性はセレクターで読む
      5. :i/ページ属性はデータアクセスで参照
      6. :i/属性領域も複数に
      7. :/権限領域のページ名
      8. :i/継承にも錠と鍵を[?]
      9. :i/見出しかダガーがその見出しへのリンク
      10. :Done/Twitter連携するときページ名をどうするか
    4. いらない
      1. :/ユーティリティページ
      2. :/ページはメモ化しない
      3. :/DBクラスにページ検索の機能を
      4. :/X/PageFactory
      5. :/プラグインが使えるフック
      6. :/ページをセクションと比べると…
      7. :/ページを更新できるのは自身だけ
      8. :/リストとハッシュ
      9. :/保存は入力されたままのWikiTextか
      10. :/ページの出力はHTML
      11. :/ページを細切れにするのは隠蔽すべき?
      12. :/対象範囲
      13. :/機能/複数ページ組み合わせ
      14. :/自動生成されるページ
      15. :/埋め込めないプレースホルダーは非表示
  11. ページ/

検索:ページ

ページ Edit

ページ周辺のタグ Edit

Array

ページとは Edit

ページとは Edit


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

ページ/名前 × アクセス制御 → 情報。書き込むときは逆方向。

→Page[?]

アクセス制御を表すのは権限。情報を表すのはページ/要素

つまり、ページ/名前 × ページ/要素 × 権限を対応付けるのがWiki。

ページは再帰構造のデータベース。MVCのModelの中核。MVCのViewでもある。

ページがMまたはVに属するのではなく、ページの中にMとVが存在する。

wikiは1つのページ

思い付き Edit

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

メタファー Edit


ページはいろいろなアプリケーションやサービスにも見られるもの。情報を記録するものと見たり、商品として見たり。
  • Wikiのページにはファイルと同様にアクセス許可リスト、日付、読み専用などの属性、パスなどがある。
    ページはファイルやデータベースに例えることができる。利用者が書いたことを記録してアクセス制御をするもの。そのページを集めたのがWiki。どのページに何を書いてどれとどれをリンクするかがWikiの構造。現在では情報は検索で探すものになっているので構造は重要でないとされているが、構造も情報のひとつなので、利用しない手はない。

Edit


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

:i/HTML許可ページ

:i/HTML書き込み

権限を独占できる Edit


ページ作成者には以降の編集を自分だけで行なう権利がある。

全ての利用者には権限があって、その権限編集可能なページがある。

:i/俺のモノは俺のモノ

スレッドモード Edit


コメント、トラックバック、Wikipediaでのノートのようなものは裏に隠す。(ページ/裏に限らず、普段見えないところ)

UIWikipedia形式(タブ)でいい。

Wiki構築をページ Edit


Wiki構築をページで。

他のWikiEngineでのプラグイン

#te598c37

ページの構造 Edit


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

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


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

アクセス権の合成ルールが必要。

ページの組み合わせ方 Edit


ページの組み合わせがWiki。でもページ──Wikiまでの間にも組み合わせはある。

よそのWikiEngineと同じく各ページには固有のページ名がある。でも同じページに複数のがあったりして…それらを列挙すると全部で4つの名前が必要になる。
外部名4区分

利用者に見えるほうのページ名。(もう一方は内部名

4区分とはスペースページ/名前見解(統一感がない。統一感を出す別名名前空間?ウィキ名?/項目名/見解名/名)

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

すべてのページで上位のアクセス権を引き継ぐようにすれば、アクセス制御が簡単。利用者を増やしても既存グループに追加、ページを増やしても既存ページの下位に追加すれば新しい設定は不要。

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


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

HTML許可ページ Edit


ブログパーツなど、サイトに貢献する人だけが作れるページ

HTMLタグなどが閲覧ページまで残る。

のリストがページ/履歴

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

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

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

ヘッダーの使い道 Edit


#afb81108

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


**自由欄

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

ヘッダー。つまり通常のページ埋め込みリンクで埋め込むだけ。

動的かどうかはプラグインによるのでここでは考慮しない。

内容は…

…などを章として追加。

実装 Edit

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


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

ビュー Edit


同じページの別の見え方。同じデータの見せ方。

要素の表現方法と取捨選択。

テンプレートになるページが違うだけ。にしたいがプラグイン個別に対応する必要あり。実装ではリクエストされた通りのビューが使えるならそれ、使えなければ汎用のビューを使用。
  • 閲覧
    • 画面用(デフォルト、要定義)
    • スマートフォン画面用
    • ケータイ画面用
    • 印刷用
    • 読み上げ用
    • API
      データをそのまま。
  • 編集

構成 Edit

310x310

ページヘッダー内容ページフッターは連結して1つのページとして閲覧時展開

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

ページヘッダーページ見出しページ名とEditボタン)やタグリンク一覧(そのページ名を表すメタシンボル付き)を置く。

ページとは Edit


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

ページ削除方法 Edit


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

#m7402a92

UIになるページ Edit


UI化するページ/要素

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

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


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

入力用のテンプレート Edit


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

:i/UI要素

:i/テンプレートは制限するものではない

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


:i/増殖するページ

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

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


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

: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で使われている記法系ページ/要素次第。ページ自体は介入しない。

ページページ/要素 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/ページと他オブジェクトとの関わり合い

:/セクションをやめてページのネストで

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

…は全てのページの上位に位置するページ

…は全てのページに共通する名前 / を持つ(だけの)ページということ。

…の階層レベルは0。単語1つでレベル1。

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

ほか Edit

関連 Edit


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

:t/ページより Edit


まとめる前の原案と、ページの参考になる点について言及したもの。

ページとは Edit

:i/派閥はページ←Amazonでの商品にあたるもの Edit


派閥は無くなったけど、ページがAmazonの商品にあたるのは変わらない。

ほしい物リストに登録すれば備忘録になったり価格の変動を通知してくれる点も、ページにレビューが付く点も。

ほしい物リストから生成されたおすすめ商品や、それらを集めたマイストアも参考になりそう。登録したページサブセットWikiを作っておいて、それを何かに利用したり?

:i/ページは… Edit

データ保存場所

利用者から送られてきたクエリーのうち、自身に関する部分だけは解釈できる

ページを)入れ子にはしない。


入れ子(ネスト)にしないのは埋め込みができるから。クラス定義ではネスト不可。でも閲覧時の埋め込み解決後にネストしているかのように見えるのはあり。

:i/ページとは Edit


ページ内部は要素のリストでも、ページ要素ごとにデータ構造が違う。

ページはRDBのテーブルページ/要素1つが1つのを持つフィールド。

フレームワーク/WikiEngineでやること#vad5bbbb

WikiEngineはページを操作するもの。

:/ページと要素は似ている Edit


要素と同じ使い方ができても目的が違う。

要素は内向きで要素連携のための、ページは外向きのインターフェイス。

:i/ページの属性は下位が豪華、内容は上位が豪華 Edit


継承とフォルダー式のまとめ。下位が上位を参照すると、下位が豪華になる。どう依存するかの違いでもある。

:i/ページはファイルと類似 Edit


ページ/属性ページ/裏に管理用データを持たせて。

:i/ページは機能のDB Edit


ページ/要素データアクセス。それをシリアライズして記法化。

:i/ページは要素のインターフェイス Edit


このインターフェイスを使わなければ直接依存することになる。それもあり。プラグイン開発の戦略。

利用者からのクエリーはそれを解釈できる要素だけが解釈する。解釈できる要素がいくつ存在していてもいい。ページを介しては伝わらない。

ページ要素にとっての場所。要素の配置を変えるときはページに指示することになる。

ページの内部 Edit

:Done/スレッドモードは不要 Edit

ドキュメントはスレッド投稿の1件に相当。それぞれ内部にページ/型を持つ。


ページの内部構造はページ/要素だけ。

:Done/ページの中のページは不可か Edit

ページ同士に関連は無し。


下位展開ならレイアウト上の問題。ページはネストしない。
  • ページ名でまとまっていると見なすことはできる。下位展開時はこのまとまりを一挙に表示。
  • 明示的リンクで関連性を示すことはできる。自動検出ではない関連性。

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


ページ要素の構成。要素要素の構成。それらを決めるのがページ/内容利用者ページを通して要素をあつかう。

ページの性質 Edit

:i/BracketNameは不要 Edit


明示的リンク

不要だけど利用者の意図をシステムに伝える手段として使う。

ページ同士に明確なつながりが有ることを示す。

:i/ページに型を Edit


Xの拡張容易点。要素だけで対応できない拡張はページ/型で。

HTMLを直接書けるページ Edit


:i/HTML許可ページ

:i/HTML書き込み

ページ/型の1つ。HTMLや各種記法のレンダリング後(HTML)を貼るためのもの。

この管理者だけの物にするには?権限設定では属性値(ページ/型の値)を制限できない。

→「特定のページ/型を使わせない」のは不可能。

属性値に「ページ/型をHTMLにできる」といった値を設定可能にする。使う側できちんと判定すればいい。

:Done/ページ型/スレッド/データコンテキスト/記法定義まとめ#o051e5a4

を分ければ権限(錠)も分けられる?

では分けられないが、そのを集めて1つの上位ページでまとめればいい。属性継承機能で一度に権限設定できる。HTMLを書くためのページに特定のディレクトリ名を付けてまとめておく。そのまとまりに管理者だけの編集権限/錠を与えて。

ページを「ページ/型:HTML」にできては権限設定が無意味。ページ/型の変更…ページ/属性設定のすべてを管理者権限にしなければならない。一般利用者ページ/属性を変更できないので、ページ/型も変更できない。可能。

ページ/属性は複数に分けて、一部は誰でも変更可能にする必要があるかも知れない。

:i/俺のモノは俺のモノ Edit


ページに書かれた情報の権利/権限

権限設定、権利表明のコマンド。それと紹介文にも。

:i/見出しをページのタイトルに Edit


1行目よりもふさわしい箇所があればそっちで。

→ :i/全ページ見出しから始める[?]

タイトルを見出し化するよりも、見出しをタイトル化。書くときは見出しだけを書くように。

:i/UI上でページ名は「管理用」とする

最初の見出しページタイトルにするといい。

Webブラウザーに表示されるのは最初の見出し

1行目をWebブラウザーのタブやGoogle検索結果に表示したいなら、1行目を見出しにしてでも見出しページタイトルになるようにする。


ページの構成…

ページ見出しから始める Edit


閲覧時、ページ名見出しと同様に表示。

見出しにはEditボタンを。

見出し本文のうち最初の1行をページタイトルに。

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


ページ内容の有効な一行目がページ名。なのでページ名見出しにすればいい。

(一行目かTITLE:やNAME:で始まる行。複数あるなら全てを連結したもの)

newプラグインを標準に Edit


ページへのリンク(Wiki内リンク)にはプラグイン/New![?]が付く。

実装するならオプション。サイト設定で。

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


添付ファイル1つに1ページ生成。フォーマットの統一。

こうしたほうが扱いやすいし、ページの機能を添付ファイルでも利用できる。

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

→:タイトルとURLをコピペ Edit


はてなフォトライフのフォトライフ記法欄のような。

ページ名のコピペ以外に内部リンクを作る方法があるなら不要。オートコンプリートとか。ドラッグ・ドロップで使えるクリップボードとか。

このコピペ機能の代わりにページ名逆リンク一覧にリンクするのもあり。クラシックWikiではそうなっているけどMediaWikiではそうなっていないので、どちらでもいい。

:i/存在しないページは無い Edit


UI上では内容が無くても関連情報はある。ページ名も情報のうち。

実装上はページの有無を気にしない。ページはSingletonのようなもの。

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


存在しないページ=内容が空で存在するページ

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

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


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

DanglingLinkは「存在しないページヘのリンク」という意味ではなくなる。
  • ページ内容は基本的に全てコメント
  • ただし、#(プラグインの接頭辞)で始まる行はコード
  • コードの出力はコメント
    コードとして再処理することは無い。

    他のコードの引数(データ)になることはある。
  • コードの出力はコードと置き換わる。

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


本文ヘッダーなど以外の部分)の展開(レンダリング、HTML変換)は最後。

1つの画面に重複部分があるとき、ヘッダーなどを優先する。

二重展開を防ぐようにした場合、先にヘッダーなどを展開しないとヘッダー編集時のプレビューができなくなるから。

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


編集など、ページ属性を変更する操作は自身が全て行なう。

(自身とはインスタンス)

:Done/ページ削除のUI Edit


ページ/削除

UIになるページ Edit


他から変更したいときは、指示を対象ページにキューイング。

そのページは最新状態をリクエストされるまでに自身を変更すればいい。

それ用の要素を使って入力フォームを持つページを作ることができる。

→:UI要素

Wiki構築のためのページ Edit


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

:i/Wiki構築をページで Edit


設定項目をページに書ければいい。

汎用化してデータアクセスになった。

編集は遅延処理。

ページに手を加えるにはページごとに{属性→値}という形式で指示をキューイング。

適当なときに処理。

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

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

:i/ページ主体の設計 Edit


Wiki構築をページで行なうという発想。

ページの仕様が大きくなる。

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


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

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

    利用者権限別とか。

条件、それに合ったときの戻り値は特定のページに。

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

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


条件別のページテンプレート。言語別とか。

:i/増殖するページ Edit


ページの元になるページログなど自動生成されるデータのテンプレート

ヘッダーなど)通常のテンプレートと異なるのは、テンプレートを穴埋めした後に保存する点。

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


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

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

…で。

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

検索に含まれている。

リストとハッシュ Edit


リスト状に並んだページ

ハッシュに格納…Wiki。

:i/テンプレートは制限するものではない Edit


入力用テンプレートUI要素として実装。編集ビューではなく閲覧ビューでのその場編集に有効。

:i/UI要素

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


ページは独立したオブジェクト。

それを構成するElement系クラスを決めるのはページ内容

プラグインからはこのオブジェクト構成を参照できるように。

WebページのDOMアクセスと同様に。

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


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

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


アクセスログページ化する。

プラグインから扱えるように。

アクセスログから逆リンクを表示すればその場しのぎの低負荷のBackLinkになる。

ページプラグインのDB Edit


プラグインが生成するデータはページに記録。

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

資料 Edit


ごく簡単なHTMLの説明 - The Web KANZAKI

http://www.kanzaki.com/docs/htminfo.html

:i/利用者のページ化 Edit


ページはデータベース。利用者ページページの移動が利用者の異動。

移動で上位ページが変われば(属性/継承によって)その利用者ロール権限も変わる。

隠しページ Edit


(コンテンツ用ではなく)システム用のページ隠しページにする。

機能/分析 Edit


MediaWikiでの特別ページ(ユーティリティページ

:i/ログはページに記録 Edit


分析結果はページ自身に記録する。

:i/ページの重さ Edit


Wikiの可視化概要把握の機能とその表示。

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

:i/最近更新されたページ Edit


システムが作るページ。実体がページ/要素で、その出力が動的なページリスト。なので「システムが書き込むのはページ/裏だけ」のルールと衝突しない。

実装案 Edit

空のページ Edit


空でページ名だけのページは、閲覧時に編集画面。DanglingLinkのかわり。

:Done/ページ型/スレッド/データコンテキスト/記法定義まとめ Edit

ルートページ Edit


ページページでまとめる。どうまとまるかはページ/名前次第なので、ルートページはそういう名前を持つ(だけの)ページということになる。

:i/ページと他オブジェクトとの関わり合い Edit


ページ同士の関わりはなし。ページ名でまとめる。順不同パスに共通点があれば下位展開でまとめて表示可能。

下位展開ビューでの順序情報に他のページ名が含まれるくらい。その情報は消えても間違っていてもいい。表示順序が変わるだけ。

設計 Edit

属性内容 Edit


ページ/属性と、ページ/内容

属性」という言葉が紛らわしい。:t/?[?]

:i/ページを保存するときはオブジェクトだけ Edit


NotationText(WikiText)は要素が分担して保存する。

記法テキスト以外でも書き換えられるようにするため。この方法でもテキストで書き換えられる。
属性

テキストのリスト。下位ページ継承する。(1項目ごとに)

:i/アクセスログはページの属性 Edit


ログの出力先を特定の(設定された)ページに。

でもシステムが書き込むのはページ/裏のはず。ページ/裏の1つに追記していく。アクセスログ専用のページ/裏。
内容

テキスト1つ。継承されない。

裏だけを使うページがあってもいいかも?

どちらもWikiNotationあり。内容の方はそれに加えてプレーンテキストも。

属性の方にプレーンテキストを書いてもいいが特に意味がない。

APIプラグイン呼び出しからは区別なし。指定すると呼び出しが煩雑になるので。

継承処理後の属性内容を1つにしたものが参照可能になる。

属性部分を何かで括ったりもしない。

他オブジェクトとの関わり合い Edit


ページ…Elementのコンテナー。ページページを含むことはできない。

ページ同士に関連は無し。リンクオブジェクトでつながりが分かるだけ。

Element…ページ要素ページはElementに含まない。深い構造にしないため。

PageとNotationは、ContainerとElementの関係。

クラス名…Page、Notation。”Container”、”Element”という言葉は属性名やインターフェイス名で使用。

:i/クラスごとにページを Edit


アクセスログもクラス名を冠したページ(のページ/裏)に?

機能
  • のオブジェクトとの類似度算出
    コードで。Elementのクラス別。
  • 出力用(ページの一部になるもの)に変換
    逆変換は不可能。
  • 生成
    コンストラクター

コード Edit

:/セクションをやめてページのネストで Edit


ページ名でつながるネスト構造。オブジェクト間はつながっていない。

上位ページを閲覧すると下位ページも見える。上位と下位について→ 順不同パス

:i/テンプレートはページ名 Edit


独立したページにすると機能充実。その反面、テンプレートにも権限(錠)を設定できてしまう。運用の問題にしておく。

Perl Edit


code*:364

:i/属性と内容 Edit


扱いは同じ。操作に必要な権限が違う。

ページ/内容ページ/属性ページ/裏。

:i/検索結果でページを作れば「検索結果の検索結果」が可能に Edit


まず見るべきところを「まず見て欲しいページ」というページ名見せることができる。更新される動的まとめ。

:i/権限を判定するケース Edit


ページが関わるところ全てとユースケース。つまりいたるところ。権限の参照を速くすれば高速化できそう。

:i/添付ファイルもページ Edit


ページ添付ファイルのアダプター。

:i/ページにtoJsonを Edit


実装。

:i/ページの1行目は特別 Edit


実装。

:i/ページは要素でもある Edit


実装。

:i/ページ内容と属性領域の違い Edit


実装。

コード Edit


code*:364 Perl

まだまとめてない Edit

:i/仮想ページという考え方 Edit

:/ページ属性の型は文字列だけ Edit

:i/ページ属性の接頭辞をやめる Edit

:i/ページ属性はセレクターで読む Edit

:i/ページ属性はデータアクセスで参照 Edit

:i/属性領域も複数に Edit

:/権限領域のページ名 Edit

:i/継承にも錠と鍵を[?] Edit

:i/見出しかダガーがその見出しへのリンク Edit

:Done/Twitter連携するときページ名をどうするか Edit

いらない Edit

:/ユーティリティページ Edit

:/ページはメモ化しない Edit


ページ/要素は制御されないので、外からはメモ化可能か分からない。

:/DBクラスにページ検索の機能を Edit

:/X/PageFactory Edit

:/プラグインが使えるフック Edit

:/ページをセクションと比べると… Edit

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

:/リストとハッシュ Edit

:/保存は入力されたままのWikiTextか Edit

:/ページの出力はHTML Edit

:/ページを細切れにするのは隠蔽すべき? Edit

:/対象範囲 Edit

:/機能/複数ページ組み合わせ Edit

:/自動生成されるページ Edit

:/埋め込めないプレースホルダーは非表示 Edit

ページ/ Edit