Opera Widgets の作り方 : パッケージング
今回は、Opera Widget の作り方の仕上げとして、思いっきり手抜きをしてきた "config.xml" の詳しい書式と、実際に Opera Widget を配布するためのパッケージングの方法、さらに Widget の自動インストールを利用するための Apache サーバーの設定方法などをご紹介します。
config.xml の書式
これまで使ってきた "config.xml" は Widget のサイズだけを記述した非常に簡素なものでした。それだけでも Widget は動作するようですが、本当はもっとたくさんの項目があり、Widget の配布時には必須とされているものもあります。ここではそれらの詳細をご紹介します。
まず、記述するべきと思われる項目すべてを記述した "config.xml" を以下に示します。config.xml の仕様書にはもっと多くの要素が定義されているのですが、まだベータ版で仕様が固まっていない可能性もあるので、Opera 謹製の Widget で使用されていないものは省略しています。
<?xml version="1.0" encoding="utf-8"?> <widget> <widgetname>Tiny Memo</widgetname> <description>簡単なメモを保存するための Widget です。</description> <id> <host>www.sourcewalker.com</host> <name>Tiny Memo</name> <revised>2006-03-04</revised> </id> <width>320</width> <height>240</height> <icon>favicon.ico</icon> <author> <name>歩行者</name> <email>hoge@sourcewalker.com</email> <link>http://wiki.livedoor.jp/sourcewalker/</link> <organization>SourceWalker.com</organization> </author> </widget>
"config.xml" はもちろん XML ファイルですので、XML の文法に沿って記述します。ルート要素は必ず widget にしてください。ここでは説明の都合上、widget の子要素のうち他の要素のコンテナとなっているものを「セクション」、テキストを保持しているものを「値」と呼ぶことにします。それでは、widget の子要素それぞれをご紹介していきます。
widget 直下の値
まずは、どのセクションにも含まれない値をご紹介します。これらは Widget 自体に関する情報が主です。
- widgetname
- Widget の名前を指定します。有効な DOMString であればよいようなので、日本語でもかまわないと思います。(必須)
- description
- Widget の説明を指定します。こちらも日本語 OK です。(省略可能)
- width
- Widget ウインドウの幅をピクセル数で指定します。(省略可能)
- height
- Widget ウインドウの高さをピクセル数で指定します。(省略可能)
- icon
- Widget パネルに表示されるアイコンを指定します。(省略可能)
id セクション
id セクションは必須のセクションです。Widget を一意に識別するために以下の値を記述します。
- host
- Widget がダウンロードできるホストの FQDN を指定します。必須です。ドメインを持っていない場合はどうするんでしょうね・・・(^^;
- name
- 上記のホスト内でユニークな Widget の名前を指定します。日本語が許容されるかどうかは不明です。(必須)
- revised
- 更新日付を W3CDTF フォーマットで指定します。YYYY-MM-DD で記述するのが無難だと思います。(省略可能)
author セクション
author セクションは省略可能です。Widget 作者に関する以下の値を記述します。
- name
- 作者の名前を指定します。日本語 OK です。(推奨)
- organization
- 作者が所属する組織を指定します。日本語 OK です。(省略可能)
- 作者のメールアドレスを指定します。(省略可能)
- link
- 作者のホームページなどの URL を指定します。(省略可能)
だいたい以上のような要素を記述すれば、配布する際にも問題はないようです。割愛した要素については、config.xml の仕様書を参照してください。
なお、"config.xml" を作成する際は文法の間違いに注意してください。"config.xml" に間違いがあってもエラーなどは表示されないので、最後まで間違いに気づかない可能性があります。まずは別の名前で作成して Opera で表示してみると良いと思います。そうすれば通常のファイルとして処理されるので、XML としての文法エラーは表示してくれます。
Widget の配布
Opera Widget を配布するときは、関連するファイルをすべてまとめて .zip 形式でアーカイブします。それだけで配布する準備は OK です。実際に Widget を配布するには、Opera の Widget 配布ページに投稿するか、もしくは自分のサーバーで配布するかの 2 つの方法があります。
Opera のカスタマイズページに投稿する
Opera のカスタマイズページに投稿するには、まずMy Opera にサインアップする必要があります。My Opera のユーザーになったら、こちらのページから投稿できます。・・・とか書いてますが、実は私もまだ My Opera のユーザーになっていませんので、実際にやってみたわけではないです(^^ヾ。どなたか挑戦してみてください。
自分のサーバーで配布する
自分のサーバーで配布する場合は、なんらかの方法で .zip ファイルの MIME タイプを "application/x-opera-widgets" に設定する必要があります。もし Web サーバーの設定が変更できるなら、それが一番簡単です。基本的には .zip ファイルに対して上記の MIME タイプを割り当ててやればよいのですが、すべての .zip ファイルを Widget として認識させるのはあまり好ましくないと思います。そこで、Widget を格納するディレクトリをどこか一箇所に固定し、以下のように指定するとよいでしょう。
<Directory /var/www/www.sourcewalker.com/widgets> AddType application/x-opera-widgets .zip </Directory>
これで "/var/www/www.sourcewalker.com/widgets" ディレクトリの中にある .zip ファイルだけが Widget として認識されます。ほかに、.htaccess を用いても同様の設定が可能かと思います。
もし Web サーバーの設定が変更できないなら、CGI などを経由することで MIME タイプを指定することができます。試していませんが、 HTTP レスポンスヘッダの "Content-type" に上記の MIME タイプを、"Content-length" に .zip ファイルのファイルサイズを指定し、ボディとして .zip ファイルの内容を送信すればよいと思います。詳細は CGI の解説ページなどを参照してください。m(_ _)m
以上のいずれかの方法で MIME タイプを設定できたなら、後は .zip ファイル(もしくは CGI)へのリンクを Web ページに設置するだけです。 Opera 9 でそのリンクをクリックすると、Widget データであることが認識され、自動でインストールされます。
以上、3 回にわたって Opera Widget の作り方をご紹介しました。作成から公開まで、とても手軽にできるようになっていると思います。こんな記事を書いておけば、きっと誰かが便利な Widget を作ってくれるに違いない!と期待しておりますので(他力本願)、皆さんぜひ挑戦してみてください!(^^)
詳しくはこちらの記事をどうぞ!
この記事にコメントする