UNPKG

2.32 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3const sitedown = require('.')
4const 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])
80const argv = require('minimist')(process.argv.slice(2), {
81 alias: clopts.alias(),
82 boolean: clopts.boolean(),
83 default: clopts.default()
84})
85
86if (argv.version) {
87 console.log(require('./package').version)
88 process.exit(0)
89}
90
91if (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
99argv.source = argv.source || argv._[0] || '.'
100argv.build = argv.build || 'build'
101argv.silent = argv.silent || false
102
103if (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}