JavaScriptのAPIドキュメント生成ツールを調べてみたら、YUIDocが割とよかった
JavaScriptのAPIドキュメント生成ツール(いわゆるjavadocみたいなもの)を使いたくなったので、色々調べてみた。
jsdoc3
使い方が間違ってると指摘されたので、訂正エントリ書きました → 【訂正エントリ】jsdoc3の使い方が間違ってると指摘を受けたので再評価した - DenkiYagi
JavaScriptのAPIドキュメント生成ツールは現在もjsdoc系が主流のようなので、その最新系統のjsdoc3をまず試してみた。
zipをダウンロードして展開すると、JREさえインストールされていればすぐに使える(Rhinoのjarが同梱されている)。
で、実際に使ってみたのだが、以下のように即時関数内にドキュメントコメントを書いているケースではドキュメントが正常に生成されない。
/** @module SampleModule */ var SampleModule = {}; (function () { /** Observer Pattern: Observable/Subject class @class Observable @constructor **/ function Observable() { /** @property _observers @type Array @private */ this._observers = []; /** @property _value @private */ this._value = null; } SampleModule.Observable = Observable; // 以下略 })();
どうやら即時関数内のドキュメントコメントは無視してしまうようだ。コードの書き方、コメントの付け方を工夫すれば回避できるようだが、本末転倒な感じがするので、即座に捨てた。
なんでこんな不燃ゴミが主流派になってるのだろう。
jsdoc toolkit
即時関数内のドキュメントコメントが無視されてしまう問題はjsdoc3だからなのかと思い、古いツールであるjsdoc toolkitを試してみたが、同様だった。
jsdoc系、ほんとゴミだな。
YUIDoc
で、最終的にここに至った。昔はPythonで動いていた気がするのだけど、今はnode.js化されていて、npmで簡単にインストールできるようになっている。
即時関数内のドキュメントコメントもちゃんと拾ってくれるし、コメントが書かれているソース行番号も拾ってくれるので良い感じ。デフォルトテンプレートの見た目はあまり好みではないのだけど、まぁガッツリ使うときはカスタマイズできる部分だし、良いかなと。
ということで、しばらくはこれを使っていく予定。