build-docs.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env node
  2. /**
  3. * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
  4. * For licensing, see LICENSE.md.
  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 dev = process.argv.includes( '--dev' );
  13. const production = process.argv.includes( '--production' );
  14. buildDocs();
  15. function buildDocs() {
  16. if ( skipApi ) {
  17. const fs = require( 'fs' );
  18. const apiJsonPath = './docs/api/output.json';
  19. if ( fs.existsSync( apiJsonPath ) ) {
  20. fs.unlinkSync( apiJsonPath );
  21. }
  22. runUmberto( {
  23. skipLiveSnippets,
  24. skipApi,
  25. skipValidation,
  26. dev,
  27. production
  28. } ).then( () => process.exit() );
  29. return;
  30. }
  31. // Simple way to reuse existing api/output.json:
  32. // return Promise.resolve()
  33. buildApiDocs()
  34. .then( () => {
  35. return runUmberto( {
  36. skipLiveSnippets,
  37. skipValidation,
  38. dev,
  39. production
  40. } );
  41. } );
  42. }
  43. function runUmberto( options ) {
  44. const umberto = require( 'umberto' );
  45. return umberto.buildSingleProject( {
  46. configDir: 'docs',
  47. clean: true,
  48. skipLiveSnippets: options.skipLiveSnippets,
  49. skipValidation: options.skipValidation,
  50. snippetOptions: {
  51. production: options.production
  52. },
  53. skipApi: options.skipApi
  54. } );
  55. }