グリモンから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