node.js の modules wiki を見るときの便利ブックマークレット
表題の通り、Modules · joyent/node Wiki · GitHub を見るときに、便利(主に自分が) になるブックマークレットを書いてみました。
本文
Node.js のモジュールを探す方法としては大きく二つあって、
- Modules · joyent/node Wiki · GitHub から探す
- npm から探す
の二つがあります。(ローカルの npm コマンドでも見れるけど)
後者は npm に登録されているモジュールが検索できるので良いのですが、
Node.js の本家の Wiki にあるだけあって未だに前者のページもよく参照される気がします。
しかし、ここはあくまでも Wiki なので誰でも自分で作ったモジュールを好きに登録する事が出来ます。
そして自分で消しでもしない限り、基本はずっと残ります。
一方で、このページを見てわかる通り一応カテゴライズされていて、同じカテゴリや同じ目的のモジュールが、
結構乱立していたりします。(例えば MySQL のところには 10個くらい登録されています。)
その中から、どれが良さそうか探すには、リンクをたどって API を見たり、実際使ってみたり等有するんですが、
そもそも長い事メンテナンスされてなければフォークする覚悟でもない限り、あまり手を出したくないものです。
あと、そのモジュールが人気があるのかどうかは、 Watch や Fork の数も参考に成ると思います。
ということで、このブックマークレットを使うと、このページのモジュール名の横にそのモジュールのリポジトリのステータスを表示することができ、モジュール探索の参考になるかと思います。
ブックマークレット
ブックマークレットってどうやって貼れば良いの。。?
javascript:for(var i=0;;){var today=new Date,a=$("div#template li a")[i],$a=$(a);i++;if(a.rel!=="nofollow"&&a.href.match(/^https:\/\/github.com\/.*/)&&!$a.html().match(/^<del>.*/)){var href=a.href;$.ajax({url:href,cache:!1,success:function(c){var b=$(c),c=b.find("div.authorship time.js-relative-date").text();today-new Date(c)<2592E6&&(c='<strong style="color:blue">'+c+"</strong>");b=b.find("ul.repo-stats");b=$(b);b.prepend($("<li>").html(c));b.find(".watchers a").text()>100&&b.find(".watchers a").wrap("<strong>").css("color","blue");b.find(".forks a").text()>20&&b.find(".forks a").wrap("<strong>").css("color","blue");c=this.url.split("?")[0];$('a[href="'+c+'"]').after(b)},error:function(){return!1}});if($a.text()==="node-clucene")break}};
注意点あるいは仕様
- 1ヶ月以内に更新されてれば強調(青)
- Watcher が 100 人以上いれば強調(青)
- Forks が 20人以上いれば強調(青)
- Github 以外のリポジトリは無視
- master のステータスしか見てない
- というか Ajax でページ取ってきてるだけなので。
- 現状は全部いっぺんに取りに行くので最初ちょっと重いです。
- ついカッとなって書いたのでソースは決してきれいではないです。。
- Fixjsstyle => Closure Compiler
- Wiki は id がほとんど振ってないので DOM の特定が超面倒くさい。。
- ので本来の目的に差し障り無い挙動は無視
- 要望は Gist にコメントもらえれば気分次第で答えます。
- Fork is wellcome!!