Question

I have multiple JS files (AMD modules) in a directory. When I run jsdoc command, it generates an index.html file that has doc comments for all the methods across all the files. Why is it clubbing all methods in one file ?

Am using the following command

jsdoc D:\JSworks\shell\widgets -r -d D:\output

I want index.html to have links to each module, clicking on which it should show the docs for methods of only that particular module. How do I achieve this ?

Was it helpful?

Solution

I don't know how your classes look, but here's an example of how to comment an AMD module in order for JSDoc to properly generate documentation for it:

/**
 * A Model for users
 * @module  UserModel
 * @exports UserModel
 * @extends AbstractModel
 */

define(["model/AbstractModel"], 
function(AbstractModel ) {

    return UserModel = new Class(
        /** @lends module:UserModel */
        {
            Extends : AbstractModel,

            /**
             * Constructor
             * @memberOf module:UserModel#
             */

            initialize: function() {
                this.parent();
            },

            /**
             * Sets the model value
             * @memberOf module:UserModel#
             * @param {object} value Value to set the model to           
             */

             setValue: function(value){
                // do something
             }

            /**
             * Responsible for returning user metadata
             * @memberOf module:UserModel#
             * @param {object} user User
             */

            getMetaData: function(user) {
                // do something
            }
        }
    );
});

This class will generate the following documentation: enter image description here

The complete list of tags to use in JSDOC is available at http://usejsdoc.org/index.html#JSDoc3_Tag_Dictionary

OTHER TIPS

You can also add a @require model/AbstractModel (cf previous answer) and a @require for all your AMD dependencies.

i think the @lends annotation isn't appropriate in a new Class().

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top