gist.github.com で GreaseMonkey Script を管理しよう
最近 github にまた新しいサービス、gistが誕生しました。これはよくあるソースコードを web にペーストして参照できるサービスの git 版、と云ったところです。
gist の良いところは、まず git を知らなくても使えるところが上げられます。普通のペーストサービスと同じで、ソースコードを適当にはっつければOKで簡単です。編集ももちろん web 上からでき、インターフェイスから編集を行うと、git の履歴としてサーバサイドに保存されます。また、匿名による作成・編集も可能です。(匿名による編集は cookie が切れるまでっぽいですが)
そして、git と同じく、github にログインしてれば、gist で誰かが貼り付けたソースコードを fork でき、自分の権限の元編集操作が可能になります。ので、誰かが貼り付けたコードを fork し、改良や改善すると云ったことも簡単にできます。大本のコードからは fork されたコードへリンクが張られてるので、あとから来た人も誰かが改良したコードを発見し、利用することも用意です。
そしてなにより、git なので、web のペーストコードを簡単に clone で持ってきて編集し、commit push 等の操作が行えるので、gist へのコード断片の更新が web インターフェイスを使わずとも、git の機能を利用して行うことができるのです。
で、この gist ですが、GreaseMonkey の user.js と相性が良さそうだなぁ、と。user.js を作って gist にはっつければ公開完了。あとから機能追加やバグ修正したければ、web からの上書きはもちろん、手元の git から commit push でおk。また、別の人が fork して「このバグ直したよ」「Opera の GM でも動くようにしたよ」等も簡単。オリジナルの作者は気に入れば pull で取り込めばよいし、もし放置してもオリジナルから fork されたというリンクが残ってるので、Opera で動く版が欲しい人はそこから参照でき、うまいこと情報の集約が可能になります。
ただ一つ問題があって、今ソースのプレーンのダウンロードにはファイル名がつかない(.user.js の拡張子がない)ため、Firefox の GM でワンクリックでインストールができません。しかしリンクを
等、クエリパラメータで最後にファイル名をつけてやれば使えるようになります。ので、gist でファイル名をつけて保存し、そのファイル名が*.user.js だった場合は先ほどのように、.user.js のクエリパラメータをつけて表示する GM を書きました。
- http://gist.github.com/1952/
- http://gist.github.com/raw/1952/a5b92ec9ec7430f3c3b5e69ee4e5f6d173f35df8?gist_link_user_js.user.js
(そのまんま)。上記URLクリックでインストールできるかと思います。
というわけで、gist すごい便利だし、GM と相性良さそうだし、id:os0x さんなんかが広めてくれたらうれしいなー、とか思いました。
追記
早速 id:os0x さんが
で動くように修正してくれたよ!というわけで自分の手元に git で取り込んで push
git clone git@gist.github.com:1952.git gist-1952 # まずは clone で手元に持ってくる
cd gist-1952
git remote add os0x git://gist.github.com/2000.git # os0x さんの fork したレポジトリを remote に追加
git pull os0x # pull で持ってくる
git merge os0x/master # マージする
git push # gist に反映