Lunascapeエクステンション仕様

言葉の定義について


  • 機能追加
    • 後から機能を追加することを統一的に「機能追加」と表現する。
  • 拡張機能
    • 機能追加によって追加される機能を総称して「拡張機能」とする。
  • プラグイン
    • ブラウザの追加機能に関しては「プラグイン」と表記する。
  • コンポーネント
    • 一つのプラグイン内には複数の機能を持たせることができる。機能の一つ一つを「コンポーネント」と呼ぶ
  • ツールバー/サイドバープラグイン
    • ツールバー/サイドバーのコンポーネントを含むプラグインを、「ツールバー/サイドバープラグイン」と呼ぶ
  • ウィンドウレスプラグイン(Lunascape Helper Object, LHO)
    • 起動時に自動的に読み込まれ、ウィンドウを持たないプラグインとして動作する

仕様(Ver1.0)


  • プラグインパッケージは以下のフォルダ構造で保存される。ただし{xxxx-xxxx-xxxxxxxxxxxx}をプラグインに固有のGUIDとする。
{ユーザー設定フォルダ}/plugins/{xxxx-xxxx-xxxxxxxxxxxx}/

プラグインのパッケージ構成

  • プラグインパッケージ内ののフォルダ・ファイル構造は以下のとおりである。
プラグインルートフォルダ plugin.config(Lunascapeのプラグイン記述ファイル) *.dll(拡張機能のコンポーネントモジュール) その他必要な任意のフォルダ・ファイル群

plugin.configファイル仕様

  • プラグインごとに、プラグインの内容を記述するXMLファイル。
  • 以下にファイルのフォーマットを示す。
<?xml version="1.0" ?> <plugin configversion="1.0" pluginversion="1.0.0.0" creator="Creator" creator_jpn="製作元" publisher="Publisher" publisher_jpn="配布元" link="http://www.lunascape.jp/" pluginversionsUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/pluginversions.config" containerType="{lllll-lllll-lllll-lllll-lllll}" profileFolderPath="data" guid="{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}"> <component minContainerVersion="3.5.4.93" maxContainerVersion="3.6.*" targetContainerVersion="3.6.0.0" type="{tttt-tttt-tttt-tttt-tttt}" modulePath="plugin.dll" name="Toolbar1" icon="toolbar.ico" clsid={D9E7A1A8-9BCE-4e07-ADD9-68E5EC3261B9} /> <component type="{ssss-ssss-ssss-ssss-ssss}" modulePath="plugin.dll" name="Sidebar1" icon="sidebar.ico" clsid="{A6D360C1-5506-436f-B746-ED4E3B187599}" /> </plugin>

plugin.configファイル仕様解説

  • configversion:フォーマット自体のバージョン。本仕様では1.0とする
  • pluginversion:プラグインのバージョンを記述(x.x.x.x=、例 1.0.0.0)
  • containerType:プラグインを呼び出すアプリケーション(コンテナ)のタイプ
コンテナタイプ[Lunascape]のGUID:{14550EA4-0433-4d47-A48E-C21FDE8F1F5E}
  • profileFolderPath:プラグインのアップグレード時に削除させないフォルダを指定。この属性で指定したフォルダとid.configを除き、アップグレード時にプラグインフォルダ内のファイルは全て削除される
  • guid:プラグイン固有のGuid
  • component:そのプラグインがサポートするコンポーネント
  • type:コンポーネントのタイプ
コンポーネントタイプ[ツールバー]のGUID:{2BAB14FF-6985-4de6-AB72-1D77FB4CA405} コンポーネントタイプ[サイドバー]のGUID:{13198B7A-BC30-4589-8D89-EADB89A525D4} コンポーネントタイプ[LHO]のGUID:{78C7EF54-4C5E-4864-961E-931E1B886772}

pluginversions.configファイル仕様

  • プラグインのバージョンと配布URL、対応バージョンの関連を記述するXMLファイル。
  • 以下にファイルのフォーマットを示す。
<?xml version="1.0" ?> <pluginversions configversion="1.0" pluginversionsUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/pluginversions.config" containerType="{lllll-lllll-lllll-lllll-lllll}" guid="{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}"> <version pluginversion="1.0.0.0" configUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/1.0.0.0/plugin.config" packageUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/1.0.0.0/plugin.zip" minContainerVersion="3.5.4.93" maxContainerVersion="3.6.*" targetContainerVersion="3.6.0.0" /> <version pluginversion="2.0.0.0" configUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/2.0.0.0/plugin.config" packageUrl="http://plugin.lunascape.jp/{aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa}/2.0.0.0/plugin.zip" minContainerVersion="4.0.0.0" maxContainerVersion="4.5.*" targetContainerVersion="4.2.0.0" /> </pluginversions>