snj:
最近,Firefoxはもっと拡張間で連携プレーした方が良いんじゃないかって思ってきた.
そして,ページの内容に応じたリッチな機能をいろんなUIで使うためには,
下のようにレイヤを分ける必要があるんじゃないかと思う.
LDRizeもAutoPagerizeもLDRFullFeedもOperatorも自分が使うページ構造のデータを取得してる.
だから新しくページの構造に応じた何かを作るときにはデータを取得するところから始めないといけない.
- コマンドを実行する層
- vimpやminubufferみたいなやつ
- パイプは必須
- 他の拡張からコマンドを登録できる
- 他の拡張からコマンドを実行できる(Greasemonkeyからも)
- goDoCommandとかの既存の機能が出来るだけ使えるようにすべき
- ページから構造を抜き出す層
- microformatize.user.jsみたいなの
- GRDDL/SITEINFOを使う
- 抜き出した情報を他の拡張から利用するためのAPIを1に登録(Greasemonkeyからも)
- UIを提供する層
- Greasemonkey(AutoPagerize)
- Shorcutkey(keyconfig,LDRize)
- MouseGesture
- CUI(minibuffer,vimp)
- ContextMenu
- Statusbar
- Toolbar
- 内部で1のコマンドを実行できる(=2の取得した構造も利用できる)
拡張だらけになるのを避けるために,1+2+CUIは1つの拡張でもいいかも.拡張間でAPIを渡すのはTreeStyleTabみたいな感じでいける.
vimpとfiremacsとそのページが独自に設定しているショートカットの調整に難儀することが多い.3の中だけでも調整して欲しいかも.