使用Doxygen生成JavaScript文档

Joh*_*her 18 javascript documentation doxygen

我在我的项目中使用PHP和JavaScript,我完全使用netbeans 7.0.1编写代码.我非常喜欢netbeans如何包含和使用JavaDoc注释样式,包括PHP和JS代码.

现在,我想从PHP和JS代码生成代码文档.我知道有几种方法可以做到这一点,但我的主要目标是在一个文档中包含两个部分的文档.

进一步解释:例如,我可以使用Doxygen并处理PHP文件和JsDoc来处理JS文件.结果是,我现在在两个不同的文件夹中有两个不同的文档 - 一个我不喜欢的结果.正如我所提到的,我想在一个文档中.

所以,首先我使用doxygen helper js2doxy.pl(http://jsunit.berlios.de/internal.html),但这不够灵活.它适用于"普通"定义的函数,但不适用于匿名的js函数.

经过一些尝试后,我想为什么不改变文件的FILE_PATTERNS选项来处理.js文件,因为注释的JavaDoc样式几乎与PHP使用的相同.好吧,结果看起来很有希望,文档中缺少一些功能.

以下是示例:

/**
 * Definitions for the languages.
 * @memberof Language
 */
Language.Definitions = (function()
{
...
}
Run Code Online (Sandbox Code Playgroud)

这很好用,我可以看到文档.但:

**
 * Definitions for the languages
 * @memberof Language
 */
Language.Definitions = (function()
{
    var Translations = {};

    /**
     * Replaces strings.
     * @memberof Language
     * @param string translation Translation string 
     * @param array parameters (optional) List of parameters
     * 
     * @return string replaced string
     */
    function replaceStrings(translation, parameters)
    {
       ...
    }
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我看到了Language.Definitions的文档,但没有看到replaceStrings()的文档.你有什么想法,我做错了什么?JsDoc的相同构造是很好的过程.

另外(Language.Definitions的一部分)......

... 
return {
        /**
         * Initialize translations
         * 
         * @memberof Language
         */
        initTranslations: function()
        {
           ...
        } 
... 
}
Run Code Online (Sandbox Code Playgroud)

...未在文档中显示.

如果有人能告诉我如何将doxygen和JsDoc的两个输出合并到一个文档中,我也不介意.

非常感谢提前!

问候!

Wag*_*iro 10

请参阅特殊命令\ fn以在doxygen中显式声明函数,最好在源头中声明,如下所示:

/*!
 * Language
 * Declare the root class
 * \Class Language
 */

/*! 
 * definitions is a property in the Language class
 * \property Definitions definitions
 */

/*!
 * Document the Definitions static class that used as property in the Language class
 * \Class Definitions
 */

/*!
 * Replaces strings
 * Document the static method for the Definitions class
 * \fn string replaceStrings(translation, parameters)
 * \memberof Definitions
 * \param string translation Translation string 
 * \param array parameters (optional) List of parameters
 * \return string replaced string
 */

Language.definitions = (function()
{
    var Translations = {};

    function replaceStrings(translation, parameters)
    {
       ...
    }
Run Code Online (Sandbox Code Playgroud)

  • @ user3933607:这是帮助我的东西:http://coherent-labs.com/blog/documenting-javascript-with-doxygen/你需要doxygen.js - 页面告诉你在哪里找到它以及如何配置doxygen到让它起作用 (3认同)
  • 经过这么长时间,我终于可以测试它,它似乎工作.我必须改变两件事:`\ Class`必须是`\ class`(小写)和`\ property Definitions definitions`必须是`\ property Definitions Definitions`.不幸的是,不考虑类层次结构.我试过像`\ property Language.Definitions Language.Definitions`和`\ class Language.Definitions`这样的东西,它们部分有用,但还有一些怪癖(例如doxygen编译器警告). (2认同)