グリモンからgistにアップされている$X関数を直接requireする方法

amachangの記事でXPathのすごさ$X関数の便利さを知って、もうこれ無しではグリモン書く気になれないくらいになっている。

で、最近グリモンでは@requireによって外部スクリプトを取り込むことができること、$X関数がgist公開されていることを知り、グリモンから直接gistの$X関数を取り込むようにする方法を調べた。

その方法はユーザースクリプトのメタ情報として

@require        http://gist.github.com/3238.txt

を書いておくといい。ポイントは$X関数が公開されているURLが"http://gist.github.com/3238"で、この後ろに".txt"を付加してあげている。こうすると、そのスクリプトが生のテキストとして取得できるらしい。と、いうことをどこかのページで見たんだけど、わすれてしまった。orz

グリモンのヘッダの例

// ==UserScript==
// @name           HatenenaCounterGetURLTitle
// @namespace      http://d.hatena.ne.jp/snaka72/
// @include        http://counter.hatena.ne.jp/*
// @require        http://gist.github.com/3238.txt
// ==/UserScript==

また、オリジナルの$X関数の他に、いろんな人がforkした$X関数もあるので用途に応じて使い分けてもいいかもしれないです。

追記

注意点:@requireされるスクリプトがダウンロードされるのは「インストール」時であることに注意。
既存のスクリプトに@requireを追加/変更した場合は、スクリプトを再インストールしないとその@require先のスクリプトはダウンロードされない。

参考:

追記:2008/12/15

いまいちタイトルがわかりづらかったので変更。あと内容もちょっと追記。

追記:2009/3/17

やっぱり、以下のように対象となるコミット(リビジョン)を明示してrequireしたほうがいいと思う。
上記の方法だと、そのときの最新版がrequireされるので、運悪く動かないとか、もしかすると悪意のある変更でセキュリティ的なリスクにさらされる可能性もあるので...

// ==UserScript==
// @name sayonara post post
// @namespace http://www.tumblr.com
// @include http://otsune.tumblr.com/*
// @require        http://gist.github.com/raw/3242/9dc0cdee5e975d275c7ab71f581d272eb316674f/dollarX.js
// ==/UserScript==
// notice: put this script ABOVE AutoPagerize