• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/セレクター]] [[:t/要素]] [[:t/データアクセス]] [[☆]]

他の要素を指す%%要素%%記述形式。それを解釈するのが要素。
「[[全てURIで]]」、データアクセスで使うページ/要素取得記法(要素を呼び出す[[記法]]ではない)。要素に他の要素を複数与えるために使う。
これもプラグインで。デフォルトでは記法定義なし。汎用記法で使う。

[[参照記法]]。

----

#contents

***[[:Done/セレクターは属性値デコレーションに使えない]] [#wa60954e]
***[[:i/システムが書くページ裏]] [#uf771300]
***[[:i/セレクターでは上位/下位ページも指定可能に]] [#n6460793]
***[[:i/ページ属性はセレクターで読む]] [#e2114575]
***[[:i/要素埋め込み]] [#c9741862]


***書き方 [#kdbf06bd]
 …querySelector風表現…
''…''部分は汎用記法。

ページパスの表現も含む。
どう書くか?→ページを示すURIと、要素のインスタンス名/要素のクラス名の列をつなげて。ここに特定版(見解や版も)を含めなければいけない??
要素にはインスタンス名を付けられるようにしたい。名前は重複するかも知れないので、IDというより名前。
***querySelectorAll風セレクター [#oa4d5853]



***CSS Selector風セレクター [#oa4d5853]
document.querySelectorAll()で使うような記法。
タグ名にあたるのが要素のクラス名。
継承したクラス名にあたるのが要素インスタンスが持つ"dotAnnotation''s''"属性。ノートアプリの「タグ」にあたるもの。でもこの言葉はもうマークアップタグとして使ってしまっているので。
:nth…とか:firstとか:evenみたいな疑似セレクターにあたるものは必要なものを似せて実装。

セレクター要素が必要。表現を解釈して要素セットを出力する要素。以前の参照記法にあたるもの。


***XPath風でもいい [#if59dae9]
document.evaluate()で使うような記法。
XPathだとURIやページ名とひと続きになっていい。(ページ名の区切りは変更可能だけど)
%%ただ、CSSで使われるquerySelector風形式よりも使われてなさそう。CSS使う人だけが利用者ではないのでこの点は考えなくてもいい。%%


***リンクを関連名でフィルタリング [#k5ca34df]

エレメント取得はデータアクセスで要素取得すればいい。
ページセットのほうはリンク要素を取得して関連名でフィルタリングするもの。それをページセットで返せればいいので。

リンクのセット→ページセット
はセットの要素を個別に扱う必要がある。

†[[:Done/セットの扱い]]
†[[:i/参照記法は不要]] 

RIGHT:[[:t/要素]] [[:t/開発]] [[:t/API]] [[:t/ページセット]]
***セレクターでやること [#m6646769]
+トークン化、空白類区切り
+行頭から解析
+DOM風をトークン通りに辿る
++辿れないときは無かったことに→null
空セットではなく。
++辿れたら→要素セット
要素セットの順序は決まっていない。混乱するような順序ではない。


***Selector [#haf7df70]
Selector要素。
「全てURIで」の要素指示の部分の解釈もする。

実装はVisitorパターン。
Visitorが解析後のセレクター記法を持って、要素を収集していく。

Acceptorにどんな順番で道案内させるかは、Visitorがセレクターを読んで決める。Acceptorは全てのセレクターに対応できるよう選択肢を用意。
***%%ページ名と一体化%% [#g7fd1fe3]
%%ページパス+要素パス%%

埋め込み要素ではページ名と属性名を指定することも可能。

「全てURIで」はパラメーターをDictionaryで与えるようなもの。これを使うので一体にする必要はない。