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出符合我要求的工具了。
September 3rd, 2007 at 08:06
同样的苦恼啊,呵呵。
一方面是从代码中提取注释组成文档这方面难
另方面是在写代码的时候能够智能的添加注释模板也有点。
希望能够研究出成果来,呵呵。
September 5th, 2007 at 16:37
最早的时候,在YUI的论坛上就有人问是否用JSDOC的,因为早期生成的文档中有JSDOC的标记。但YUI的开发者说了,是使用了改良版的JSDOC,并且不打算发布。JSDOC是只是使用正则表达式来做文档提取。我在JSDOC的开发论坛上也有人提到var a=function(){}();这样格式的文档的提取,JSDOC的作者也说,暂时不会考虑这样的。所以要支持的话,只能自己Hack了。呵。
似乎JSDOC的新一代版本,改用Javascript而不是Perl来撰写了。起名字叫JSDOC2。这个可能容易hack一些。这个jsdoc2刚刚起步。
September 5th, 2007 at 16:41
没有好好看,好象jsDoc toolkit 就是jsdoc2再次改名的项目
September 8th, 2007 at 20:01
为什么这段代码:
var module = function(){
var private;
return {
/**
* 注释
* @tag
*/
pub1: function(){},
pub2: function(){},
…
}
}();
里面会有横线出现?你的Blog的Bug?
September 12th, 2007 at 17:23
不是很理解,我刚开始学js. 关注…
September 29th, 2007 at 11:09
http://www.xidea.org/project/jsi/scripts/org/xidea/jsdoc/index.html
我写的一个。
无需编译。直接在客户端实时解析js源代码。
January 31st, 2008 at 20:15
是啊
这个工具挺不错的
我也使用了