真・懒

订阅 Twitter GitHub 联系

JavaScript 文档生成工具

如果你看过 YUI 的 RAW 源码,会发现很多跟 javadoc 语法类似的注释。据说 (via) 是使用 JSDoc 这个工具。但我探索了一遍,发现 YUI 多出很多 tag, 比如 @namespace, @static 之类,那么我只好怀疑 YUI 做了改良。一开始,我也试着使用了一下 JSDoc,遗憾的是,除了缺少一些 tag 外,它还不支持未匿名函数内的文档生成。比如,有时候为了保证不产生额外的全局变量会这么写:

(function(){
/**
 * 注释
 * @tag
 */
....
})();

或者我所喜欢的 “module pattern”:

var module = function(){
    var private;
    return {
    /**
     * 注释
     * @tag
     */
    pub1: function(){},
    pub2: function(){},
    ...
    }
}();

在这种情况下,在匿名函数内,和在 return 区块内的注释,JSDoc 就,用北京话说,「葛屁」(音)了,就是不起作用了。遗憾的是我的水平尚未上升到改良 perl 脚本以能按我所需的程度,因此,我寻找的是下一个目标。

JsDoc Toolkit 是一个不错的选择,虽然名称跟 JSDoc 不太容易区分。相比之下,它是使用 JavaScript 来处理文档的(当然,得通过 rhino),而且支持我前面所列举的两种形式(单是这点,我就只能选择它了)。

两者在 tag 的处理方面有所不同,感觉 JSDoc 的全面一些,但缺乏某些关键的 tag,比如 JsDoc Toolkit 中的 @scope 就很好用。

至于如何安装使用,直接上官网看吧 :)。欢迎同我交流。

粗粗看了一下 jQuery,似乎它也是通过 rhino 来处理文档生成的,嗯,我也得钻研一下,hack 出符合我要求的工具了。