grunt-plugin-esdoc

A plugin that integrates ESDoc into your Grunt build setup.

Usage no npm install needed!

<script type="module">
  import gruntPluginEsdoc from 'https://cdn.skypack.dev/grunt-plugin-esdoc';
</script>

README

Grunt Plugin: ESDoc

Build status npm version Dependencies

A Grunt plugin for the ES2015+ documentation tool ESDoc.

Getting Started

This plugin requires Grunt >= 0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-plugin-esdoc

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks("grunt-plugin-esdoc");

Usage

MyClass.js
/**
 * Description of MyClass.
 */

export default class MyClass {

    /**
     * Description of the method.
     *
     * @param {Number} param - Description of the parameter.
     * @return {Number} Description of the return value.
     */

    method(param) {}

}
Gruntfile.js
grunt.initConfig({
    esdoc: {
        compile: {
            options: {
                plugins: [{
                    "name": "esdoc-standard-plugin"
                }]
            },
            src: "src",
            dest: "docs"
        }
    }
});

Call the esdoc task to generate the documentation. Use --verbose to see all ESDoc log messages.

grunt esdoc [--verbose]

You may also integrate the task into your build sequence:

grunt.registerTask("default", ["lint", "test", "esdoc"]);

Configuration

All ESDoc options defined under options are passed to ESDoc. You may also specify additional plugin-specific options:

Option Description Default
coverageThreshold Affects the color of the coverage report in the console. Has no effect if coverage is not available. Expressed as a percentage. 100.0
verbose Enables exhaustive ESDoc logging. false
grunt.initConfig({
    esdoc: {
        compile: {
            options: {
                verbose: true,
                coverageThreshold: 95.0,
                plugins: [{
                    name: "esdoc-standard-plugin",
                    option: {
                        test: {
                            source: "./test/",
                            interfaces: ["suite", "test"],
                            includes: ["(spec|Spec|test|Test)\\.jsquot;],
                            excludes: ["\\.config\\.jsquot;]
                        }
                    }
                }]
            },
            src: "./path/to/src",
            dest: "./path/to/esdoc/output"
        }
    }
});

Alternatively, you can specify a config path to a file containing the configuration options for ESDoc.

esdoc.json
{
    "coverageThreshold": 95.0,
    "source": "src",
    "destination": "docs",
    "plugins": [{"name": "esdoc-standard-plugin"}]
}
Gruntfile.js
grunt.initConfig({
    esdoc: {
        compile: {
            options: {
                config: "esdoc.json"
            }
        }
    }
});

Note that src and dest override source and destination if they are defined.

Contributing

Maintain the existing coding style. Lint and test your code.