スクリプトサイドバープラグインリファレンス

フォルダ/ファイル構造


フォルダおよびファイル構造は以下のとおりです。

プラグインルートフォルダ


プラグインを構成するファイルが格納されるフォルダです。
プラグインを一般に公開する場合はフォルダ名を、プラグイン定義ファイルのguid項目に設定した値と同一にする必要があります。

スクリプトファイルフォルダ


スクリプトサイドバープラグイン内でフレームワークから呼び出されるスクリプトファイルを格納するためのフォルダです。
フレームワークは"プラグインルートフォルダ/script"にスクリプトファイルが配置されていることを前提にして動作します。
※このフォルダ以外にスクリプトファイルを配置することはできません。

利用可能なスクリプトファイル

種類 説明 拡張子
VBScript WSHで利用可能なVBScriptファイルと文法的に互換性をもった形式です vbs
JScript WSHで利用可能なJScriptファイルと文法的に互換性をもった形式です js

それぞれの言語の詳細な説明については以下のサイトを参考にしてください。

コンテント用テンプレートファイルフォルダ


XSLスタイルシートおよびXSLスタイルシートが生成したHTMLファイルが利用する素材を格納するためのフォルダです。
(フレームワークは"プラグインルートフォルダ\resource\"以下にXSLスタイルシートが配置されていることを前提に動作します。)

HTMLファイルで利用される画像ファイル、スタイルシート、スクリプトファイル等の素材を格納します。
"プラグインルートフォルダ\resource"以下のフォルダ構造に制限はありません。

プラグイン定義ファイル(plugin.config)


Lunascapeプラグイン定義ファイルです。
拡張サイドバープラグインをLunascape用プラグインとして動作させるために必要なXMLファイルです。 plugin.configという名称でプラグインのルートフォルダに配置されています。
詳細はLunascapeエクステンション仕様をご覧ください。
オリジナルのプラグインを配布するにはオリジナルのスクリプトサイドバープラグインを開発を参考にプラグイン定義ファイルを修正する必要があります。

スクリプトサイドバープラグイン定義ファイル(LunaScriptSideBar.ini)


1つ以上のページで構成されるサイドバーのコンテンツ定義を記述したテキストファイルです。
iniファイル形式で記述され、LunaScriptSideBar.iniという名称でプラグインのルートフォルダに配置されています。
[GENERAL]セクションと[PAGES]セクションから構成されています。

[GENERAL]セクションの記述

[GENERAL]セクションにはサイドバー全体の動作を制御する項目を記述します。

[GENERAL]セクション内で定義可能な項目
ComponentId 説明 - サイドバーを識別する値を定義します。 Visual Studioのguidgen または他のGUID生成ツールで新規GUIDを作成する必要があります。
同じ値を、plugin.config内のスクリプトサイドバーdllを表す<component>要素の属性
clsidの値として設定する必要があります。
記述例 - {BA382A18-7812-45fa-BC6D-641C99B3C7D1}
省略 - 不可能
省略時の値 - なし
ShowTab 説明 - サイドバーの上部にページを切り替えるタブを表示するかを設定します。 記述例 - ShowTab=1 省略 - 可能 省略時の値 - 1
Debug 説明 - デバッグモードを有効にするかを設定します。
記述例 - Debug=True
省略 - 可能
省略時の値 False

[PAGE]セクションの記述

[PAGE n]形式で記述します。
nには1から始まる整数値を記述します。
サイドバー内に複数のページを表示するには[PAGE 1]、[PAGE2]・・・のように記述します。

[PAGE]セクション内で定義可能な項目
DisplayName 説明 - 表示名です。UI上で表示されるタイトルとして運用されます。 記述例 - サンプル 省略 - 不可 省略時の値 - なし
ParseScriptName 説明 - 解析スクリプトファイル名です。
記述例 - sample.vbs
省略 - 不可
省略時の値 - なし
ParseScriptEntryPoint 説明 - スクリプトエンジンがエントリポイントとして呼び出す関数名です。 記述例 - スクリプトエンジンが関数名として許可している文字で構成される文字列 省略 - 不可 省略時の値 - なし
StyleSheetName 説明 - 解析スクリプトの解析結果が格納されたXMLをHTMLに変換するための XSLファイル名です。 フレームワークは"プラグインルートフォルダ\resource"に XSLスタイルシートが配置されていることを前提に動作します。 記述例 - sample.xsl 省略 - 不可 省略時の値 - なし
AllowSelfNavigate 説明 - サイドバー内でのナビゲートを許可するかを設定します。 0に設定した場合にサイドバー内でリンクをクリックすると、Lunascapeで 新規タブが開きます。 1に設定した場合にサイドバー内でリンクをクリックすると、サイドバー内で ナビゲートが行われます。 記述例 - AllowSelfNavigate=1 省略 - 可能 省略時の値 - 0

定義ファイルのサンプル

[GENERAL]
ComponentId={BA382A18-7812-45fa-BC6D-641C99B3C7D1}
ShowTab=1
[PAGE 1]
AllowSelfNavigate=0
DisplayName=サンプル
ParseScriptName=sample.vbs
ParseScriptEntryPoint=main
StyleSheetName=sample.xsl

サイドバープラグインモジュール


拡張サイドバープラグインのモジュールです。

スクリプトで利用可能なオブジェクト


サイドバーフレームワークで利用可能なオブジェクトは以下のとおりです。

スクリプティングオブジェクト スクリプトが利用する名称
LunascapeAPI Lunascape
LunaScriptSidebarAPI LunaScriptSidebar
LunaItemXmlBuilderAPI LunaItemXmlBuilder
LunaHtmlUtilityAPI LunaHtmlUtility
LunaXmlUtilityAPI LunaXmlUtility
LunaScriptPluginProfileAPI LunaScriptPluginProfile

LunascapeAPI

Lunascapeをスクリプト言語から操作するためのオブジェクトです。
詳細はLunascape APIをご覧ください。

LunaItemXmlBuilderAPI

解析スクリプトが取得したデータをいったん格納し、デフォルトのxsltにマッチした形式のxmlに変換する機能を持ったオブジェクトです。
ツリー構造でアイテムを格納することができ、xmlがよくわからない方でも簡単に利用することができます。
詳細はLunaItemXmlBuilder APIをご覧ください。

LunaHtmlUtilityAPI

指定されたURLからHTMLデータをダウンロードし、HTMLDocumentオブジェクトに変換します。
解析スクリプトはDOMを用いてページを解析することができます。
詳細はLunaHtmlUtility APIをご覧ください。

LunaXmlUtilityAPI

指定されたURLからXMLデータをダウンロードし、XMLDOMDocumentオブジェクトに変換します。
解析スクリプトはDOMを用いてXMLを解析することができます。
詳細はLunaXmlUtility APIをご覧ください。

LunaScriptSidebarAPI

サイドバープラグインのサイドバーオブジェクトをスクリプトから利用可能にしたAPIです。
詳細はLunaScriptSidebar APIをご覧ください。

LunaScriptPluginProfile API

スクリプティングオブジェクトを通じて、サイドバープラグインの設定を入出力するAPIです。
詳細はLunaScriptPluginProfile APIをご覧ください。

XSLスタイルシート


フレームワークはスクリプトによって追加されたアイテムからXMLを取得してXSLスタイルシートによるHTMLへの変換を行います。
スクリプトはLunaScriptSidebarオブジェクトのSetXmlメソッドを用いてXMLを登録します。
登録するXMLはLunaItemXmlBuilderオブジェクトのToStringメソッドを通じてアイテムを変換したもの、あるいは任意の形式のXMLを選択できます。
LunaItemXmlBuilderオブジェクトのToStringメソッドはOPML準拠のXMLを生成します。
登録したXMLに対応したXSLTスタイルシートを準備することでサイドバー表示するHTMLが作成されます。
ここで作成されたHTML上で読み込まれるJScriptコードから、LunaScriptSidebarオブジェクトを操作することができます。
ただし、Lunascape APIにアクセスするには、Lunascape APIにアクセスするスクリプト上のエントリポイント関数をLunaScriptSidebar::Executeで呼び出した上で、そのエントリポイント関数内でLunascape APIを利用してください。
<base href="%BASE%"/>を<head></head>タグ内に記述すると、XSLTスタイルシートから生成されるHTMLの基準ディレクトリがコンテント用テンプレートファイルフォルダ("プラグインルートフォルダ\resource")となります。これにより、XSLTスタイルシートから生成されるHTMLからコンテント用テンプレートファイルフォルダ内に存在するファイル群を読み込むのが容易になります。

簡単なスクリプトサイドバープラグインを作成してみるで作成したスクリプトからLunaItemXmlBuilderオブジェクトに追加されたアイテムからは次のようなXMLが生成されます。

<?xml version="1.0" encoding="UTF-8"?>
<opml>
<head/>
<body>
<outline type="link" htmlUrl="http://www.luna.tv/"
text="Hello World!"/>
</body>

</opml>

また、高度なスクリプトサイドバープラグインを作成してみるで作成したスクリプトからLunaItemXmlBuilderオブジェクトに追加されたアイテムからは次のようなXMLが生成されます("Lunascape"と入力して実行した結果です。また実行したタイミングによってXMLの内容が異なることがあります)。

<?xml version="1.0" encoding="UTF-8"?>
<opml>
<head/>
<body>
<outline type="link" htmlUrl="Qd1twYUNccI"
text="Lunascape - Tears From The Moon"/>
<outline type="link" htmlUrl="AQ13ksQxlWU"
text="Lunascape - Your Shadow"/>

<outline type="link" htmlUrl="NxDxfSsPvo0"
text="Lunascape - Mindstalking"/>
<outline type="link" htmlUrl="2wpSWsvZdL4"
text="Lunascape - Mourning Star"/>
<outline type="link" htmlUrl="wnVNIoTY_xw"
text="Lunascape - Sequoia"/>
<outline type="link" htmlUrl="CmLcyNuMD0w"
text="Lunascape - Mindstalking (Live)"/>
<outline type="link" htmlUrl="kzftM2bkThM"
text="dream scenario, lunascape"/>
<outline type="link" htmlUrl="5yyfSFxX8DQ"
text="Lunascape - United Brands (Recording session)"/>

<outline type="link" htmlUrl="hJc7CKSrrCs"
text="Lunascapeの便利な使い方(3)"/>
<outline type="link" htmlUrl="AK-PwE2K7aw"
text="Lunascapeの便利な使い方(1)"/>
<outline type="link" htmlUrl="9iIlc8fGkCk"
text="自由自在なLunascapeのサイドバー"/>
<outline type="link" htmlUrl="zxs_Pf-fNfM"
text="Lunascape のバージョン情報をコピーする"/>
<outline type="link" htmlUrl="W07Joa0HSB4"
text="Lunascape - "Mindstalking""/>
<outline type="link" htmlUrl="VNNfT0ZcVYI"
text="Lunascapeの便利な使い方(2)"/>

<outline type="link" htmlUrl="bK0cwDHRDdI"
text="豊富なスキンをダウンロードしてみる"/>
<outline type="link" htmlUrl="WzFg64EV2KU"
text="検索バーのカスタマイズ"/>
<outline type="link" htmlUrl="D36cgxYemMM"
text="Gothic Belly Dance"/>
<outline type="link" htmlUrl="2GpY4z4Q9wI"
text="Praise Me"/>
<outline type="link" htmlUrl="CSKtNA1m_2Y"
text="お気に入りをバックアップする"/>
<outline type="link" htmlUrl="eWegnbB2fik"
text="保存しておいたお気に入りファイルをインポートする"/>

</body>
</opml>
Comments