build-docs.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. .catch( () => {
  24. process.exitCode = 1;
  25. } );
  26. }
  27. promise
  28. .then( () => {
  29. return runUmberto( {
  30. skipLiveSnippets,
  31. skipApi,
  32. skipValidation,
  33. production,
  34. watch,
  35. verbose
  36. } );
  37. } );
  38. }
  39. function runUmberto( options ) {
  40. const umberto = require( 'umberto' );
  41. return umberto.buildSingleProject( {
  42. configDir: 'docs',
  43. clean: true,
  44. dev: !options.production,
  45. skipLiveSnippets: options.skipLiveSnippets,
  46. skipValidation: options.skipValidation,
  47. snippetOptions: {
  48. production: options.production,
  49. whitelistedSnippets: whitelistedSnippets ? whitelistedSnippets.replace( '--snippets=', '' ).split( ',' ) : []
  50. },
  51. skipApi: options.skipApi,
  52. verbose: options.verbose,
  53. watch: options.watch
  54. } );
  55. }