build-docs.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env node
  2. /**
  3. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  4. * For licensing, see LICENSE.md.
  5. */
  6. /* eslint-env node */
  7. 'use strict';
  8. const assertIsInstalled = require( './../utils/assertisinstalled' );
  9. const buildApiDocs = require( './buildapi' );
  10. const skipLiveSnippets = process.argv.includes( '--skip-snippets' );
  11. const skipApi = process.argv.includes( '--skip-api' );
  12. const production = process.argv.includes( '--production' );
  13. buildDocs();
  14. function buildDocs() {
  15. if ( skipApi ) {
  16. const fs = require( 'fs' );
  17. const apiJsonPath = './docs/api/output.json';
  18. if ( fs.existsSync( apiJsonPath ) ) {
  19. fs.unlinkSync( apiJsonPath );
  20. }
  21. runUmberto( {
  22. skipLiveSnippets,
  23. skipApi,
  24. production
  25. } ).then( () => process.exit() );
  26. return;
  27. }
  28. // Simple way to reuse existing api/output.json:
  29. // return Promise.resolve()
  30. buildApiDocs()
  31. .then( () => {
  32. return runUmberto( {
  33. skipLiveSnippets,
  34. production
  35. } );
  36. } );
  37. }
  38. function runUmberto( options ) {
  39. assertIsInstalled( 'umberto' );
  40. const umberto = require( 'umberto' );
  41. return umberto.buildSingleProject( {
  42. configDir: 'docs',
  43. clean: true,
  44. skipLiveSnippets: options.skipLiveSnippets,
  45. snippetOptions: {
  46. production: options.production
  47. },
  48. skipApi: options.skipApi
  49. } );
  50. }