doxを使ってみたよ

TJ作のドキュメントジェネレータdoxを使ってみた。
使ってみたうちに入らないかもしれないけど……
環境:MacOS 10.7.3 / nodebrew 0.5.0 / node.js 0.6.13 / npm 1.1.9

インストール

本当はグローバルインストールするんだろうけど、ローカルインストールにした。

$ mkdir dox
$ cd dox
$ npm install dox

コードを書く

/**
 * __すごい__メソッドです。
 *
 * @param {String} なんらかの文字列
 * @return {String} 'sugoi'を返す
 */
exports.sugoi = function (str) {
  str = str || '';
  return 'sugoi' + str;
};

JavaDocとかJSDocToolkit向けに書いてるみたいに書ける。
ついでにgithub-flavored-markdownを使用しているので(てかgithub-flavoredなMarkdownのモジュール、あったんだねえ)
Markdown記法で強調したりできる。

生成する

$ node_modules/.bin/dox < aaa.js
[
  {
    "tags": [
      {
        "type": "param",
        "types": [
          "String"
        ],
        "name": "なんらかの文字列",
        "description": ""
      },
      {
        "type": "return",
        "types": [
          "String"
        ],
        "description": "'sugoi'を返す"
      }
    ],
    "description": {
      "full": "<p><strong>すごい</strong>メソッドです。</p>",
      "summary": "<p><strong>すごい</strong>メソッドです。</p>",
      "body": ""
    },
    "isPrivate": false,
    "ignore": false,
    "code": "exports.sugoi = function (str) {\n  str = str || '';\n  return 'sugoi' + str;\n};",
    "ctx": {
      "type": "method",
      "receiver": "exports",
      "name": "sugoi",
      "string": "exports.sugoi()"
    }
  }
]

doxを実行すると標準出力にJSONで出力される。
これをどうもテンプレートで使ってね、ってことみたい。
Hogan.jsとかで使ったらいいのかな。出力されるのがデータだけなので、デザインも好き放題って感じ。
ページを分けるのも自分次第だろうし。


doccoとかdoccoファミリーも前に使ったけど、doxもなかなかいいかなーと思った。