ドキュメントジェネレータ再訪
以前、JavaScriptのドキュメントジェネレータをいろいろ触ってみたりしたのですが、また必要になりそうなので3つほど触ってみたのでした。
JavaDoc系のコメントをばっちり書かないと駄目なやつは面倒なので避けたいなあと思いつつも(自分は別に良いのだけど)なかなかそういうものがないのですよねー。
docco/doccoh
コメントをちょこっと書いておいて、後はジェネレータに書ければ良い感じにしてくれるのがdoccoなのですが、pygmentsが必要です。
node.jsのモジュールなのにPythonに依存だなんて……とか思って調べてみたらdoccohというpygmentsをHighlight.jsに置き換えたFork版がありました。
インストールは
$ npm install doccoh
だけで済むので、お手軽です。使い方はdoccoと同じ。
なかなか良いのですがdoccoに追従してくれるのか不安だなーと思ったのでちょっと避けました。
dox
doxもコメントをちょこっと(一行コメントでなくJavaDoc系の/** */で)書いておくと解析して出力してくれますが、結果がJSONなのでHTMLで装飾してあげないといけません。
複数スクリプトファイルが存在する場合はMakefileかなにかを書いてあげないとやってられないですし、HTMLで装飾するのも若干面倒かなあと。
複数スクリプトファイルが存在すると面倒、というのは
$ dox < index.js > index.json
としてあげないといけないからです。ディレクトリを指定などは出来ないようですので……
まあ、Makefile書くのは簡単ですしHTMLも書いてしまえばMarkdownでコメントを書くだけなので大した障害じゃないのですが。
YUIDoc
YUIDocもnpmから簡単にインストールできて、割と綺麗なドキュメントを生成できて、高機能・多機能なジェネレータなのですが。
ちゃんとパラメータとかを書いてあげないといけないところが大変面倒というか。
Markdownで書ける、というのをさっき見つけて試してみたのですが、思っていたものとは違いました。
/** # aaa # ## bbb ## @class Aaa */ function Aaa() { }
のように確かにMarkdownでは書けるんですが、パラメータもやはり書かなければいけないようで。
まー、この中から選ぶとしたらdoxかなーと思うのでした。
追記:
なにやらdoxのテンプレート関連のものが沢山あるようで。
- https://github.com/cbou/markdox
- https://github.com/aearly/dox-docco
- https://github.com/punkave/dox-foundation
- https://github.com/jepso/dox-basic
自分でも何か作ろうかw