nexo-md-to-pdf-cli 0.1.4 → 0.1.5
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/cli.js +36 -20
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -65,27 +65,33 @@ async function encodeFileAsDataUrl(filePath) {
|
|
|
65
65
|
return {
|
|
66
66
|
fileName: basename(absolutePath),
|
|
67
67
|
mimeType,
|
|
68
|
-
dataUrl: `data:${mimeType};base64,${bytes.toString("base64")}
|
|
68
|
+
dataUrl: `data:${mimeType};base64,${bytes.toString("base64")}`,
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
function deriveOutputPath(inputPath, options) {
|
|
72
72
|
if (options.output)
|
|
73
73
|
return resolve(options.output);
|
|
74
74
|
const inputAbsolutePath = resolve(inputPath);
|
|
75
|
-
const outputDir = options.outputDir
|
|
75
|
+
const outputDir = options.outputDir
|
|
76
|
+
? resolve(options.outputDir)
|
|
77
|
+
: dirname(inputAbsolutePath);
|
|
76
78
|
const outputFileName = `${basename(inputAbsolutePath, extname(inputAbsolutePath))}.pdf`;
|
|
77
79
|
return join(outputDir, outputFileName);
|
|
78
80
|
}
|
|
79
81
|
function toCliOptions(values) {
|
|
80
82
|
return {
|
|
81
83
|
output: typeof values.output === "string" ? values.output : undefined,
|
|
82
|
-
outputDir: typeof values["output-dir"] === "string"
|
|
84
|
+
outputDir: typeof values["output-dir"] === "string"
|
|
85
|
+
? values["output-dir"]
|
|
86
|
+
: undefined,
|
|
83
87
|
logo: typeof values.logo === "string" ? values.logo : undefined,
|
|
84
88
|
logoTone: values["logo-tone"] === "light" || values["logo-tone"] === "dark"
|
|
85
89
|
? values["logo-tone"]
|
|
86
90
|
: undefined,
|
|
87
|
-
apiBaseUrl: typeof values["api-base-url"] === "string"
|
|
88
|
-
|
|
91
|
+
apiBaseUrl: typeof values["api-base-url"] === "string"
|
|
92
|
+
? values["api-base-url"]
|
|
93
|
+
: undefined,
|
|
94
|
+
help: Boolean(values.help),
|
|
89
95
|
};
|
|
90
96
|
}
|
|
91
97
|
async function loadCliConfig() {
|
|
@@ -93,10 +99,12 @@ async function loadCliConfig() {
|
|
|
93
99
|
const raw = await readFile(CONFIG_PATH, "utf8");
|
|
94
100
|
const parsed = JSON.parse(raw);
|
|
95
101
|
return {
|
|
96
|
-
defaultLogoPath: typeof parsed.defaultLogoPath === "string"
|
|
102
|
+
defaultLogoPath: typeof parsed.defaultLogoPath === "string"
|
|
103
|
+
? parsed.defaultLogoPath
|
|
104
|
+
: undefined,
|
|
97
105
|
defaultLogoTone: parsed.defaultLogoTone === "light" || parsed.defaultLogoTone === "dark"
|
|
98
106
|
? parsed.defaultLogoTone
|
|
99
|
-
: undefined
|
|
107
|
+
: undefined,
|
|
100
108
|
};
|
|
101
109
|
}
|
|
102
110
|
catch (error) {
|
|
@@ -112,9 +120,15 @@ async function saveCliConfig(config) {
|
|
|
112
120
|
await writeFile(CONFIG_PATH, JSON.stringify(config, null, 2) + "\n", "utf8");
|
|
113
121
|
}
|
|
114
122
|
function buildApiUrl(options) {
|
|
115
|
-
const baseUrl = (options.apiBaseUrl ||
|
|
123
|
+
const baseUrl = (options.apiBaseUrl ||
|
|
124
|
+
process.env.NEXO_API_BASE_URL ||
|
|
125
|
+
DEFAULT_API_BASE_URL).replace(/\/+$/, "");
|
|
116
126
|
return `${baseUrl}/api/free/convert`;
|
|
117
127
|
}
|
|
128
|
+
function normalizeMarkdownForPdf(markdown) {
|
|
129
|
+
// Keep punctuation consistent with the current PDF writing style.
|
|
130
|
+
return markdown.replace(/\u2014/g, "\u2013");
|
|
131
|
+
}
|
|
118
132
|
async function handleConfigCommand(args, options) {
|
|
119
133
|
const [action, value] = args;
|
|
120
134
|
if (!action || options.help) {
|
|
@@ -136,7 +150,7 @@ Usage:
|
|
|
136
150
|
const currentConfig = await loadCliConfig();
|
|
137
151
|
const nextConfig = {
|
|
138
152
|
defaultLogoPath: absoluteLogoPath,
|
|
139
|
-
defaultLogoTone: options.logoTone ?? currentConfig.defaultLogoTone ?? DEFAULT_LOGO_TONE
|
|
153
|
+
defaultLogoTone: options.logoTone ?? currentConfig.defaultLogoTone ?? DEFAULT_LOGO_TONE,
|
|
140
154
|
};
|
|
141
155
|
await saveCliConfig(nextConfig);
|
|
142
156
|
console.log(`[nexo] Saved default logo: ${absoluteLogoPath}`);
|
|
@@ -165,23 +179,23 @@ Usage:
|
|
|
165
179
|
}
|
|
166
180
|
async function convertMarkdownFile(inputPath, options, customLogoData) {
|
|
167
181
|
const absoluteInputPath = resolve(inputPath);
|
|
168
|
-
const markdown = await readFile(absoluteInputPath, "utf8");
|
|
182
|
+
const markdown = normalizeMarkdownForPdf(await readFile(absoluteInputPath, "utf8"));
|
|
169
183
|
const requestBody = {
|
|
170
184
|
documents: [
|
|
171
185
|
{
|
|
172
186
|
markdown,
|
|
173
187
|
fileName: basename(absoluteInputPath),
|
|
174
|
-
attachments: []
|
|
175
|
-
}
|
|
188
|
+
attachments: [],
|
|
189
|
+
},
|
|
176
190
|
],
|
|
177
191
|
...(customLogoData
|
|
178
192
|
? {
|
|
179
193
|
customLogo: {
|
|
180
194
|
...customLogoData,
|
|
181
|
-
tone: options.logoTone
|
|
182
|
-
}
|
|
195
|
+
tone: options.logoTone,
|
|
196
|
+
},
|
|
183
197
|
}
|
|
184
|
-
: {})
|
|
198
|
+
: {}),
|
|
185
199
|
};
|
|
186
200
|
const requestBytes = Buffer.byteLength(JSON.stringify(requestBody));
|
|
187
201
|
validateFreeConvertRequest(requestBody, requestBytes);
|
|
@@ -189,9 +203,9 @@ async function convertMarkdownFile(inputPath, options, customLogoData) {
|
|
|
189
203
|
method: "POST",
|
|
190
204
|
headers: {
|
|
191
205
|
"content-type": "application/json",
|
|
192
|
-
"x-nexo-client-source": "cli"
|
|
206
|
+
"x-nexo-client-source": "cli",
|
|
193
207
|
},
|
|
194
|
-
body: JSON.stringify(requestBody)
|
|
208
|
+
body: JSON.stringify(requestBody),
|
|
195
209
|
});
|
|
196
210
|
if (!response.ok) {
|
|
197
211
|
const errorBody = await response.json().catch(() => ({}));
|
|
@@ -214,9 +228,9 @@ async function main() {
|
|
|
214
228
|
logo: { type: "string" },
|
|
215
229
|
"logo-tone": { type: "string" },
|
|
216
230
|
"api-base-url": { type: "string" },
|
|
217
|
-
help: { type: "boolean", short: "h" }
|
|
231
|
+
help: { type: "boolean", short: "h" },
|
|
218
232
|
},
|
|
219
|
-
allowPositionals: true
|
|
233
|
+
allowPositionals: true,
|
|
220
234
|
});
|
|
221
235
|
const options = toCliOptions(parsed.values);
|
|
222
236
|
const inputs = parsed.positionals;
|
|
@@ -237,7 +251,9 @@ async function main() {
|
|
|
237
251
|
const cliConfig = await loadCliConfig();
|
|
238
252
|
const effectiveLogoPath = options.logo ?? cliConfig.defaultLogoPath;
|
|
239
253
|
const effectiveLogoTone = options.logoTone ?? cliConfig.defaultLogoTone ?? DEFAULT_LOGO_TONE;
|
|
240
|
-
const customLogoData = effectiveLogoPath
|
|
254
|
+
const customLogoData = effectiveLogoPath
|
|
255
|
+
? await encodeFileAsDataUrl(effectiveLogoPath)
|
|
256
|
+
: null;
|
|
241
257
|
let failures = 0;
|
|
242
258
|
const total = inputs.length;
|
|
243
259
|
console.log(`[nexo] Starting ${total} conversion${total === 1 ? "" : "s"} using ${buildApiUrl(options)}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AACnE,MAAM,iBAAiB,GAAa,MAAM,CAAC;AAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;yDAiB2C,oBAAoB;;;;;8BAK/C,WAAW,CAAC,SAAS,CAAC,QAAQ;;;;;CAK3D,CAAC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,WAAW,CAAC;QACrB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3C,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC;QAChC,QAAQ;QACR,OAAO,EAAE,QAAQ,QAAQ,WAAW,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,OAAmB;IAC9D,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|