jsBoot/gulp-jsdoc

View on GitHub
gulpfile.js

Summary

Maintainability
A
0 mins
Test Coverage
(function(){
  'use strict';

  // Gulp
  var gulp = require('gulp');
  var gutil = require('gulp-util');

  // Some basic linting
  var eslint = require('gulp-eslint');
  var jshint = require('gulp-jshint');

  var jsreporter = require('jshint-stylish');

  var fs = require('fs');
  var jsconfig = JSON.parse(fs.readFileSync('./.jshintrc'));
  var esconfig = JSON.parse(fs.readFileSync('./.eslintrc'));

  gulp.task('lint', function(){
    gulp.src([
      'gulpfile.js',
      'index.js',
      'lib/**/*.js'
    ])
    .pipe(gutil.combine(
      eslint(esconfig),
      eslint.format(),
      jshint(jsconfig),
      jshint.reporter(jsreporter)
    )());
  });




  var template = require('gulp-template');
  var jsdoc = require('./');

  var pkg = require('./package.json');

  var opts = {
    showPrivate: true,
    monospaceLinks: true,
    cleverLinks: true,
    outputSourceFiles: true
  };

  var tpl = {
    path: 'ink-docstrap',
    systemName      : pkg.name,
    footer          : 'Generated with gulp',
    copyright       : 'Copyright WebItUp 2014',
    navType         : 'vertical',
    theme           : 'journal',
    linenums        : true,
    collapseSymbols : false,
    inverseNav      : false
  };

  // Amelia
  // Cerulean
  // Cosmo
  // Cyborg
  // Flatly
  // Journal
  // Readable
  // Simplex
  // Slate
  // Spacelab
  // Spruce
  // Superhero
  // United

  gulp.task('doc-simple', function() {
    gulp.src([
      'index.js',
      'lib/**/*.js'
    ])
    // Process source files first
    .pipe(template({pkg: pkg}))
    // Then process it
    .pipe(jsdoc('./doc/jsdoc-simple'));
  });

  gulp.task('doc-inked', function() {
    gulp.src([
      'README.md',
      'index.js',
      'lib/**/*.js'
    ])
    // Process source files first
    .pipe(template({pkg: pkg}))
    // Then parse
    .pipe(jsdoc.parser(/*{
      name: pkg.name,
      description: pkg.description,
      version: pkg.version,
      licenses: pkg.licenses || [pkg.license]
    }*/))
    // Then generate the documentation and
    .pipe(jsdoc.generator('./doc/jsdoc-inked', tpl, opts));
  });

}());