Block Rockin’ Codes

back with another one of those block rockin' codes

node.js の modules wiki を見るときの便利ブックマークレット

表題の通り、Modules · joyent/node Wiki · GitHub を見るときに、便利(主に自分が) になるブックマークレットを書いてみました。

本文

Node.js のモジュールを探す方法としては大きく二つあって、

の二つがあります。(ローカルの 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!!