build-docs.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env node
  2. /**
  3. * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
  4. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  5. */
  6. /* eslint-env node */
  7. 'use strict';
  8. const buildApiDocs = require( './buildapi' );
  9. const skipLiveSnippets = process.argv.includes( '--skip-snippets' );
  10. const skipApi = process.argv.includes( '--skip-api' );
  11. const skipValidation = process.argv.includes( '--skip-validation' );
  12. const production = process.argv.includes( '--production' );
  13. const watch = process.argv.includes( '--watch' );
  14. const verbose = process.argv.includes( '--verbose' );
  15. const whitelistedSnippets = process.argv.find( item => item.startsWith( '--snippets=' ) );
  16. buildDocs();
  17. function buildDocs() {
  18. let promise;
  19. if ( skipApi ) {
  20. promise = Promise.resolve();
  21. } else {
  22. promise = buildApiDocs();
  23. }
  24. promise
  25. .then( () => {
  26. return runUmberto( {
  27. skipLiveSnippets,
  28. skipApi,
  29. skipValidation,
  30. production,
  31. watch,
  32. verbose
  33. } );
  34. } );
  35. }
  36. function runUmberto( options ) {
  37. const umberto = require( 'umberto' );
  38. return umberto.buildSingleProject( {
  39. configDir: 'docs',
  40. clean: true,
  41. dev: !options.production,
  42. skipLiveSnippets: options.skipLiveSnippets,
  43. skipValidation: options.skipValidation,
  44. snippetOptions: {
  45. production: options.production,
  46. whitelistedSnippets: whitelistedSnippets ? whitelistedSnippets.replace( '--snippets=', '' ).split( ',' ) : []
  47. },
  48. skipApi: options.skipApi,
  49. verbose: options.verbose,
  50. watch: options.watch
  51. } );
  52. }