• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/属性]]

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

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

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

#contents

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

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

[[:ToDo/履歴はどこに残すのか]]

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


属性はページと同じフォーマットで、外部名を持たず、属性操作の権限で操作可能にする。(権限判定はユースケースクラスで)
ページ/本文とは似ているが異なるもの。
対応するページインスタンスだけから見える。

*あとでなおす [#kb367683]

RIGHT:&tag(属性,ページ,方法);

''「ページ/属性/」で始まるページを作成''
#lookup(ページ/属性/,* 新規作成 *);


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

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

[[検索:属性]]

*属性周辺のタグ [#n4ce5ad8]
#tag(0,属性)

*ページ/属性 [#a3d022dc]
RIGHT:[[:t/属性]]


ページ/裏とは異なり上位ページからの継承がある。
継承があるので、システムによる変更は受け付けない。順不同パスにより継承元を特定できないので変更されてもデータの保存先が分からない。

管理者→システムの情報伝達。
これはページにタグ付けする機能。それに各種機能が反応する。

**継承不可能キーワード [#uc0b8218]
必要ならページ/属性に「継承不可」という言葉か記号を書いて、それが継承されないようにする。
継承できない属性があるのなら、「継承不可」で始まる名前にすれば分かりやすい。継承不可と書かないと使えない属性。
**ページの属性にテキスト部分を加えても良いかも [#pe39363d]
テキスト部分は…
-HTMLタグ
-プレーンテキスト
-記法

これらを1要素ごとに(プレーンテキストは固有名詞が1要素)集計して、上位数語を辞書順にソートして。
できれば色のように混ぜたい。が、そのためには単語に位置関係を持たせないと。
**ページ/属性を決めるのは誰か [#zd5c1592]
作成者。
隠したり、特定の利用者だけに見せたり、読み取り専用にしたり。

-相手のポータルページに相手だけに見える章(サブページ)を。
メール代わり。これで私信を。
**ページ名接頭辞で指定できるページ/属性 [#c6fcb733]
ページ名の接頭辞(prefix)で指定可能なもの。ページ名変更さえできれば誰でも変更可能な属性。
これはUI。対応するファイル名(内部名)を変えてしまうと参照できなくなるので、属性の保存はどこかのファイル内に。

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

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

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

:tag と tag は同じページになるので、ページ「:tag」を作った後、「tag」を作ろうとすると既存ページの編集となる。
**ページ名接頭辞に適さない属性 [#i5182051]

-凍結(ロック)
一時的なものなので。他の属性と異なりページ名と無関係なため適さない。
**ページ/属性はAPIのため [#o31b2722]
プログラムでは型を決めないとデータを扱えないから。
利用者のためではない。利用者のためのデータはすべてテキストで。
ということで、タグをページ/属性にしたりしてはいけない。

-タグの継承と対立?
[[検索:タグ 継承]]
-これはページ/裏のことでは?
**%%ページ/編集はページ/属性を変える一例%% [#oec184cc]
%%ページ/属性のエディターがWikiサイト。%%
%%ページ/編集はページ/属性にある「内容」を更新、保存する機能。%%
%%→継承される領域やページ/裏だけでなく、ページ/属性の数だけWiki上のページのフィールドがあるということに。%%
%%RIGHT:[[:t/属性]]%%

→ページ/属性はプログラムが扱う。エディターはページ内容だけ扱えればいい。


*方法 [#aa50c086]

**編集権限は投稿できる権限 [#c13a6ceb]
つまり編集権限はページの更新ができる権限。
編集ビューを見るところまでは閲覧権限なので、Wikitextを見ることはできる。
**ページ側権限と利用者側権限 [#jcbbb17c]
ページ/権限と利用者/権限が合えば操作可能。同じ型のデータを両方のクラスに。または対応表が必要。
**ページ/属性の編集権限とページ/内容の編集権限 [#k706bb39]
ページ(内容)の編集権限とページ/属性の変更権限は別。
ページ/属性の変更のほうがより高い権限がいる。(デフォルト設定で)
**設定方法2つ [#taef6b65]
-ページ名接頭辞
継承なし。ページ名で属性が分かるようにするため。
フルパスの先頭に。単語先頭ではなく。
-ページ/属性に書く
下位ページが継承する。複数ページを一度に設定できるようにするため。
でも継承不可能という意味のキーワードを付けるとその属性は継承されない。というのも必要ならありかも。今のところ不要。


**ページ/属性は編集権限対象外 [#p2ddb006]
例えば管理者だけが持っている権限で書き換えられるようにして。
権限の付与(allow)/剥奪(deny)を制御。

ページ名にもページ/属性が含まれるので、ページ名変更も特別な権限。
**書式 [#t0f421df]
接頭辞はページ名の冒頭に書くだけ。

----

ページ/属性の書き方。
 属性名(主属性名):値
 属性名:値 副属性名1:副属性1の値 副属性名2:副属性2の値 …
 属性名:値, 副属性名1:副属性1の値, …
 属性名=値, 副属性名1=副属性1の値, …
 属性名

全半角不問。

副属性は機能呼び出しのパラメーターなどに。
副属性は順不同。機能が解釈する。

主属性はページが解釈する。
ページが知っている属性名でなければならない。

----

 属性名:値
 属性名

これは副属性名を省略した形。副属性名が空文字列な場合。
副属性は必要な分だけ書く。主属性の値も要らないなら書かなくていい。存在しない値が参照されたときは空文字列として扱う。
存在しない名前が参照されたときは継承。

**属性/ [#r79ad893]
#ls

**[[tag:属性]] [#j6951926]
#lsx(tag=属性,new=true)