読者です 読者をやめる 読者になる 読者になる

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 を書きました。

(そのまんま)。上記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 に反映