• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(属性,ページ,設計,実装);

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


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

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

[[検索:属性]]

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

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


ページ/裏とは異なり上位ページからの継承がある。
継承があるので、システムによる変更は受け付けない。順不同パスにより継承元を特定できないので変更されてもデータの保存先が分からない。
**継承不可能キーワード [#uc0b8218]
必要ならページ/属性に「継承不可」という言葉か記号を書いて、それが継承されないようにする。
継承できない属性があるのなら、「継承不可」で始まる名前にすれば分かりやすい。継承不可と書かないと使えない属性。
**ページの属性にテキスト部分を加えても良いかも [#pe39363d]
テキスト部分は…
-HTMLタグ
-プレーンテキスト
-WikiNotation
-記法

これらを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の値, …
 属性名

全半角不問。

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

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

----

 属性名:値
 属性名

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