Blog

最速な JavaScript のリファレンスマニュアルサイトをつくった

http://jsref.64p.org/

jQAPI - Alternative jQuery Documentation - Array.forEach

JavaScript のリファレンスマニュアルといえば MDN(Mozilla Developers Network) が有名ですが、MDN の資料は探索がめんどくさいし、表示が遅いということで使い勝手がわるいという問題がありました。

そこで、jQuery のリファレンスマニュアルサイトとして有名な jqapi.com とおなじよような使い勝手のサイトがあったらいいのになーとおもいました。

なので、つくりました。

サイト自体はすべて static なデータで構成されているので、github からデータを取得すれば、イントラや自分のマシン内で閲覧することも可能となっています。

なお IE での動作確認はしていないので、うまくうごかない場合は pull-req してください。

Internals

https://github.com/tokuhirom/jsref コードはこちらにあるので、ご利用ください。

データの生成部分(crawler.js)

データの生成はすべて node.js でやっています。スクレイピング処理は当初 wget でやっていたのですが、wget で処理すると、ディレクトリの処理が微妙なので、手でscraping することにしました。取得したデータは gdbm に保存しています。

HTMLデータの変換(convert.js)

取得したHTML をそのまま利用するのはむずかしいので script タグの除去などをおこない、HTML を整形します。

libxmlext というライブラリを利用して処理をしています。当初は jsdom を利用していたのですが、速度面にだいぶ難があったのでのりかえました( see http://d.hatena.ne.jp/tokuhirom/20111226/1324856715 )

目次 JSON の生成 (mkindex.js)

index.json という目次データの生成をします。ここでも libxmlext を利用しています。とくにむずかしい処理はおこなっていません。

navigation.html の生成(mknavigation.js)

サイドバーの HTML を index.json から生成します。