Какие параметры доступны для документирования вашего Javascript-кода?

Есть ли что-то вроде dOxygen/Javadoc? Что все привыкли, что хорошо работает?

Ответ 1

800-фунтовая горилла Javascript документации - это JSDoc Toolkit и ее преемник JSDoc 3. Большая часть документации выполняется с помощью Javadoc-подобных тегов и префикса комментариев /**.

Пример:

var MyClass = Class.create(
  /** @lends MyClass# */              // @lends is how you document anonymous classes.
  {
    /**
     * Description of constructor.
     * @class Description of class.   // @class annotation goes anywhere and
     *                                //   describes the whole class.
     * @constructs                    // This is a constructor.
     */
    initialize: function(arg0, arg1) {
      //...
    },

    /** A method. */
    myFunc: function() {},

    /** An instance field. */
    myVar: 123
  }
);

Object.extend(MyClass,
  /** @lends MyClass */
  {
    /** A class method. */
    classFunc: function() {}
  }
);

Ответ 2

Как описано в this ссылка:

Существует еще один метод, который использует псевдокод в синтаксисе java для документирования javascript.

  • Используйте script, чтобы получить весь псевдокод из .js файлов и сгенерировать файлы .java с тем же именем, script прилагается ниже по имени builddoc. Этот script фактически получает все строки, начинающиеся с ///, '/*,'/',' * ','/и '//в .java файл. Таким образом, файл javascript, например

    //* 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);

И теперь doxygen может обрабатывать его по-японски. Вы должны использовать FILE_PATTERNS = *.java в настройке doxygen, чтобы сообщить doxygen для синтаксического анализа всех .java файлов.

builddoc:

#!/bin/bash

DIRs="./"

if [ $# -ne 0 ]
then
    [email protected]
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