@vivliostyle/cli 8.0.1 → 8.1.1
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/README.md +90 -88
- package/dist/build.d.ts +1 -5
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +80 -26
- package/dist/build.js.map +1 -1
- package/dist/commands/build.js +2 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/build.parser.d.ts +1 -1
- package/dist/commands/build.parser.d.ts.map +1 -1
- package/dist/commands/build.parser.js +7 -3
- package/dist/commands/build.parser.js.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.parser.d.ts.map +1 -1
- package/dist/commands/init.parser.js +5 -2
- package/dist/commands/init.parser.js.map +1 -1
- package/dist/commands/preview.js +2 -0
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/preview.parser.d.ts.map +1 -1
- package/dist/commands/preview.parser.js +6 -2
- package/dist/commands/preview.parser.js.map +1 -1
- package/dist/const.d.ts +7 -2
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +26 -5
- package/dist/const.js.map +1 -1
- package/dist/container.js +5 -6
- package/dist/container.js.map +1 -1
- package/dist/init.d.ts +1 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +4 -3
- package/dist/init.js.map +1 -1
- package/dist/{config.d.ts → input/config.d.ts} +13 -13
- package/dist/input/config.d.ts.map +1 -0
- package/dist/{config.js → input/config.js} +95 -110
- package/dist/input/config.js.map +1 -0
- package/dist/{input.d.ts → input/input-types.d.ts} +1 -1
- package/dist/input/input-types.d.ts.map +1 -0
- package/dist/{input.js → input/input-types.js} +3 -3
- package/dist/input/input-types.js.map +1 -0
- package/dist/output/epub.d.ts +10 -0
- package/dist/output/epub.d.ts.map +1 -0
- package/dist/output/epub.js +542 -0
- package/dist/output/epub.js.map +1 -0
- package/dist/{output.d.ts → output/output-types.d.ts} +8 -3
- package/dist/output/output-types.d.ts.map +1 -0
- package/dist/{output.js → output/output-types.js} +7 -4
- package/dist/output/output-types.js.map +1 -0
- package/dist/{postprocess.d.ts → output/pdf-postprocess.d.ts} +4 -4
- package/dist/output/pdf-postprocess.d.ts.map +1 -0
- package/dist/{postprocess.js → output/pdf-postprocess.js} +7 -8
- package/dist/output/pdf-postprocess.js.map +1 -0
- package/dist/{pdf.d.ts → output/pdf.d.ts} +3 -3
- package/dist/output/pdf.d.ts.map +1 -0
- package/dist/{pdf.js → output/pdf.js} +12 -13
- package/dist/output/pdf.js.map +1 -0
- package/dist/output/webbook.d.ts +21 -0
- package/dist/output/webbook.d.ts.map +1 -0
- package/dist/output/webbook.js +251 -0
- package/dist/output/webbook.js.map +1 -0
- package/dist/preview.d.ts +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +7 -6
- package/dist/preview.js.map +1 -1
- package/dist/{builder.d.ts → processor/compile.d.ts} +9 -6
- package/dist/processor/compile.d.ts.map +1 -0
- package/dist/{builder.js → processor/compile.js} +54 -61
- package/dist/processor/compile.js.map +1 -0
- package/dist/processor/html.d.ts +52 -0
- package/dist/processor/html.d.ts.map +1 -0
- package/dist/processor/html.js +256 -0
- package/dist/processor/html.js.map +1 -0
- package/dist/processor/markdown.d.ts.map +1 -0
- package/dist/processor/markdown.js.map +1 -0
- package/dist/{theme.d.ts → processor/theme.d.ts} +1 -1
- package/dist/processor/theme.d.ts.map +1 -0
- package/dist/{theme.js → processor/theme.js} +6 -8
- package/dist/processor/theme.js.map +1 -0
- package/dist/schema/pubManifest.d.ts.map +1 -1
- package/dist/schema/pubManifest.js +19 -21
- package/dist/schema/pubManifest.js.map +1 -1
- package/dist/schema/vivliostyle.d.ts.map +1 -1
- package/dist/schema/vivliostyle.js +3 -5
- package/dist/schema/vivliostyle.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -16
- package/dist/server.js.map +1 -1
- package/dist/util.d.ts +14 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +111 -17
- package/dist/util.js.map +1 -1
- package/package.json +31 -15
- package/types/custom.d.ts +4 -0
- package/types/jsdom.d.ts +14 -0
- package/vendors/README.md +10 -0
- package/vendors/build.js +27 -0
- package/vendors/index.d.ts +4 -0
- package/vendors/index.js +2029 -0
- package/vendors/index.src.js +9 -0
- package/dist/builder.d.ts.map +0 -1
- package/dist/builder.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/epub.d.ts +0 -6
- package/dist/epub.d.ts.map +0 -1
- package/dist/epub.js +0 -18
- package/dist/epub.js.map +0 -1
- package/dist/html.d.ts +0 -17
- package/dist/html.d.ts.map +0 -1
- package/dist/html.js +0 -60
- package/dist/html.js.map +0 -1
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/markdown.d.ts.map +0 -1
- package/dist/markdown.js.map +0 -1
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js.map +0 -1
- package/dist/pdf.d.ts.map +0 -1
- package/dist/pdf.js.map +0 -1
- package/dist/postprocess.d.ts.map +0 -1
- package/dist/postprocess.js.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/dist/theme.js.map +0 -1
- package/dist/webbook.d.ts +0 -7
- package/dist/webbook.d.ts.map +0 -1
- package/dist/webbook.js +0 -99
- package/dist/webbook.js.map +0 -1
- /package/dist/{markdown.d.ts → processor/markdown.d.ts} +0 -0
- /package/dist/{markdown.js → processor/markdown.js} +0 -0
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import AjvModule from 'ajv';
|
|
2
|
-
import AjvFormatsModule from 'ajv-formats';
|
|
3
|
-
import betterAjvErrors from 'better-ajv-errors';
|
|
4
1
|
import chalk from 'chalk';
|
|
5
2
|
import cheerio from 'cheerio';
|
|
6
3
|
import fs from 'fs';
|
|
7
|
-
import path from 'upath';
|
|
8
4
|
import { pathToFileURL } from 'url';
|
|
9
|
-
import { getExecutableBrowserPath } from '
|
|
10
|
-
import { MANIFEST_FILENAME, TOC_FILENAME, TOC_TITLE } from '
|
|
11
|
-
import { CONTAINER_IMAGE } from '
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { readMarkdownMetadata } from '
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { parsePackageName } from './theme.js';
|
|
18
|
-
import { cwd, debug, DetailError, filterRelevantAjvErrors, isUrlString, log, logWarn, readJSON, statFileSync, touchTmpFile, } from './util.js';
|
|
19
|
-
// FIXME: https://github.com/ajv-validator/ajv/issues/2047
|
|
20
|
-
const Ajv = AjvModule.default;
|
|
21
|
-
const addFormats = AjvFormatsModule.default;
|
|
5
|
+
import { getExecutableBrowserPath } from '../browser.js';
|
|
6
|
+
import { EPUB_OUTPUT_VERSION, MANIFEST_FILENAME, TOC_FILENAME, TOC_TITLE, } from '../const.js';
|
|
7
|
+
import { CONTAINER_IMAGE } from '../container.js';
|
|
8
|
+
import { detectInputFormat, detectManuscriptMediaType, } from '../input/input-types.js';
|
|
9
|
+
import { checkOutputFormat, checkPreflightMode, checkRenderMode, detectOutputFormat, } from '../output/output-types.js';
|
|
10
|
+
import { readMarkdownMetadata } from '../processor/markdown.js';
|
|
11
|
+
import { parsePackageName } from '../processor/theme.js';
|
|
12
|
+
import { DetailError, assertVivliostyleConfigSchema, cwd, debug, isUrlString, log, logWarn, openEpubToTmpDirectory, readJSON, statFileSync, touchTmpFile, upath, } from '../util.js';
|
|
22
13
|
const DEFAULT_TIMEOUT = 2 * 60 * 1000; // 2 minutes
|
|
23
14
|
const DEFAULT_ASSETS = [
|
|
24
15
|
'**/*.png',
|
|
@@ -37,7 +28,7 @@ export function validateTimeoutFlag(val) {
|
|
|
37
28
|
return Number.isFinite(+val) && +val > 0 ? +val * 1000 : DEFAULT_TIMEOUT;
|
|
38
29
|
}
|
|
39
30
|
export function contextResolve(context, loc) {
|
|
40
|
-
return loc &&
|
|
31
|
+
return loc && upath.resolve(context, loc);
|
|
41
32
|
}
|
|
42
33
|
function normalizeEntry(e) {
|
|
43
34
|
if (typeof e === 'object') {
|
|
@@ -52,19 +43,19 @@ export function parseTheme({ theme, context, workspaceDir, themesDir, }) {
|
|
|
52
43
|
if (isUrlString(specifier)) {
|
|
53
44
|
return {
|
|
54
45
|
type: 'uri',
|
|
55
|
-
name:
|
|
46
|
+
name: upath.basename(specifier),
|
|
56
47
|
location: specifier,
|
|
57
48
|
};
|
|
58
49
|
}
|
|
59
50
|
// bare .css file
|
|
60
|
-
const stylePath =
|
|
51
|
+
const stylePath = upath.resolve(context, specifier);
|
|
61
52
|
if (fs.existsSync(stylePath) && stylePath.endsWith('.css')) {
|
|
62
|
-
const sourceRelPath =
|
|
53
|
+
const sourceRelPath = upath.relative(context, stylePath);
|
|
63
54
|
return {
|
|
64
55
|
type: 'file',
|
|
65
|
-
name:
|
|
56
|
+
name: upath.basename(specifier),
|
|
66
57
|
source: stylePath,
|
|
67
|
-
location:
|
|
58
|
+
location: upath.resolve(workspaceDir, sourceRelPath),
|
|
68
59
|
};
|
|
69
60
|
}
|
|
70
61
|
// node_modules, local pkg
|
|
@@ -80,7 +71,7 @@ export function parseTheme({ theme, context, workspaceDir, themesDir, }) {
|
|
|
80
71
|
let name = parsed.name;
|
|
81
72
|
let resolvedSpecifier = specifier;
|
|
82
73
|
if (parsed.type === 'directory' && parsed.fetchSpec) {
|
|
83
|
-
const pkgJsonPath =
|
|
74
|
+
const pkgJsonPath = upath.join(parsed.fetchSpec, 'package.json');
|
|
84
75
|
if (fs.existsSync(pkgJsonPath)) {
|
|
85
76
|
const packageJson = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
|
|
86
77
|
name = packageJson.name;
|
|
@@ -94,7 +85,7 @@ export function parseTheme({ theme, context, workspaceDir, themesDir, }) {
|
|
|
94
85
|
type: 'package',
|
|
95
86
|
name,
|
|
96
87
|
specifier: resolvedSpecifier,
|
|
97
|
-
location:
|
|
88
|
+
location: upath.join(themesDir, 'packages', name),
|
|
98
89
|
importPath,
|
|
99
90
|
};
|
|
100
91
|
}
|
|
@@ -116,7 +107,7 @@ function parsePageSize(size) {
|
|
|
116
107
|
}
|
|
117
108
|
}
|
|
118
109
|
function parseFileMetadata({ type, sourcePath, workspaceDir, themesDir, }) {
|
|
119
|
-
const sourceDir =
|
|
110
|
+
const sourceDir = upath.dirname(sourcePath);
|
|
120
111
|
let title;
|
|
121
112
|
let themes;
|
|
122
113
|
if (type === 'text/markdown') {
|
|
@@ -145,7 +136,7 @@ export async function collectVivliostyleConfig(cliFlags) {
|
|
|
145
136
|
let config;
|
|
146
137
|
let jsonRaw;
|
|
147
138
|
try {
|
|
148
|
-
if (
|
|
139
|
+
if (upath.extname(configPath) === '.json') {
|
|
149
140
|
jsonRaw = fs.readFileSync(configPath, 'utf8');
|
|
150
141
|
config = JSON.parse(jsonRaw);
|
|
151
142
|
}
|
|
@@ -157,28 +148,25 @@ export async function collectVivliostyleConfig(cliFlags) {
|
|
|
157
148
|
const thrownError = error;
|
|
158
149
|
throw new DetailError(`An error occurred on loading a config file: ${configPath}`, thrownError.stack ?? thrownError.message);
|
|
159
150
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
throw detailMessage
|
|
169
|
-
? new DetailError(message, detailMessage)
|
|
170
|
-
: new Error(message);
|
|
151
|
+
try {
|
|
152
|
+
assertVivliostyleConfigSchema(config, typeof jsonRaw === 'string' ? { json: jsonRaw } : { indent: 2 });
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
const thrownError = error;
|
|
156
|
+
throw new DetailError(`Validation of vivliostyle.config failed. Please check the schema: ${configPath}`, typeof thrownError === 'string'
|
|
157
|
+
? thrownError
|
|
158
|
+
: thrownError.stack ?? thrownError.message);
|
|
171
159
|
}
|
|
172
160
|
return config;
|
|
173
161
|
};
|
|
174
162
|
let configEntry = {};
|
|
175
163
|
let vivliostyleConfigPath;
|
|
176
164
|
if (cliFlags.configPath) {
|
|
177
|
-
vivliostyleConfigPath =
|
|
165
|
+
vivliostyleConfigPath = upath.resolve(cwd, cliFlags.configPath);
|
|
178
166
|
}
|
|
179
167
|
else {
|
|
180
168
|
vivliostyleConfigPath = ['.js', '.mjs', '.cjs']
|
|
181
|
-
.map((ext) =>
|
|
169
|
+
.map((ext) => upath.join(cwd, `vivliostyle.config${ext}`))
|
|
182
170
|
.find((p) => fs.existsSync(p));
|
|
183
171
|
}
|
|
184
172
|
// let vivliostyleConfig: VivliostyleConfigSchema | undefined;
|
|
@@ -189,10 +177,10 @@ export async function collectVivliostyleConfig(cliFlags) {
|
|
|
189
177
|
};
|
|
190
178
|
}
|
|
191
179
|
else if (cliFlags.input &&
|
|
192
|
-
|
|
180
|
+
upath.basename(cliFlags.input).startsWith('vivliostyle.config')) {
|
|
193
181
|
// Load an input argument as a Vivliostyle config
|
|
194
182
|
try {
|
|
195
|
-
const inputPath =
|
|
183
|
+
const inputPath = upath.resolve(cwd, cliFlags.input);
|
|
196
184
|
const inputConfig = await load(inputPath);
|
|
197
185
|
cliFlags = {
|
|
198
186
|
...cliFlags,
|
|
@@ -209,6 +197,9 @@ export async function collectVivliostyleConfig(cliFlags) {
|
|
|
209
197
|
logWarn(chalk.yellowBright("'--executable-chromium' option was deprecated and will be removed in a future release. Please replace with '--executable-browser' option."));
|
|
210
198
|
cliFlags.executableBrowser = cliFlags.executableChromium;
|
|
211
199
|
}
|
|
200
|
+
if (cliFlags.verbose) {
|
|
201
|
+
logWarn(chalk.yellowBright("'--verbose' option was deprecated and will be removed in a future release. Please replace with '--log-level verbose' option."));
|
|
202
|
+
}
|
|
212
203
|
return {
|
|
213
204
|
cliFlags,
|
|
214
205
|
...configEntry,
|
|
@@ -224,20 +215,20 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
224
215
|
workspaceDir = entryContextDir = cwd;
|
|
225
216
|
}
|
|
226
217
|
else {
|
|
227
|
-
entryContextDir =
|
|
228
|
-
?
|
|
218
|
+
entryContextDir = upath.resolve(cliFlags.input && !config
|
|
219
|
+
? upath.dirname(upath.resolve(context, cliFlags.input))
|
|
229
220
|
: contextResolve(context, config?.entryContext) ?? context);
|
|
230
221
|
workspaceDir =
|
|
231
222
|
contextResolve(context, config?.workspaceDir) ?? entryContextDir;
|
|
232
223
|
}
|
|
233
|
-
const themesDir =
|
|
224
|
+
const themesDir = upath.join(workspaceDir, 'themes');
|
|
234
225
|
const includeAssets = config?.includeAssets
|
|
235
226
|
? Array.isArray(config.includeAssets)
|
|
236
227
|
? config.includeAssets
|
|
237
228
|
: [config.includeAssets]
|
|
238
229
|
: DEFAULT_ASSETS;
|
|
239
|
-
const language = cliFlags.language ?? config?.language ??
|
|
240
|
-
const readingProgression = config?.readingProgression ?? undefined;
|
|
230
|
+
const language = cliFlags.language ?? config?.language ?? undefined;
|
|
231
|
+
const readingProgression = cliFlags.readingProgression ?? config?.readingProgression ?? undefined;
|
|
241
232
|
const sizeFlag = cliFlags.size ?? config?.size;
|
|
242
233
|
const size = sizeFlag ? parsePageSize(sizeFlag) : undefined;
|
|
243
234
|
const cropMarks = cliFlags.cropMarks ?? false;
|
|
@@ -264,7 +255,6 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
264
255
|
hardLineBreaks: config?.vfm?.hardLineBreaks ?? false,
|
|
265
256
|
disableFormatHtml: config?.vfm?.disableFormatHtml ?? false,
|
|
266
257
|
};
|
|
267
|
-
const verbose = cliFlags.verbose ?? false;
|
|
268
258
|
const timeout = cliFlags.timeout ?? config?.timeout ?? DEFAULT_TIMEOUT;
|
|
269
259
|
const sandbox = cliFlags.sandbox ?? true;
|
|
270
260
|
const browserType = cliFlags.browser ?? config?.browser ?? 'chromium';
|
|
@@ -273,6 +263,9 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
273
263
|
const httpServer = cliFlags.http ?? config?.http ?? false;
|
|
274
264
|
const viewer = cliFlags.viewer ?? config?.viewer ?? undefined;
|
|
275
265
|
const viewerParam = cliFlags.viewerParam ?? config?.viewerParam ?? undefined;
|
|
266
|
+
const logLevel = cliFlags.logLevel ??
|
|
267
|
+
((cliFlags.verbose && 'verbose') || undefined) ??
|
|
268
|
+
'silent';
|
|
276
269
|
const rootThemes = cliFlags.theme
|
|
277
270
|
? [
|
|
278
271
|
parseTheme({
|
|
@@ -296,16 +289,23 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
296
289
|
return cliFlags.targets.map(({ path: outputPath, format }) => {
|
|
297
290
|
if (format === 'pdf') {
|
|
298
291
|
return {
|
|
299
|
-
path:
|
|
292
|
+
path: upath.resolve(outputPath),
|
|
300
293
|
format,
|
|
301
294
|
renderMode,
|
|
302
295
|
preflight,
|
|
303
296
|
preflightOption,
|
|
304
297
|
};
|
|
305
298
|
}
|
|
299
|
+
else if (format === 'epub') {
|
|
300
|
+
return {
|
|
301
|
+
path: upath.resolve(outputPath),
|
|
302
|
+
format,
|
|
303
|
+
version: EPUB_OUTPUT_VERSION,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
306
|
else {
|
|
307
307
|
return {
|
|
308
|
-
path:
|
|
308
|
+
path: upath.resolve(outputPath),
|
|
309
309
|
format,
|
|
310
310
|
};
|
|
311
311
|
}
|
|
@@ -314,7 +314,7 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
314
314
|
if (config?.output) {
|
|
315
315
|
return (Array.isArray(config.output) ? config.output : [config.output]).map((target) => {
|
|
316
316
|
const targetObj = typeof target === 'string' ? { path: target } : target;
|
|
317
|
-
const outputPath =
|
|
317
|
+
const outputPath = upath.resolve(context, targetObj.path);
|
|
318
318
|
const format = targetObj.format ?? detectOutputFormat(outputPath);
|
|
319
319
|
if (!checkOutputFormat(format)) {
|
|
320
320
|
throw new Error(`Unknown format: ${format}`);
|
|
@@ -347,7 +347,7 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
347
347
|
const filename = config?.title ? `${config.title}.pdf` : 'output.pdf';
|
|
348
348
|
return [
|
|
349
349
|
{
|
|
350
|
-
path:
|
|
350
|
+
path: upath.resolve(context, filename),
|
|
351
351
|
format: 'pdf',
|
|
352
352
|
renderMode,
|
|
353
353
|
preflight,
|
|
@@ -376,7 +376,6 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
376
376
|
readingProgression,
|
|
377
377
|
vfmOptions,
|
|
378
378
|
cover,
|
|
379
|
-
verbose,
|
|
380
379
|
timeout,
|
|
381
380
|
sandbox,
|
|
382
381
|
executableBrowser,
|
|
@@ -385,6 +384,7 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
385
384
|
httpServer,
|
|
386
385
|
viewer,
|
|
387
386
|
viewerParam,
|
|
387
|
+
logLevel,
|
|
388
388
|
};
|
|
389
389
|
if (!cliFlags.input && !config) {
|
|
390
390
|
throw new Error('No input is set. Please set an appropriate entry or a Vivliostyle config file.');
|
|
@@ -393,13 +393,14 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
393
393
|
? await composeSingleInputConfig(commonOpts, cliFlags, config)
|
|
394
394
|
: await composeProjectConfig(commonOpts, cliFlags, config, context);
|
|
395
395
|
debug('parsedConfig', parsedConfig);
|
|
396
|
-
checkUnusedCliFlags(parsedConfig, cliFlags);
|
|
397
396
|
return parsedConfig;
|
|
398
397
|
}
|
|
399
398
|
async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
400
399
|
debug('entering single entry config mode');
|
|
401
400
|
let sourcePath;
|
|
402
401
|
let input;
|
|
402
|
+
const title = cliFlags.title ?? config?.title;
|
|
403
|
+
const author = cliFlags.author ?? config?.author;
|
|
403
404
|
const workspaceDir = otherConfig.workspaceDir;
|
|
404
405
|
const entries = [];
|
|
405
406
|
const exportAliases = [];
|
|
@@ -409,7 +410,7 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
409
410
|
input = { format: 'webbook', entry: sourcePath };
|
|
410
411
|
}
|
|
411
412
|
else {
|
|
412
|
-
sourcePath =
|
|
413
|
+
sourcePath = upath.resolve(cliFlags.input);
|
|
413
414
|
input = detectInputFormat(sourcePath);
|
|
414
415
|
// Check file exists
|
|
415
416
|
statFileSync(sourcePath);
|
|
@@ -418,9 +419,9 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
418
419
|
// Single input file; create temporary file
|
|
419
420
|
const type = detectManuscriptMediaType(sourcePath);
|
|
420
421
|
const metadata = parseFileMetadata({ type, sourcePath, workspaceDir });
|
|
421
|
-
const relDir =
|
|
422
|
-
const target =
|
|
423
|
-
.resolve(workspaceDir, relDir, `${tmpPrefix}${
|
|
422
|
+
const relDir = upath.relative(otherConfig.entryContextDir, upath.dirname(sourcePath));
|
|
423
|
+
const target = upath
|
|
424
|
+
.resolve(workspaceDir, relDir, `${tmpPrefix}${upath.basename(sourcePath)}`)
|
|
424
425
|
.replace(/\.md$/, '.html');
|
|
425
426
|
await touchTmpFile(target);
|
|
426
427
|
const themes = metadata.themes ?? [...otherConfig.rootThemes];
|
|
@@ -434,35 +435,41 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
434
435
|
});
|
|
435
436
|
exportAliases.push({
|
|
436
437
|
source: target,
|
|
437
|
-
target:
|
|
438
|
+
target: upath.resolve(upath.dirname(target), upath.basename(sourcePath).replace(/\.md$/, '.html')),
|
|
438
439
|
});
|
|
439
440
|
}
|
|
441
|
+
let fallbackTitle;
|
|
440
442
|
const manifestDeclaration = await (async () => {
|
|
441
443
|
if (input.format === 'markdown') {
|
|
442
444
|
// create temporary manifest file
|
|
443
|
-
const manifestPath =
|
|
445
|
+
const manifestPath = upath.resolve(workspaceDir, `${tmpPrefix}${MANIFEST_FILENAME}`);
|
|
444
446
|
await touchTmpFile(manifestPath);
|
|
445
447
|
exportAliases.push({
|
|
446
448
|
source: manifestPath,
|
|
447
|
-
target:
|
|
449
|
+
target: upath.resolve(workspaceDir, MANIFEST_FILENAME),
|
|
448
450
|
});
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
(entries.length === 1 && entries[0].title
|
|
455
|
-
? entries[0].title
|
|
456
|
-
: path.basename(sourcePath)),
|
|
457
|
-
author: cliFlags.author ?? config?.author ?? '',
|
|
458
|
-
},
|
|
459
|
-
};
|
|
451
|
+
fallbackTitle =
|
|
452
|
+
entries.length === 1 && entries[0].title
|
|
453
|
+
? entries[0].title
|
|
454
|
+
: upath.basename(sourcePath);
|
|
455
|
+
return { manifestPath, needToGenerateManifest: true };
|
|
460
456
|
}
|
|
461
457
|
else if (input.format === 'html' || input.format === 'webbook') {
|
|
462
|
-
|
|
458
|
+
const url = isUrlString(input.entry)
|
|
459
|
+
? new URL(input.entry)
|
|
460
|
+
: pathToFileURL(input.entry);
|
|
461
|
+
// Ensures trailing slash or explicit HTML extensions
|
|
462
|
+
if ((url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
463
|
+
!url.pathname.endsWith('/') &&
|
|
464
|
+
!/\.html?$/.test(url.pathname)) {
|
|
465
|
+
url.pathname = `${url.pathname}/`;
|
|
466
|
+
}
|
|
467
|
+
return {
|
|
468
|
+
webbookEntryUrl: url.href,
|
|
469
|
+
};
|
|
463
470
|
}
|
|
464
471
|
else if (input.format === 'pub-manifest') {
|
|
465
|
-
return { manifestPath: input.entry
|
|
472
|
+
return { manifestPath: input.entry };
|
|
466
473
|
}
|
|
467
474
|
else if (input.format === 'epub-opf') {
|
|
468
475
|
return { epubOpfPath: input.entry };
|
|
@@ -481,19 +488,21 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
481
488
|
entries,
|
|
482
489
|
input,
|
|
483
490
|
exportAliases,
|
|
491
|
+
title: title || fallbackTitle,
|
|
492
|
+
author: author,
|
|
484
493
|
};
|
|
485
494
|
}
|
|
486
495
|
async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
487
496
|
debug('entering project config mode');
|
|
488
497
|
const { entryContextDir, workspaceDir, themesDir, themeIndexes, rootThemes, outputs, } = otherConfig;
|
|
489
|
-
const pkgJsonPath =
|
|
498
|
+
const pkgJsonPath = upath.resolve(entryContextDir, 'package.json');
|
|
490
499
|
const pkgJson = fs.existsSync(pkgJsonPath)
|
|
491
500
|
? readJSON(pkgJsonPath)
|
|
492
501
|
: undefined;
|
|
493
502
|
if (pkgJson) {
|
|
494
503
|
debug('located package.json path', pkgJsonPath);
|
|
495
504
|
}
|
|
496
|
-
const autoGeneratedTocPath =
|
|
505
|
+
const autoGeneratedTocPath = upath.resolve(workspaceDir, typeof config?.toc === 'string' ? config.toc : TOC_FILENAME);
|
|
497
506
|
const projectTitle = cliFlags.title ?? config?.title ?? pkgJson?.name;
|
|
498
507
|
const projectAuthor = cliFlags.author ?? config?.author ?? pkgJson?.author;
|
|
499
508
|
function parseEntry(entry) {
|
|
@@ -514,9 +523,9 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
514
523
|
themes,
|
|
515
524
|
};
|
|
516
525
|
}
|
|
517
|
-
const sourcePath =
|
|
518
|
-
const contextEntryPath =
|
|
519
|
-
const targetPath =
|
|
526
|
+
const sourcePath = upath.resolve(entryContextDir, entry.path); // abs
|
|
527
|
+
const contextEntryPath = upath.relative(entryContextDir, sourcePath); // rel
|
|
528
|
+
const targetPath = upath
|
|
520
529
|
.resolve(workspaceDir, contextEntryPath)
|
|
521
530
|
.replace(/\.md$/, '.html');
|
|
522
531
|
if (!isUrlString(sourcePath)) {
|
|
@@ -554,13 +563,13 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
554
563
|
if (!entries.length) {
|
|
555
564
|
throw new Error('The entry fields seems to be empty. Make sure your Vivliostyle configuration.');
|
|
556
565
|
}
|
|
557
|
-
let fallbackProjectTitle
|
|
566
|
+
let fallbackProjectTitle;
|
|
558
567
|
if (!projectTitle) {
|
|
559
568
|
if (entries.length === 1 && entries[0].title) {
|
|
560
569
|
fallbackProjectTitle = entries[0].title;
|
|
561
570
|
}
|
|
562
571
|
else {
|
|
563
|
-
fallbackProjectTitle =
|
|
572
|
+
fallbackProjectTitle = upath.basename(outputs[0].path);
|
|
564
573
|
log(`\n${chalk.yellow('Could not find any appropriate publication title. We set ')}${chalk.bold.yellow(`"${fallbackProjectTitle}"`)}${chalk.yellow(' as a fallback.')}`);
|
|
565
574
|
}
|
|
566
575
|
}
|
|
@@ -577,37 +586,13 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
577
586
|
entries,
|
|
578
587
|
input: {
|
|
579
588
|
format: 'pub-manifest',
|
|
580
|
-
entry:
|
|
589
|
+
entry: upath.join(workspaceDir, MANIFEST_FILENAME),
|
|
581
590
|
},
|
|
582
591
|
exportAliases: [],
|
|
583
|
-
manifestPath:
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
},
|
|
592
|
+
manifestPath: upath.join(workspaceDir, MANIFEST_FILENAME),
|
|
593
|
+
title: projectTitle || fallbackProjectTitle,
|
|
594
|
+
author: projectAuthor,
|
|
595
|
+
needToGenerateManifest: true,
|
|
588
596
|
};
|
|
589
597
|
}
|
|
590
|
-
export function checkUnusedCliFlags(config, cliFlags) {
|
|
591
|
-
const unusedFlags = [];
|
|
592
|
-
if (!config.manifestPath) {
|
|
593
|
-
if (cliFlags.theme) {
|
|
594
|
-
unusedFlags.push('--theme');
|
|
595
|
-
}
|
|
596
|
-
if (cliFlags.title) {
|
|
597
|
-
unusedFlags.push('--title');
|
|
598
|
-
}
|
|
599
|
-
if (cliFlags.author) {
|
|
600
|
-
unusedFlags.push('--author');
|
|
601
|
-
}
|
|
602
|
-
if (cliFlags.language) {
|
|
603
|
-
unusedFlags.push('--language');
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
if (unusedFlags.length) {
|
|
607
|
-
log('\n');
|
|
608
|
-
unusedFlags.forEach((flag) => {
|
|
609
|
-
log(`${chalk.bold.yellow(flag)}${chalk.bold.yellow(` flag seems to be set but the current export setting doesn't support this. This option will be ignored.`)}`);
|
|
610
|
-
});
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
598
|
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/input/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,4 +31,4 @@ export declare const manuscriptMediaTypes: readonly ["text/markdown", "text/html
|
|
|
31
31
|
export type ManuscriptMediaType = typeof manuscriptMediaTypes[number];
|
|
32
32
|
export declare function detectManuscriptMediaType(entry: string): ManuscriptMediaType;
|
|
33
33
|
export {};
|
|
34
|
-
//# sourceMappingURL=input.d.ts.map
|
|
34
|
+
//# sourceMappingURL=input-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-types.d.ts","sourceRoot":"","sources":["../../src/input/input-types.ts"],"names":[],"mappings":"AAGA,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAClD,MAAM,EAAE,CAAC,CAAC;CACX;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,CAAC,UAAU,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAgB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAa,SAAQ,gBAAgB,CAAC,SAAS,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6EAA6E;AAC7E,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4BAA4B;AAC5B,MAAM,WAAW,SAAU,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oCAAoC;AACpC,MAAM,WAAW,YAAa,SAAQ,gBAAgB,CAAC,UAAU,CAAC;IAChE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,YAAY,CAAC;AAEjB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAc5D;AAED,eAAO,MAAM,oBAAoB,kEAIvB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAEtE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAM5E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { lookup as mime } from 'mime-types';
|
|
2
|
-
import
|
|
2
|
+
import { upath } from '../util.js';
|
|
3
3
|
export function detectInputFormat(entry) {
|
|
4
|
-
const lowerCasedExt =
|
|
4
|
+
const lowerCasedExt = upath.extname(entry).toLowerCase();
|
|
5
5
|
if (lowerCasedExt === '.md' || lowerCasedExt === '.markdown') {
|
|
6
6
|
return { format: 'markdown', entry };
|
|
7
7
|
}
|
|
@@ -31,4 +31,4 @@ export function detectManuscriptMediaType(entry) {
|
|
|
31
31
|
}
|
|
32
32
|
throw new Error(`Invalid manuscript type ${mediaType} detected: ${entry}`);
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=input.js.map
|
|
34
|
+
//# sourceMappingURL=input-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-types.js","sourceRoot":"","sources":["../../src/input/input-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA4CnC,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,WAAW,EAAE;QAC5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;KACtC;SAAM,IAAI,aAAa,KAAK,OAAO,IAAI,aAAa,KAAK,SAAS,EAAE;QACnE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;KAC1C;SAAM,IAAI,aAAa,KAAK,OAAO,EAAE;QACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;KAClC;SAAM,IAAI,aAAa,KAAK,MAAM,EAAE;QACnC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;KACtC;SAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACtE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACrC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,eAAe;IACf,WAAW;IACX,uBAAuB;CACf,CAAC;AAGX,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,oBAAoB,CAAC,QAAQ,CAAC,SAAgC,CAAC,EAAE;QACnE,OAAO,SAAgC,CAAC;KACzC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,cAAc,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PublicationManifest } from '../schema/publication.schema.js';
|
|
2
|
+
export declare function exportEpub({ webpubDir, entryHtmlFile, entryContextUrl, manifest, target, epubVersion, }: {
|
|
3
|
+
webpubDir: string;
|
|
4
|
+
entryHtmlFile?: string;
|
|
5
|
+
entryContextUrl?: string;
|
|
6
|
+
manifest: PublicationManifest;
|
|
7
|
+
target: string;
|
|
8
|
+
epubVersion: '3.0';
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=epub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epub.d.ts","sourceRoot":"","sources":["../../src/output/epub.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAKV,mBAAmB,EAEpB,MAAM,iCAAiC,CAAC;AAkFzC,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,aAAa,EACb,eAAe,EACf,QAAQ,EACR,MAAM,EACN,WAAW,GACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;CACpB,iBA0OA"}
|