@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 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 v1.0.0
29
+ StoneDeck CLI v${pkg.version}
28
30
 
29
31
  Usage:
30
- stonedeck export <input.md> <format> [options]
32
+ stonedeck export <input.md> [options]
31
33
  stonedeck preview <input.md> [options]
32
- stonedeck <input.md> [output.pdf/html] (Legacy)
34
+ stonedeck <input.md> [output.html] (Legacy)
33
35
 
34
36
  Commands:
35
- export <input.md> <format> Export a presentation to PDF or HTML
36
- preview <input.md> Quick HTML preview (defaults to internal browser or static)
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> Output file path
40
- --theme, -t <path> Theme file override
41
- --watch, -w Watch for changes and re-generate
42
- --no-offline Disable automatic Base64 conversion for HTML
43
- --debug Save IR to .ir.json for debugging
44
- --help, -h Show this help message
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
- Formats:
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
- format = args[1]?.toLowerCase();
68
- if (!format || !['pdf', 'html'].includes(format)) {
69
- console.error('Error: Format must be either "pdf" or "html"');
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
- if (format === 'html') {
107
- console.log(`🌐 Generating HTML: ${path.basename(outputPath)}...`);
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], 'html', '--output', outputPath, ...args.filter(a => a !== args[0] && a !== '--watch' && a !== '-w')];
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stonedeck/cli",
3
- "version": "0.7.1",
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.0",
23
- "@stonedeck/html-plugin": "^0.7.0",
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 v1.0.0
33
+ StoneDeck CLI v${pkg.version}
31
34
 
32
35
  Usage:
33
- stonedeck export <input.md> <format> [options]
36
+ stonedeck export <input.md> [options]
34
37
  stonedeck preview <input.md> [options]
35
- stonedeck <input.md> [output.pdf/html] (Legacy)
38
+ stonedeck <input.md> [output.html] (Legacy)
36
39
 
37
40
  Commands:
38
- export <input.md> <format> Export a presentation to PDF or HTML
39
- preview <input.md> Quick HTML preview (defaults to internal browser or static)
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> Output file path
43
- --theme, -t <path> Theme file override
44
- --watch, -w Watch for changes and re-generate
45
- --no-offline Disable automatic Base64 conversion for HTML
46
- --debug Save IR to .ir.json for debugging
47
- --help, -h Show this help message
48
-
49
- Formats:
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
- if (!format || !['pdf', 'html'].includes(format)) {
75
- console.error('Error: Format must be either "pdf" or "html"');
76
- process.exit(1);
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
- if (format === 'html') {
120
- console.log(`🌐 Generating HTML: ${path.basename(outputPath)}...`);
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]!, 'html', '--output', outputPath, ...args.filter(a => a !== args[0] && a !== '--watch' && a !== '-w')];
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);
package/tsconfig.json CHANGED
@@ -11,9 +11,6 @@
11
11
  },
12
12
  {
13
13
  "path": "../html-plugin"
14
- },
15
- {
16
- "path": "../pdf-plugin"
17
14
  }
18
15
  ],
19
16
  "include": [