Naturally Pacifist Marsupials
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    gulp-jsdocpublic

    This package has been deprecated

    Author message:

    This project is deprecated. Use gulp-jsdoc3 instead.

    gulp-jsdoc

    NPM version Build Status Coverage Status Dependency Status Code Climate

    jsdoc plugin for gulp

    BIG FAT WARNING

    jsdoc is currently (alpha5+) going through important inner modifications. Also, jsdoc has an history at doing quesitonable things (certainly, at least in part, due to its desire to support alternative javascript engines like Rhino), including, not limited to, hard copying files into the module folder at runtime (templates), and using non standard require calls and paths. Finally, jsdoc really is not meant to be used as a library. It provides a cli, and little more, with no clean/stable library API.

    All in all, maintaining a working "true" gulp plugin (one that uses streams and does not simply call a binary) proved to be a very painful task, with ultimately little benefit, as I stopped using jsdoc altogether for my own uses.

    For all these reasons, I decided to stop maintaining this plugin, and won't work on it until at least a new jsdoc stable version is released. If you still use it and have a PR, I'll review it though.

    TL;DR

    Install gulp-jsdoc as a development dependency:

    npm install --save-dev gulp-jsdoc

    Then, use it:

    var jsdoc = require("gulp-jsdoc");
     
    gulp.src("./src/*.js")
      .pipe(jsdoc('./documentation-output'))

    API

    jsdoc.parser(infos, name)

    gulp.src("./src/*.js")
      .pipe(jsdoc.parser(infos, name))
      .pipe(gulp.dest('./somewhere'))

    Will process any files it has been fed, and generate a new vinyl JSON usable by the generator to produce actual documentation.

    By default, the filename is 'jsdoc.json' unless overriden by the name parameter.

    Note that if you feed the parser a README.md file, this file will be rendered and used as a long description for your package.

    eg:

    gulp.src(["./src/*.js", "README.md"])
      .pipe(jsdoc.parser(infos, name))
      .pipe(gulp.dest('./somewhere'))

    The optional infos parameter is fed to jsdoc.

    infos.name

    Type: String
    Default: ''

    infos.description

    Type: String
    Default: ''

    infos.version

    Type: String
    Default: ''

    infos.licenses

    Type: Array
    Default: []

    infos.plugins

    Type: Array
    Default: false

    jsDoc plugins to use. Example: ['plugins/markdown']

    jsdoc.generator(destination, template, options)

    gulp.src("./somewhere/jsdoc.json")
      .pipe(jsdoc.generator('./destination'))

    or directly from the parser pipe:

    gulp.src(["./src/*.js", "README.md"])
      .pipe(jsdoc.parser(infos, name))
      .pipe(jsdoc.generator('./destination'))

    By default, the generator uses the default template.

    destination

    Type: String
    Default: ''

    Where the documentation will be outputed. If an infos object with a version / name was provided to the parser, these will be used in the final path.

    template

    You may optionnally specify a custom template, using the following syntax

    {
      path: 'path_to_template',
      anyTemplateSpecificParameter: 'whatever'
    }
    

    As a courtesy, gulp-jsdoc bundles ink-docstrap templates, that you may use directly this way:

    {
        path            : "ink-docstrap",
        systemName      : "Something",
        footer          : "Something",
        copyright       : "Something",
        navType         : "vertical",
        theme           : "journal",
        linenums        : true,
        collapseSymbols : false,
        inverseNav      : false
      }
    

    See their site for more infos.

    options

    You may optionnally override default jsdoc behavior with this object:

      {
        showPrivate: false,
        monospaceLinks: false,
        cleverLinks: false,
        outputSourceFiles: true
      }
    

    jsdoc(destination, template, infos, options)

    gulp.src(["./src/*.js", "README.md"])
      .pipe(jsdoc('./destination'))

    ... is simply a shortcut for

    gulp.src(["./src/*.js", "README.md"])
      .pipe(jsdoc.parser())
      .pipe(jsdoc.generator('./destination'))

    Limitations

    Only the parser is really using streams. While the generator will read from the result of the parser, it will also read and write templates files synchronously on its own.

    There is nothing we can do about that, unless changing the jsdoc templating API entirely, and all existing templates...

    Also, the following are currently not supported:

    • tutorials
    • sourcing configuration from jsdoc.conf files

    If you have a use-case that you can't do with straight gulp in a better way, please say so.

    License

    MIT License

    install

    npm i gulp-jsdoc

    Downloadsweekly downloads

    530

    version

    0.1.5

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar