1 | #!/usr/bin/env node
|
2 |
|
3 | const sitedown = require('.')
|
4 | const clopts = require('cliclopts')([
|
5 | {
|
6 | name: 'build',
|
7 | abbr: 'b',
|
8 | help: 'path to build directory',
|
9 | default: 'build'
|
10 | },
|
11 | {
|
12 | name: 'pretty',
|
13 | help: 'use directory indexes for pretty URLs',
|
14 | boolean: true,
|
15 | default: true
|
16 | },
|
17 | {
|
18 | name: 'el',
|
19 | abbr: 'e',
|
20 | help: 'css selector for target element',
|
21 | default: '.markdown-body'
|
22 | },
|
23 | {
|
24 | name: 'layout',
|
25 | abbr: 'l',
|
26 | help: 'path to layout file'
|
27 | },
|
28 | {
|
29 | name: 'github-headings',
|
30 | abbr: 'g',
|
31 | alias: 'githubHeadings',
|
32 | help: 'add anchors to headings just like GitHub',
|
33 | boolean: true,
|
34 | default: false
|
35 | },
|
36 | {
|
37 | name: 'no-hljs-class',
|
38 | alias: 'noHljsClass',
|
39 | help: 'don\'t add the hljs class to codeblocks',
|
40 | boolean: true,
|
41 | default: false
|
42 | },
|
43 | {
|
44 | name: 'silent',
|
45 | abbr: 's',
|
46 | help: 'make less noise during build',
|
47 | boolean: true
|
48 | },
|
49 | {
|
50 | name: 'watch',
|
51 | abbr: 'w',
|
52 | help: 'watch a directory or file (experimental)',
|
53 | boolean: true
|
54 | },
|
55 | {
|
56 | name: 'dev',
|
57 | abbr: 'd',
|
58 | help: 'start development server (experimental)',
|
59 | default: false
|
60 | },
|
61 | {
|
62 | name: 'assets',
|
63 | abbr: 'a',
|
64 | help: 'assets folder to copy',
|
65 | default: 'assets'
|
66 | },
|
67 | {
|
68 | name: 'version',
|
69 | abbr: 'v',
|
70 | boolean: true,
|
71 | help: 'show version information'
|
72 | },
|
73 | {
|
74 | name: 'help',
|
75 | abbr: 'h',
|
76 | help: 'show help',
|
77 | boolean: true
|
78 | }
|
79 | ])
|
80 | const argv = require('minimist')(process.argv.slice(2), {
|
81 | alias: clopts.alias(),
|
82 | boolean: clopts.boolean(),
|
83 | default: clopts.default()
|
84 | })
|
85 |
|
86 | if (argv.version) {
|
87 | console.log(require('./package').version)
|
88 | process.exit(0)
|
89 | }
|
90 |
|
91 | if (argv.help) {
|
92 | console.log('Usage: sitedown [source] [options]\n')
|
93 | console.log(' Example: sitedown . -b dist -l layout.html\n')
|
94 | console.log(' source path to source directory (default: current working directory)')
|
95 | clopts.print()
|
96 | process.exit(0)
|
97 | }
|
98 |
|
99 | argv.source = argv.source || argv._[0] || '.'
|
100 | argv.build = argv.build || 'build'
|
101 | argv.silent = argv.silent || false
|
102 |
|
103 | if (argv.dev) {
|
104 | sitedown.dev(argv)
|
105 | } else if (argv.watch) {
|
106 | sitedown.watch(argv)
|
107 | } else {
|
108 | sitedown(argv, function (err) {
|
109 | if (err) {
|
110 | console.error(err.message)
|
111 | process.exit(1)
|
112 | } else {
|
113 | process.exit(0)
|
114 | }
|
115 | })
|
116 | }
|