概要

2013年1月17日、jQuery公式プラグイン・レジストリが公開されました。

The jQuery Plugin Registry
http://plugins.jquery.com/

いままでの jQuery プラグインは、そのソースコード・実行ファイルが 作成者自身のサイトや Google Code / github などいろんな場所に置いてありました。

良さげな jQueryプラグインを見つけたその場でダウンロード出来ればいいのですが、時間が経って 「あのプラグインを紹介していたサイトはどこだっけ?」 みたいな話になることが多く、探すのも一苦労でした(よね?)

jQuery公式でプラグインのインデックスを作って検索できるようにしよう。というのがこのサイトの目的だと思います。

実際のプラグイン本体はjQueryのサイトに配置せず、github に登録された Repository から指定されたファイルの内容を読み取り表示する。 というスタイルを取っています。

プラグインの開発者はプラグインを github の Repository にコミットし、任意のバージョンを指定するタグ(git tag)を設定します。 ソースコードを github に git push したタイミングをトリガーとして、jQuery のサイトに通知を渡す WebHook という仕組みを利用しています。

ということで、今回自作jQueryプラグインを Plugin Registry に登録したのでその手順など。

導入

こちらのサイトを参考にさせて頂いてスムーズに登録できました。

jQuery Plugin Registryにプラグインを登録する | jekylog
http://fingaholic.github.com/posts/2013-01-26-jquery-plugin-registry.html
jQueryのPlugin Registryは、githubのmushupであった。
http://qiita.com/items/346dd951438acff63fb2

今回、 私は jqKeyCodeBinder というキータッチイベントをバインドするプラグインを登録しました。

github設定

まずはgithub側の設定 (すでにgithubのリポジトリにそのプラグインがコミットされているものとします)

プラグインのリポジトリのトップ → 「Settings」 → 「Service Hooks」 → 「WebHook URLs」 → 「URL入力」 → 「登録」

WebHook URLsに登録するURLは 「 http://plugins.jquery.com/postreceive-hook 」とします。

マニフェストファイル

次に公式レジストリに通知するマニフェスト(プラグインの内容)を記述します。 ここで書いた内容がレジストリのサイトで表示、リンクされることになります。

トップフォルダに 「プラグイン名.jquery.json」 ファイルを作成します。 (今回の例であれば、jqkeycodebinder.jquery.json)

設定したマニフェストの内容は次の通り。


{
    "name": "jqkeycodebinder",
    "title": "jqKeyCodeBinder",
    "description": "This jQuery plugin is to simplify the binding of key touch event.",
    "keywords": [
        "ui"
    ],
    "version": "0.0.1",
    "author": {
        "name": "kamiyam",
        "email": "labs.k5m@gmail.com",
        "url": "http://nantokaworks.com"
    },
    "licenses": [
        {
            "type": "MIT",
            "url": "http://opensource.org/licenses/MIT"
        }
    ],
    "bugs": "https://github.com/kamiyam/jqKeyCodeBinder/issues",
    "homepage": "http://kamiyam.github.com/jqKeyCodeBinder/",
    "docs": "https://github.com/kamiyam/jqKeyCodeBinder/blob/master/README.md",
    "download": "https://github.com/kamiyam/jqKeyCodeBinder/archive/0.0.1.zip",
    "demo": "http://nantokaworks.com/demo/jqKeyCodeBinder/",
    "dependencies": {
        "jquery": ">=1.5"
    }
}

マニフェストファイルの詳細は公式を確認してみてください。

jQuery Plugin Package Manifest Specification
http://plugins.jquery.com/docs/package-manifest/

jQuery Plugin Registry側で受けた json ファイルの整合性はこのURLで エラーログ が表示されているのでどこで躓いているかが確認出来ます。

WebHookの動作テスト

参考にさせて頂いた 「jQuery Plugin Registryにプラグインを登録する」 にもありますが、WebHook がうまく機能しているかをチェックするため、RecentBinというサービスを利用します。 サイトトップから 「Create a RequestBin »」 をクリックし、ダミーの受信用URLを設定 してちゃんと通知がうまくいっているかを試すとどこで登録に躓いているかがわかりやすくなります。

ダミーの受信用URLを github の WebHook URLs に登録します。 そうすることで、git push された段階でダミーで登録された受信用URLでリクエスト内容が確認出来ます。

私は github の WebHook 設定欄に jQuery Plugin Registry の受信用URLを 登録したつもりがちゃんと登録していなかったため、うまくいっていませんでした ^^;

最後に

gitjub に登録しているものであれば、1ファイル追加するだけで 非常に気軽に自作したjQueryプラグインをjQuery公式のレジスターに登録できる仕組みとなっています。