tasks.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. const gulp = require( 'gulp' );
  7. const jsdoc = require( 'gulp-jsdoc3' );
  8. const path = require( 'path' );
  9. module.exports = ( config ) => {
  10. const tasks = {
  11. buildDocs( cb ) {
  12. const esnextBuildPath = path.join( config.ROOT_DIR, config.BUILD_DIR, 'esnext' );
  13. const jsDocConfig = {
  14. opts: {
  15. encoding: 'utf8',
  16. destination: path.join( config.BUILD_DIR, 'docs' ),
  17. recurse: true,
  18. access: 'all'
  19. },
  20. plugins: [
  21. 'node_modules/jsdoc/plugins/markdown',
  22. 'dev/tasks/docs/plugins/comment-fixer'
  23. ]
  24. };
  25. const patterns = [
  26. 'README.md',
  27. // Add all js and jsdoc files, including tests (which can contain utils).
  28. path.join( esnextBuildPath, '**', '*.@(js|jsdoc)' ),
  29. // Filter out libs.
  30. '!' + path.join( esnextBuildPath, 'ckeditor5', '*', 'lib', '**', '*' )
  31. ];
  32. gulp.src( patterns, { read: false } )
  33. .pipe( jsdoc( jsDocConfig, cb ) );
  34. },
  35. register() {
  36. gulp.task( 'docs', [ 'build:js:esnext' ], tasks.buildDocs );
  37. }
  38. };
  39. return tasks;
  40. };