npmのメタデータとか

new.npmjs.orgで自分がリリースしたパッケージ(これとか)を見てみたら、ドキュメント(Read me)が表示されるものと、されないものがあって気になったので、npmとnpm-wwwのソースを読んでみました。

まず、Read meの情報を表示する箇所を調べました。
https://github.com/isaacs/npm-www/blob/master/models/package.js#L56
ここで、data.readmeの情報を取得しています。このdataの出処はどこかというと、http://search.npmjs.org/api/${package_name}で取得できるパッケージのメタデータ(JSON)です。

このメタデータの"readme"というキーの値はいつ設定されるかというとnpm publish時です。
https://github.com/isaacs/npm/blob/master/lib/publish.js#L84
上記のように、npm publishコマンドを実行した時点でパッケージのトップディレクトリにあるREADME.mdを読み取ってサーバに送信しています。new.npmjs.orgでRead meが表示されなかったのは、ファイル名がREADME.mdではなくReadme.mdだったことが原因でした。