8
0

build-docs.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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( './../util/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. if ( skipApi ) {
  14. const fs = require( 'fs' );
  15. const apiJsonPath = './docs/api/output.json';
  16. if ( fs.existsSync( apiJsonPath ) ) {
  17. fs.unlinkSync( apiJsonPath );
  18. }
  19. runUmberto( {
  20. skipLiveSnippets,
  21. skipApi,
  22. production
  23. } ).then( () => process.exit() );
  24. }
  25. // Simple way to reuse existing api/output.json:
  26. // return Promise.resolve()
  27. buildApiDocs()
  28. .then( () => {
  29. return runUmberto( {
  30. skipLiveSnippets,
  31. production
  32. } );
  33. } );
  34. function runUmberto( options ) {
  35. assertIsInstalled( 'umberto' );
  36. const umberto = require( 'umberto' );
  37. return umberto.buildSingleProject( {
  38. configDir: 'docs',
  39. clean: true,
  40. skipLiveSnippets: options.skipLiveSnippets,
  41. snippetOptions: {
  42. production: options.production
  43. },
  44. skipApi: options.skipApi
  45. } );
  46. }