javascript - 如何使用 jsdoc-toolkit 记录 jQuery-ui 小部件?

标签 javascript jquery jquery-ui documentation jsdoc

我如何记录这个小部件,以便工具包可以公开方法和选项。
我尝试过的所有方法都不会在封闭物内看到任何东西。

/**
* @fileOverview
* @version 1.0
*/

(function($) {
    "use strict";
    $.widget('mynamespace.nameofwidget', {

        // foo should show up in the docs
        options: {
            'foo': 'bar'
        },

        // public function name and parameters should be documented
        myPublic function () {
            // code here....
        },

        // private function no need to document
        _create: function () {
            // code here....
        },

        // private function no need to document
        _setOption: function (key, value) {
            // code here....
        },
    });

})(jQuery);

[编辑]

这是我的配置文件

{
    // source files to use
    _: ['js/test/'],

    // document all functions, even uncommented ones
    a: true,

    // including those marked @private
    p: true,

    // use this directory as the output directory
    d: "js/docs/",

    // use this template
    t: "jsdoc-toolkit/templates/jsdoc",

}

这是我正在使用的命令行命令。

java -jar jsdoc-toolkit/jsrun.jar jsdoc-toolkit/app/run.js  -c=js/docs/conf/ilo.conf

[更新配置]

{
    "opts": {
        "destination": "../js/out/",
        "private": true
    },
    "tags": {
        "allowUnknownTags": true
    },
    "source": {
        "include": [ "../js/test" ],
        "includePattern": ".+\\.js(doc)?$",
        "excludePattern": "(^|\\/|\\\\)_"
    },
    "plugins": [],
    "templates": {
        "cleverLinks": false,
        "monospaceLinks": false,
        "default": {
            "outputSourceFiles": true
        }
    }
}

最佳答案

使用@name@namespace指令(或者,您可以在构造函数上使用@name指令)。以下是您的代码的示例文档:

/**                                                                                                                                                                                           
 *@fileOverview                                                                                                                                                                               
 *@version 1.0                                                                                                                                                                                
 *                                                                                                                                                                                            
 * @namespace mynamespace.nameofwidget                                                                                                                                                        
 */                                                                                                                                                                                           

(function($) {                                                                                                                                                                                
    "use strict";                                                                                                                                                                             
    $.widget('mynamespace.nameofwidget', {                                                                                                                                                    

        /**                                                                                                                                                                                   
         * @name mynamespace.nameofwidget#foo                                                                                                                                                 
         * @description Description of Foo                                                                                                                                                    
         */                                                                                                                                                                                   
        options: {                                                                                                                                                                            
            'foo': 'bar'                                                                                                                                                                      
        },                                                                                                                                                                                    

        /**                                                                                                                                                                                   
         * @name mynamespace.nameofwidget#myPublic
         * @function
         * @description some description                                                                                                                                                      
         */                                                                                                                                                                                   
        myPublic: function () {                                                                                                                                                               
            // code here....                                                                                                                                                                  
        },                                                                                                                                                                                    

        /**                                                                                                                                                                                   
         * @name mynamespace.nameofwidget#_create                                                                                                                                             
         * @function
         * @private                                                                                                                                                                           
         * @description will not show up in HTML docs, but the comments are good to have                                                                                                      
         */                                                                                                                                                                                   
        // private function no need to document                                                                                                                                               
        _create: function () {                                                                                                                                                                
            // code here....                                                                                                                                                                  
        },                                                                                                                                                                                    

        /**                                                                                                                                                                                   
         * @name mynamespace.nameofwidget#_setOption                                                                                    
         * @function
         * @private                                                                                                                                                                           
         * @param {String} key                                                                                                                                                                
         * @param {String} value                                                                                                                                                              
         * @description will not show up in HTML docs, but the comments are good to have                                                                                                      
         */                                                                                                                                                                                   
        // private function no need to document                                                                                                                                               
        _setOption: function (key, value) {                                                                                                                                                   
            // code here....                                                                                                                                                                  
        }                                                                                                                                                                                     
    });                                                                                                                                                                                       

})(jQuery);

请注意,如果在命令行上使用-p参数,则@private指令将不会隐藏生成文档中的命令.

参见this page有关名称路径的更多信息和 this page有关 @private 指令的更多信息。

关于javascript - 如何使用 jsdoc-toolkit 记录 jQuery-ui 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18149894/

相关文章:

javascript - 如何重置测试之间导入的模块

javascript - 将函数从 php 传递给 jquery

php - 检查表格单元格是否有内容并用符号◤标记单元格

Jquery UI 选择菜单在对话框中不起作用

javascript - AngularJS/UI 路由器 - 状态 URL/TemplateURL 中的区域设置

javascript - 如何使用名称的一部分获取javascript对象属性

javascript - 自定义选择框(jquery 脚本)- 非 FF div 滚动问题

jquery - 在 jquery 中自动完成选择后清除文本框

javascript - 动态更改可放置元素的 CSS

javascript - 通过 JavaScript 访问 SVG 数据