index.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. 'use strict';
  2. module.exports = function(ctx) {
  3. const console = ctx.extend.console;
  4. console.register('clean', 'Remove generated files and cache.', require('./clean'));
  5. console.register('config', 'Get or set configurations.', {
  6. usage: '[name] [value]',
  7. arguments: [
  8. {name: 'name', desc: 'Setting name. Leave it blank if you want to show all configurations.'},
  9. {name: 'value', desc: 'New value of a setting. Leave it blank if you just want to show a single configuration.'}
  10. ]
  11. }, require('./config'));
  12. console.register('deploy', 'Deploy your website.', {
  13. options: [
  14. {name: '--setup', desc: 'Setup without deployment'},
  15. {name: '-g, --generate', desc: 'Generate before deployment'}
  16. ]
  17. }, require('./deploy'));
  18. console.register('generate', 'Generate static files.', {
  19. options: [
  20. {name: '-d, --deploy', desc: 'Deploy after generated'},
  21. {name: '-f, --force', desc: 'Force regenerate'},
  22. {name: '-w, --watch', desc: 'Watch file changes'},
  23. {name: '-b, --bail', desc: 'Raise an error if any unhandled exception is thrown during generation'}
  24. ]
  25. }, require('./generate'));
  26. console.register('list', 'List the information of the site', {
  27. desc: 'List the information of the site.',
  28. usage: '<type>',
  29. arguments: [
  30. {name: 'type', desc: 'Available types: page, post, route, tag, category'}
  31. ]
  32. }, require('./list'));
  33. console.register('migrate', 'Migrate your site from other system to Hexo.', {
  34. init: true,
  35. usage: '<type>',
  36. arguments: [
  37. {name: 'type', desc: 'Migrator type.'}
  38. ]
  39. }, require('./migrate'));
  40. console.register('new', 'Create a new post.', {
  41. usage: '[layout] <title>',
  42. arguments: [
  43. {name: 'layout', desc: 'Post layout. Use post, page, draft or whatever you want.'},
  44. {name: 'title', desc: 'Post title. Wrap it with quotations to escape.'}
  45. ],
  46. options: [
  47. {name: '-r, --replace', desc: 'Replace the current post if existed.'},
  48. {name: '-s, --slug', desc: 'Post slug. Customize the URL of the post.'},
  49. {name: '-p, --path', desc: 'Post path. Customize the path of the post.'}
  50. ]
  51. }, require('./new'));
  52. console.register('publish', 'Moves a draft post from _drafts to _posts folder.', {
  53. usage: '[layout] <filename>',
  54. arguments: [
  55. {name: 'layout', desc: 'Post layout. Use post, page, draft or whatever you want.'},
  56. {name: 'filename', desc: 'Draft filename. "hello-world" for example.'}
  57. ]
  58. }, require('./publish'));
  59. console.register('render', 'Render files with renderer plugins.', {
  60. init: true,
  61. desc: 'Render files with renderer plugins (e.g. Markdown) and save them at the specified path.',
  62. usage: '<file1> [file2] ...',
  63. options: [
  64. {name: '--output', desc: 'Output destination. Result will be printed in the terminal if the output destination is not set.'},
  65. {name: '--engine', desc: 'Specify render engine'},
  66. {name: '--pretty', desc: 'Prettify JSON output'}
  67. ]
  68. }, require('./render'));
  69. };