詳細な設計→Page

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

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

目次 Edit


ページでやること

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

ページ Edit

ページとは 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/ヘッダーの使い道

:/ユースケースチェイン

ヘッダー

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


テンプレートにも見解がある??

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

#a6ce55e1

Wiki構築のためのページ Edit


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

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



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

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


† :i/機能/分析[?]

MediaWikiでの特別ページのように管理に役立つ情報を載せるページ(ユーティリティページ

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

:i/ページの重さも特別ページの1つ。

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

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

#pfc0f372

ページを実装するには Edit


ページ自体の機能は永続化くらい。豊富な機能はページ/要素に委譲したり、ページを扱う側で実装。

ページでやることX/Pageページクラスの仕様。

#v0cd5027

関連 Edit


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

検索:ページ

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

ページ周辺のタグ Edit

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

ページとは Edit

ページページ/要素 Edit


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

→Page[?]

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

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

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

wikiは1つのページ

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

ページとは Edit

ページの用途 Edit


Wikiの構成要素としての使われ方

:i/属性と内容の実態は同じ。:i/ページ内容と属性領域の違いは操作に必要な権限。いずれも実体はページ

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

ページは…

ページの上下関係 Edit


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

思い付き Edit


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

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


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

下位のあるページ下位展開でまとめて表示可能。上下関係はページ名に含まれる単語数で分かる。→ 順不同パス#i8d1b64a "1つ上/1つ下"

下位展開時の表示順序ページ/属性で(だいたい)決まる。

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

:/セクションをやめてページのネストで
  • ページ内容は基本的に全てコメント
  • ただし、#(プラグインの接頭辞)で始まる行はコード
  • コードの出力はコメント
    コードとして再処理することは無い。

    他のコードの引数(データ)になることはある。
  • コードの出力はコードと置き換わる。
    上下関係で最上位にあるのはルートページ
ルートページ

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

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

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

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

ほか Edit

関連 Edit


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

:t/ページより Edit

ファイルと類似 Edit


Wikiのページにはファイルと同様にアクセス許可リスト、日付、読み専用などの属性、パスなどがある。

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

ページとは Edit

スレッドモード Edit


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

UIWikipedia式のタブでいい。

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


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

フローとストックのフロー側。

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

Wiki構築をページ Edit


Wiki構築をページで。

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

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

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


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

:i/ページは… Edit

データ保存場所


→:ToDo/自動生成ページに何か入力するか[?]

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

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


…などを。

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

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

→:ToDo/ブログや掲示板として利用できるか[?]

HTML許可ページ Edit


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

HTMLタグなどが閲覧ページまでエスケープされずに残る。

:i/ページとは Edit


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

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

作った後は(ページの機能を利用して)他のページに埋め込んだりできる。言い換えればホワイトリスト。

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

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

ヘッダーの使い道 Edit


ページ内容以外から呼ばれた機能のディスプレイとして使用。

形式いくつか用意。上部にテキスト表示するバナー、下部に表示するバルーン、右上にアイコン通知バッジ出すなど。コードで指定。そのためフレームワーク側にライブラリとして用意を。

組み込み済みの基本的な記法を使えるように。

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

内容は…

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


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

…などをAPI経由で追加。

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

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


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

実装 Edit

セクションと比べると… Edit


ページセクションの集約。

Wikitextを持たない。代わりに(Wikitextを持った)セクションを持つ。

作り方はページ作成フォームとか、DanglingLinkとかから。

リンク先になれる。URIを持つ。

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


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

下位展開のルールによって一度に展開される埋め込みの深度に制限がかかる。

構成 Edit

310x310

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

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

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


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

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


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

見出しになったページ名にもEditボタンを付ける。

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

WikiNotation/タイトル記法もあるけど、これは後に続く要素にタイトルを付けるものなのでページタイトルには向かない。でも最初のWikiNotation/タイトルをタイトルにしてもいいかも?

newプラグインを標準に Edit


ページ名の隣(一覧や検索結果や自動リンク)にはプラグイン/New![?]が付く。

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

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


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

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

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

添付ファイルもページ Edit


→プラグイン/ファイルアップロード[?]

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


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

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

ページの内部 Edit

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


描画順序内容が変わりにくい順で、上から。ヘッダー、サイドバー、フッター、本文

これは重複描画の判定を考えて。

1つの画面に重複部分があるとき、ヘッダーなどを優先、重複判定は本文側でする。

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

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


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

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

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

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


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

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

キュー出し/入れはフレームワーク/WikiEngineで。それを呼び出すのはページクラス。ページだけのものではないので。

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

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

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


ページの参照は自由にできていい。普通にロックを掛けて読むだけ。

下位展開ならレイアウト上の問題。ページはネストしない。

編集は遅延処理。

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

適当なときに処理。
  • ページ名でまとまっていると見なすことはできる。下位展開時はこのまとまりを一挙に表示。
  • 明示的リンクで関連性を示すことはできる。自動検出ではない関連性。

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

これはページの特殊な参照方法。

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

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


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

WikiText編集方法でページデザインやヘッダーの機能を変更。

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


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

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

    利用者権限別とか。

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

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

ページの性質 Edit

リストとハッシュ Edit


エントリー、見解はハッシュ構造。順序なし。キー指定で参照。

はリスト構造。末尾が最新版

:i/BracketNameは不要 Edit


明示的リンク

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

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

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


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

それを構成するPageElementを決めるのはページ内容

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

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

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


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

:i/ページに型を Edit


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

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


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

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

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

ページプラグインのDB Edit


プラグインが生成するデータはPageElementを通じてページに記録。見ることは出来るので、読みやすいデータ書式がいい。

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

例えばテーブル(表)にレコード形式のデータ、定義リスト(DD)にキー・バリュー形式のデータ、のように。

プラグイン設定ページ

これは利用者が書いてプラグインが読む。

HTMLを直接書けるページ Edit


:i/HTML許可ページ

:i/HTML書き込み

資料 Edit


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

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

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

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

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

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

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

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

空のページ Edit


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

内容が無いからといって削除されたりはしない。

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

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

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

設計 Edit


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

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


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

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

属性内容 Edit


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

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

WikiTextのリスト。下位ページ継承する。(1項目ごとに)。ページ/裏と違い、利用者が書いてシステムが読むもの。

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

内容

WikiText1つ。継承されない。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

ページ/セクション(実装がページと類似)はセクション同士でネスト可能。

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

コード Edit


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

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

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

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


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

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

Perl Edit


code*:364

DanglingLinkは「存在しないページヘのリンク」という意味ではなくなる。

:Done/ページ削除のUI Edit


ページ/削除

UIになるページ Edit


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

→:UI要素

Wiki構築のためのページ Edit

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


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

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

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


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

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

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


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

:i/増殖するページ Edit


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

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

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


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

:i/UI要素

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


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

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

隠しページ Edit


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

機能/分析 Edit


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

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


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

:i/ページの重さ Edit


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

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


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

実装案 Edit

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

ルートページ Edit


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

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


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

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

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


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

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

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


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

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

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

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


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

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


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

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

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


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

: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