@stonedeck/cli 0.7.1 ā 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +22 -30
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
- package/src/index.ts +25 -31
- package/tsconfig.json +0 -3
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { processStoneDeck } from '@stonedeck/core';
|
|
3
|
-
import { PdfPlugin } from '@stonedeck/pdf-plugin';
|
|
4
3
|
import { HtmlPlugin } from '@stonedeck/html-plugin';
|
|
5
4
|
import * as fs from 'fs';
|
|
6
5
|
import * as path from 'path';
|
|
6
|
+
import { createRequire } from 'module';
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const pkg = require('../package.json');
|
|
7
9
|
async function main() {
|
|
8
10
|
const args = process.argv.slice(2);
|
|
9
11
|
if (args.length < 1 || args.includes('--help') || args.includes('-h')) {
|
|
@@ -24,28 +26,26 @@ async function main() {
|
|
|
24
26
|
}
|
|
25
27
|
function printUsage() {
|
|
26
28
|
console.log(`
|
|
27
|
-
StoneDeck CLI
|
|
29
|
+
StoneDeck CLI v${pkg.version}
|
|
28
30
|
|
|
29
31
|
Usage:
|
|
30
|
-
stonedeck export <input.md>
|
|
32
|
+
stonedeck export <input.md> [options]
|
|
31
33
|
stonedeck preview <input.md> [options]
|
|
32
|
-
stonedeck <input.md> [output.
|
|
34
|
+
stonedeck <input.md> [output.html] (Legacy)
|
|
33
35
|
|
|
34
36
|
Commands:
|
|
35
|
-
export <input.md>
|
|
36
|
-
preview <input.md>
|
|
37
|
+
export <input.md> Export a presentation to HTML
|
|
38
|
+
preview <input.md> Quick HTML preview (defaults to internal browser or static)
|
|
37
39
|
|
|
38
40
|
Options:
|
|
39
|
-
--output, -o <path>
|
|
40
|
-
--theme, -t <path>
|
|
41
|
-
--watch, -w
|
|
42
|
-
--no-offline
|
|
43
|
-
--debug
|
|
44
|
-
--help, -h
|
|
41
|
+
--output, -o <path> Output file path
|
|
42
|
+
--theme, -t <path> Theme file override
|
|
43
|
+
--watch, -w Watch for changes and re-generate
|
|
44
|
+
--no-offline Disable automatic Base64 conversion for HTML
|
|
45
|
+
--debug Save IR to .ir.json for debugging
|
|
46
|
+
--help, -h Show this help message
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
pdf Generate a PDF presentation
|
|
48
|
-
html Generate an offline-capable HTML presentation
|
|
48
|
+
Note: To get a PDF, export to HTML and use your browser's "Print to PDF" feature.
|
|
49
49
|
`);
|
|
50
50
|
}
|
|
51
51
|
async function handleExport(args, legacy = false) {
|
|
@@ -60,19 +60,18 @@ async function handleExport(args, legacy = false) {
|
|
|
60
60
|
if (legacy) {
|
|
61
61
|
inputPath = path.resolve(args[0]);
|
|
62
62
|
outputPath = args[1] && !args[1].startsWith('--') ? path.resolve(args[1]) : undefined;
|
|
63
|
-
format = outputPath?.toLowerCase().endsWith('.html') ? 'html' : 'pdf';
|
|
64
63
|
}
|
|
65
64
|
else {
|
|
66
65
|
inputPath = path.resolve(args[0]);
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
process.exit(1);
|
|
66
|
+
// If second argument is 'html' or 'pdf', ignore it (for backward compatibility)
|
|
67
|
+
if (args[1] === 'html' || args[1] === 'pdf') {
|
|
68
|
+
args.splice(1, 1);
|
|
71
69
|
}
|
|
72
70
|
const outIdx = args.indexOf('--output') !== -1 ? args.indexOf('--output') : args.indexOf('-o');
|
|
73
71
|
if (outIdx !== -1)
|
|
74
72
|
outputPath = path.resolve(args[outIdx + 1]);
|
|
75
73
|
}
|
|
74
|
+
format = 'html';
|
|
76
75
|
// Default output path if not specified
|
|
77
76
|
if (!outputPath) {
|
|
78
77
|
outputPath = inputPath.replace(/\.md$/, `.${format}`);
|
|
@@ -101,16 +100,9 @@ async function handleExport(args, legacy = false) {
|
|
|
101
100
|
console.log(`š Debug: IR saved to ${path.basename(irPath)}`);
|
|
102
101
|
}
|
|
103
102
|
const htmlPlugin = new HtmlPlugin();
|
|
104
|
-
const pdfPlugin = new PdfPlugin();
|
|
105
103
|
const offline = !args.includes('--no-offline');
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
await htmlPlugin.generate(ir, outputPath, { offline });
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
console.log(`šØ Generating PDF: ${path.basename(outputPath)}...`);
|
|
112
|
-
await pdfPlugin.generate(ir, outputPath);
|
|
113
|
-
}
|
|
104
|
+
console.log(`š Generating HTML: ${path.basename(outputPath)}...`);
|
|
105
|
+
await htmlPlugin.generate(ir, outputPath, { offline });
|
|
114
106
|
console.log('ā
Done!');
|
|
115
107
|
}
|
|
116
108
|
catch (e) {
|
|
@@ -132,7 +124,7 @@ async function handlePreview(args) {
|
|
|
132
124
|
try {
|
|
133
125
|
console.log(`\nš ${isWatch ? 'Updating' : 'Generating'} preview...`);
|
|
134
126
|
// Preview defaults to no-offline for speed
|
|
135
|
-
const exportArgs = [args[0], '
|
|
127
|
+
const exportArgs = [args[0], '--output', outputPath, ...args.filter(a => a !== args[0] && a !== '--watch' && a !== '-w')];
|
|
136
128
|
if (!exportArgs.includes('--no-offline'))
|
|
137
129
|
exportArgs.push('--no-offline');
|
|
138
130
|
await handleExport(exportArgs, false);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,qEAAqE;QACrE,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;AACL,CAAC;AAED,SAAS,UAAU;IACf,OAAO,CAAC,GAAG,CAAC;iBACC,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAc,EAAE,MAAM,GAAG,KAAK;IACtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,IAAI,MAA0B,CAAC;IAC/B,IAAI,UAA8B,CAAC;IACnC,IAAI,aAAiC,CAAC;IAEtC,IAAI,MAAM,EAAE,CAAC;QACT,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QACnC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;QAEnC,gFAAgF;QAChF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/F,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,GAAG,MAAM,CAAC;IAEhB,uCAAuC;IACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,EAAE,CAAC;QACP,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACnD,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7D,CAAC;QAED,WAAW;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACtD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc;IACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEhE,iCAAiC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAE/D,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;QACnB,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC;YACtE,2CAA2C;YAC3C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC3H,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE1E,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,GAAG,EAAE,CAAC;IAEZ,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,aAA6B,CAAC;QAElC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stonedeck/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"stonedeck": "./dist/index.js"
|
|
@@ -19,9 +19,8 @@
|
|
|
19
19
|
"start": "node dist/index.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@stonedeck/core": "^0.7.
|
|
23
|
-
"@stonedeck/html-plugin": "^0.7.
|
|
24
|
-
"@stonedeck/pdf-plugin": "^0.7.0"
|
|
22
|
+
"@stonedeck/core": "^0.7.2",
|
|
23
|
+
"@stonedeck/html-plugin": "^0.7.2"
|
|
25
24
|
},
|
|
26
25
|
"devDependencies": {
|
|
27
26
|
"typescript": "^5.0.0",
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { processStoneDeck } from '@stonedeck/core';
|
|
3
|
-
import { PdfPlugin } from '@stonedeck/pdf-plugin';
|
|
4
3
|
import { HtmlPlugin } from '@stonedeck/html-plugin';
|
|
5
4
|
import * as fs from 'fs';
|
|
6
5
|
import * as path from 'path';
|
|
6
|
+
import { createRequire } from 'module';
|
|
7
|
+
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const pkg = require('../package.json');
|
|
7
10
|
|
|
8
11
|
async function main() {
|
|
9
12
|
const args = process.argv.slice(2);
|
|
@@ -27,28 +30,26 @@ async function main() {
|
|
|
27
30
|
|
|
28
31
|
function printUsage() {
|
|
29
32
|
console.log(`
|
|
30
|
-
StoneDeck CLI
|
|
33
|
+
StoneDeck CLI v${pkg.version}
|
|
31
34
|
|
|
32
35
|
Usage:
|
|
33
|
-
stonedeck export <input.md>
|
|
36
|
+
stonedeck export <input.md> [options]
|
|
34
37
|
stonedeck preview <input.md> [options]
|
|
35
|
-
stonedeck <input.md> [output.
|
|
38
|
+
stonedeck <input.md> [output.html] (Legacy)
|
|
36
39
|
|
|
37
40
|
Commands:
|
|
38
|
-
export <input.md>
|
|
39
|
-
preview <input.md>
|
|
41
|
+
export <input.md> Export a presentation to HTML
|
|
42
|
+
preview <input.md> Quick HTML preview (defaults to internal browser or static)
|
|
40
43
|
|
|
41
44
|
Options:
|
|
42
|
-
--output, -o <path>
|
|
43
|
-
--theme, -t <path>
|
|
44
|
-
--watch, -w
|
|
45
|
-
--no-offline
|
|
46
|
-
--debug
|
|
47
|
-
--help, -h
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
pdf Generate a PDF presentation
|
|
51
|
-
html Generate an offline-capable HTML presentation
|
|
45
|
+
--output, -o <path> Output file path
|
|
46
|
+
--theme, -t <path> Theme file override
|
|
47
|
+
--watch, -w Watch for changes and re-generate
|
|
48
|
+
--no-offline Disable automatic Base64 conversion for HTML
|
|
49
|
+
--debug Save IR to .ir.json for debugging
|
|
50
|
+
--help, -h Show this help message
|
|
51
|
+
|
|
52
|
+
Note: To get a PDF, export to HTML and use your browser's "Print to PDF" feature.
|
|
52
53
|
`);
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -66,20 +67,20 @@ async function handleExport(args: string[], legacy = false) {
|
|
|
66
67
|
if (legacy) {
|
|
67
68
|
inputPath = path.resolve(args[0]!);
|
|
68
69
|
outputPath = args[1] && !args[1].startsWith('--') ? path.resolve(args[1]) : undefined;
|
|
69
|
-
format = outputPath?.toLowerCase().endsWith('.html') ? 'html' : 'pdf';
|
|
70
70
|
} else {
|
|
71
71
|
inputPath = path.resolve(args[0]!);
|
|
72
|
-
format = args[1]?.toLowerCase();
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
// If second argument is 'html' or 'pdf', ignore it (for backward compatibility)
|
|
74
|
+
if (args[1] === 'html' || args[1] === 'pdf') {
|
|
75
|
+
args.splice(1, 1);
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
const outIdx = args.indexOf('--output') !== -1 ? args.indexOf('--output') : args.indexOf('-o');
|
|
80
79
|
if (outIdx !== -1) outputPath = path.resolve(args[outIdx + 1]!);
|
|
81
80
|
}
|
|
82
81
|
|
|
82
|
+
format = 'html';
|
|
83
|
+
|
|
83
84
|
// Default output path if not specified
|
|
84
85
|
if (!outputPath) {
|
|
85
86
|
outputPath = inputPath.replace(/\.md$/, `.${format}`);
|
|
@@ -112,17 +113,10 @@ async function handleExport(args: string[], legacy = false) {
|
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
const htmlPlugin = new HtmlPlugin();
|
|
115
|
-
const pdfPlugin = new PdfPlugin();
|
|
116
|
-
|
|
117
116
|
const offline = !args.includes('--no-offline');
|
|
118
117
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
await htmlPlugin.generate(ir, outputPath, { offline });
|
|
122
|
-
} else {
|
|
123
|
-
console.log(`šØ Generating PDF: ${path.basename(outputPath)}...`);
|
|
124
|
-
await pdfPlugin.generate(ir, outputPath);
|
|
125
|
-
}
|
|
118
|
+
console.log(`š Generating HTML: ${path.basename(outputPath)}...`);
|
|
119
|
+
await htmlPlugin.generate(ir, outputPath, { offline });
|
|
126
120
|
|
|
127
121
|
console.log('ā
Done!');
|
|
128
122
|
} catch (e: unknown) {
|
|
@@ -148,7 +142,7 @@ async function handlePreview(args: string[]) {
|
|
|
148
142
|
try {
|
|
149
143
|
console.log(`\nš ${isWatch ? 'Updating' : 'Generating'} preview...`);
|
|
150
144
|
// Preview defaults to no-offline for speed
|
|
151
|
-
const exportArgs = [args[0]!, '
|
|
145
|
+
const exportArgs = [args[0]!, '--output', outputPath, ...args.filter(a => a !== args[0] && a !== '--watch' && a !== '-w')];
|
|
152
146
|
if (!exportArgs.includes('--no-offline')) exportArgs.push('--no-offline');
|
|
153
147
|
|
|
154
148
|
await handleExport(exportArgs, false);
|