• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/属性]] [[:t/継承]] [[:t/セレクター]]

ページ管理に使う情報。
そのうち利用者が手作業で設定するもの。
ページ/属性は利用者からシステムへの指示。それに各要素が反応する。

システムが設定する属性は[[ページ/裏]]。

ページ/裏とは異なり上位ページの属性を継承する。
継承があるので、システムによる変更はできない。順不同パスにより継承元を特定できないことから変更されてもデータの保存先が分からないので。これが解決できればシステムによる設定と継承を両立できる。

----

#contents

*ページ/属性 [#ka89f481]

## ページ/属性
- 別名「[[ページ/余白]]」
- 管理者が設定類を書くところ。設定の書き方は属性を扱う側次第だけど基本は通常のページと同じ。
- ページ/属性は通常のページと同じ。同じページについていくつでも作ることができて属性領域名で区別する。
- ページを操作するときの権限/錠は対応するページ/権限に書く。
- ページ/属性では上下関係のあるページ間で[[属性/継承]]処理が行なわれるけど、それは参照した側でやることなのでページの設計には盛り込まない。	
- ここも独立したページ。どのページの属性領域かは使う側が''きちんと''対応付けるのでページの設計には盛り込まない。
- ページ名は対象ページの名前+「/属性」+属性領域名。

----

#contents

*[[:t/属性]]の断片 [#ya527226]

***呼び方 [#bee15ca1]
ページ/裏に対応するように「ページ/余白」という呼び方は?

ページ/裏のほうを変える手も。
***属性にするもの/しないもの [#re68790d]
属性にしないもの
-ページ名
外部名4区分のentry. ページ/本文の1行目に書くので属性ではない。
-システムが設定するもの
ページ/裏を使うのでこちらではない。

属性にするもの
-作成者
ちょっとした修正でも版を新しく作ることになるのでここにユーザーIDが残る。
-更新日時
情報の更新日時。ページ/本文の版生成時のこと。

[[:Done/履歴はどこに残すのか]]
***[[:Done/ページ属性をページにするには]] [#w8faac78]
ページ/属性はページではない。でも永続化キーは本文と分けて、本文を読まずに属性だけを読み込むこともできるようにして、本文とはロックの競合が起きないようにする。


属性はページと同じフォーマットで、外部名を持たず、属性操作の権限で操作可能にする。(権限判定はユースケースクラスで)
ページ/本文とは似ているが異なるもの。
対応するページインスタンスだけから見える。
***継承不可能キーワード [#uc0b8218]
必要ならページ/属性に「継承不可」という言葉か記号を書いて、それが継承されないようにする。継承可能なものと併用するのも有り。
継承できない属性があるのなら、「継承不可」で始まる名前にすれば分かりやすい。継承不可と書かないと使えない属性。
***ページ/記法/特色付け [#pe39363d]
ページの属性にテキスト部分を加えても良いかも。
テキスト部分は…
-HTMLタグ
-プレーンテキスト
-記法

これらを1要素ごとに(プレーンテキストは固有名詞が1要素)集計して、上位数語を辞書順にソートして。
できれば色のように混ぜたい。が、そのためには単語に位置関係を持たせないと。

***ページ/属性を決めるのは誰か [#zd5c1592]
管理者と''作成者''。[[ページ/属性/作成者]]
隠したり、特定の利用者だけに見せたり、読み取り専用にしたり。

相手のポータルページの下位にその相手だけに見えるページを作成。これで私信を。メール代わり。
***[[:i/状況によって変わる役割]] [#i39b5522]
***[[:i/著作権に基づいた権限設定]] [#r8570442]
***%%ページ名接頭辞で指定できるページ/属性%% [#c6fcb733]
%%ページ名の接頭辞(prefix)で指定可能なもの。ページ名変更さえできれば誰でも変更可能な属性。%%
%%これはUI。対応するファイル名(内部名)を変えてしまうと参照できなくなるので、属性の保存はどこかのファイル内に。%%

|~%%接頭辞(prefix)%%|~%%意味%%|
|%%:%%|%%隠す。不可視。一覧に出ない。ページ名を指定された時には無意味になる。%%|
||%%システム。機能は未定。Wiki構築で使用。%%|
||%%埋め込み式ページ。自動リンク時には埋め込みになる。%%|
||%%省略可。リンク式ページ。自動リンク時にリンクになる。%%|

%%これらが変更されたとき、ページ名(に付ける接頭辞)も変更すること。これらは複数指定可能で、順不同。適当な順番にソートしておく。%%

%%接頭辞はページ名として扱わないので、接頭辞違いの同じページ名は全く同じページ名とみなす。%%

%%:tag と tag は同じページになるので、ページ「:tag」を作った後、「tag」を作ろうとすると既存ページの編集となる。%%
%%…というのも紛らわしい。%%
***ページ名接頭辞に適さない属性 [#i5182051]
-凍結(ロック)
一時的なものなので。他の属性と異なりページの存在意義と無関係なため適さない。
***%%ページ/属性はページ/要素のため%% [#o31b2722]
ページ/属性はページに付ける注釈。ページ/内容とは違い管理者権限で編集できるもの。

%%プログラムでは型を決めないとデータを扱えないから。利用者のためではない。利用者のためのデータはすべてテキストで。ということで、タグをページ/属性にしたりしてはいけない。%%

%%タグの継承と対立?[[AND検索:タグ 継承]]%%
%%これはページ/裏のことでは?%%

%%上位ページにタグを付けたとき、上位ページだけが見つかればいい。下位はそれに付随する。タグを継承するようになると使いにくい。そもそも継承は分かりにくい。%%
***%%ページ/編集はページ/属性を変える一例%% [#oec184cc]
ページ/内容とページ/属性は分ける。

%%ページ/属性のエディターがWikiサイト。%%
%%ページ/編集はページ/属性にある「内容」を更新、保存する機能。%%
%%→継承される領域やページ/裏だけでなく、ページ/属性の数だけWiki上のページのフィールドがあるということに。%%
%%RIGHT:[[:t/属性]]%%
***編集権限は投稿できる権限 [#c13a6ceb]
編集ビューを見るのは閲覧権限で可能。誰でもNotationTextを見ることはできる。
その後の投稿が編集権限。
***ページ側権限と利用者側権限 [#jcbbb17c]
ページ/権限(錠)と利用者/権限(鍵)が合えばリクエスト受け付け。同じ名前の権限。
%%型のデータを両方のクラスに。または対応表が必要。%%
同じ名前があるか判定。
***ページ/属性は編集権限対象外 [#p2ddb006]
例えば管理者だけが持っている権限で書き換えられるようにして。
権限の付与(allow)/剥奪(deny)を制御。利用者ページの上位ページのページ/属性編集(錠)を大きな権限を持つロールにしておく。

%%ページ名にもページ/属性が含まれるので、ページ名変更も特別な権限。%%


***属性の設定方法2つ [#taef6b65]
-%%ページ名接頭辞%%
%%継承なし。ページ名で属性が分かるようにするため。%%
%%フルパスの先頭に。単語先頭ではなく。%%
→分かりにくい。
-ページ/属性に書く
下位ページが継承する。複数ページを一度に設定できるようにするため。
でも継承不可能という意味のキーワードを付けるとその属性は継承されない。というのも必要ならありかも。今のところ不要。

***属性名が重複したら [#h2c69dc2]
1つのページに同じ属性名が複数あれば、リスト化。記述されている順にリスト要素にする。

というわけで、ページ/属性にデータアクセスしたときの戻り値は必ずリスト。実装はセレクター記法で。複数要素に分けて書かれることもあるので、要素側ではリスト化できない。

継承時の重複は[[ページ/属性/継承]]のルールによる。
1ページ内の重複は同階層内の重複でもあるけれど、整合している。
***[[:i/ページ属性はセレクターで読む]] [#i2aafe91]
記法を書くときも、ページ/要素内のコードで書くときも。

***%%書式%% [#t0f421df]
%%接頭辞はページ名の冒頭に書くだけ。%%

----

%%ページ/属性の書き方。%%
%% 属性名(主属性名):値%%
%% 属性名:値 副属性名1:副属性1の値 副属性名2:副属性2の値 …%%
%% 属性名:値, 副属性名1:副属性1の値, …%%
%% 属性名=値, 副属性名1=副属性1の値, …%%
%% 属性名%%
%%全半角不問。%%

→システムに合わせなくてはいけないので、不自由。テンプレートを使って空欄入力にしたほうがいい。

%%副属性は機能呼び出しのパラメーターなどに。副属性は順不同。機能が解釈する。%%
%%主属性はページが解釈する。ページが知っている属性名でなければならない。%%

----

 %%属性名:値%%
 %%属性名%%

%%これは副属性名を省略した形。副属性名が空文字列な場合。副属性は必要な分だけ書く。主属性の値も要らないなら書かなくていい。存在しない値が参照されたときは空文字列として扱う。存在しない名前が参照されたときは継承。%%
***[[:i/継承と書き戻しは両立できるかも]] [#ic8753aa]
両立できればページ/属性とページ/裏の違いは用途だけ。機能面では違いが無くなる。
でも書き戻しを利用するのはシステムが変更するページ/裏だけのはず。利用者が(UI/API経由で)作ったデータは書き換えられない。
あまり意味がない。

----

データアクセスで一部のページ/要素だけを書き換えた場合、書き戻しが必要。元から要素(オブジェクト)を NotationTextに変換する機能は仕様に入っている。
***[[:Done/属性は本文を見ながら編集したい]] [#j747f993]
2カラム?属性編集のビューは本文に重ねて表示?
権限が独自のものになるので、リクエストを分けなければならない。下位展開と一緒。別区画は別リクエスト。



***[[:i/属性と内容]] [#za6e07a8]
編集権限が違うので参照時も分ける。属性領域に書いたことを内容で付け足すことは不可能に。

複数あるページ/裏もその名前で分けたほうがいい。

混ぜても意味薄。

→ [[:i/ドキュメントモードのページ名]]



*** [[:i/ページ内容と属性領域の違い]] [#z5fd691a]

どちらにもページ/要素を記述。
内容と属性の違いはページ/要素が吸収する。
**属性/ [#r79ad893]
#ls