3:14

about my outputs.

最近,Firefoxはもっと拡張間で連携プレーした方が良いんじゃないかって思ってきた.
そして,ページの内容に応じたリッチな機能をいろんなUIで使うためには,
下のようにレイヤを分ける必要があるんじゃないかと思う.


LDRizeもAutoPagerizeもLDRFullFeedもOperatorも自分が使うページ構造のデータを取得してる.
だから新しくページの構造に応じた何かを作るときにはデータを取得するところから始めないといけない.

  1. コマンドを実行する層
    • vimpやminubufferみたいなやつ
    • パイプは必須
    • 他の拡張からコマンドを登録できる
    • 他の拡張からコマンドを実行できる(Greasemonkeyからも)
    • goDoCommandとかの既存の機能が出来るだけ使えるようにすべき
  2. ページから構造を抜き出す層
    • microformatize.user.jsみたいなの
    • GRDDL/SITEINFOを使う
    • 抜き出した情報を他の拡張から利用するためのAPIを1に登録(Greasemonkeyからも)
  3. UIを提供する層
    • Greasemonkey(AutoPagerize)
    • Shorcutkey(keyconfig,LDRize)
    • MouseGesture
    • CUI(minibuffer,vimp)
    • ContextMenu
    • Statusbar
    • Toolbar
    • 内部で1のコマンドを実行できる(=2の取得した構造も利用できる)

拡張だらけになるのを避けるために,1+2+CUIは1つの拡張でもいいかも.拡張間でAPIを渡すのはTreeStyleTabみたいな感じでいける.