doxygen-js

用doxygen来注释javascript

English version

doxygen里有提到用perl脚本直接从js代码里获取相应的函数啊类啊的定义的;jsdoc使用rhino来分析js然后生成文档。前者不够灵活容易误判,后者功能太弱和doxygen比起来差的太远,因此我更倾向于用伪码的方式来注释javascript,本文就是介绍怎么用java作为伪码来为javascript写doxygen注释文档。

首先是一个脚本,builddoc(见文末),用来把所有js文件里的伪码和注释弄出来交给doxygen来解释,其实这个脚本很简单,就是把文档中以’///’和’/**’和’/* ‘和’ * ‘和’ */’和’//*’开头的行弄出来并把’//*’给去掉后生成一个同名的.java文件 然后让doxygen去解析目录下的所有.java文件

这样 一个js文件例如

//* package ns;
/**
 * Foo.
 * @param foo foo.
 */
var foo=function(foo){}
//* public void foo(String foo);

就会变成

package ns;
/**
 * Foo.
 * @param foo foo.
 */
public void foo(String foo);

接着按java语法解析这个就可以生成文档了

doxygen的configfile里需要用FILE_PATTERNS = *.java来指明解析目录下所有的.java文档


builddoc:

#!/bin/bash

DIRs="./"

if [ $# -ne 0 ]
then
    DIRs=$@
fi

for DIR in $DIRs; do

    JSs=`find $DIR -name "*.js"`

    for JS in $JSs; do
        DOC=`echo $JS|sed 's/\(.*\)\.js/\1.java/g'`;
        if [ $JS -nt $DOC ]; then
            echo "rebuild $DOC"
            grep -e '^\s*\(///\|//\*\|/\*\*\| \* \| \*/\)' $JS | sed 's/^\s*\/\/\*\(.*\)$/\1/g'> $DOC
        fi
    done

done
No comments yet.
No trackbacks yet.