@vivliostyle/cli 8.0.0 → 8.1.0
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/browser.d.ts.map +1 -1
- package/dist/browser.js +5 -0
- package/dist/browser.js.map +1 -1
- 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 +8 -2
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +27 -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} +24 -13
- package/dist/input/config.d.ts.map +1 -0
- package/dist/{config.js → input/config.js} +105 -89
- 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} +81 -76
- package/dist/processor/compile.js.map +1 -0
- package/dist/processor/html.d.ts +59 -0
- package/dist/processor/html.d.ts.map +1 -0
- package/dist/processor/html.js +294 -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 -16
- 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.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 { COVER_HTML_FILENAME, 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,
|
|
@@ -220,24 +211,24 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
220
211
|
debug('vivliostyle.config.js', config);
|
|
221
212
|
let entryContextDir;
|
|
222
213
|
let workspaceDir;
|
|
223
|
-
if (cliFlags.input && isUrlString(cliFlags.input)) {
|
|
214
|
+
if (cliFlags.input && !config && isUrlString(cliFlags.input)) {
|
|
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.');
|
|
@@ -399,19 +399,19 @@ export async function mergeConfig(cliFlags, config, context) {
|
|
|
399
399
|
async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
400
400
|
debug('entering single entry config mode');
|
|
401
401
|
let sourcePath;
|
|
402
|
-
let workspaceDir;
|
|
403
402
|
let input;
|
|
403
|
+
const title = cliFlags.title ?? config?.title;
|
|
404
|
+
const author = cliFlags.author ?? config?.author;
|
|
405
|
+
const workspaceDir = otherConfig.workspaceDir;
|
|
404
406
|
const entries = [];
|
|
405
407
|
const exportAliases = [];
|
|
406
408
|
const tmpPrefix = `.vs-${Date.now()}.`;
|
|
407
409
|
if (cliFlags.input && isUrlString(cliFlags.input)) {
|
|
408
410
|
sourcePath = cliFlags.input;
|
|
409
|
-
workspaceDir = otherConfig.workspaceDir;
|
|
410
411
|
input = { format: 'webbook', entry: sourcePath };
|
|
411
412
|
}
|
|
412
413
|
else {
|
|
413
|
-
sourcePath =
|
|
414
|
-
workspaceDir = path.dirname(sourcePath);
|
|
414
|
+
sourcePath = upath.resolve(cliFlags.input);
|
|
415
415
|
input = detectInputFormat(sourcePath);
|
|
416
416
|
// Check file exists
|
|
417
417
|
statFileSync(sourcePath);
|
|
@@ -420,8 +420,9 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
420
420
|
// Single input file; create temporary file
|
|
421
421
|
const type = detectManuscriptMediaType(sourcePath);
|
|
422
422
|
const metadata = parseFileMetadata({ type, sourcePath, workspaceDir });
|
|
423
|
-
const
|
|
424
|
-
|
|
423
|
+
const relDir = upath.relative(otherConfig.entryContextDir, upath.dirname(sourcePath));
|
|
424
|
+
const target = upath
|
|
425
|
+
.resolve(workspaceDir, relDir, `${tmpPrefix}${upath.basename(sourcePath)}`)
|
|
425
426
|
.replace(/\.md$/, '.html');
|
|
426
427
|
await touchTmpFile(target);
|
|
427
428
|
const themes = metadata.themes ?? [...otherConfig.rootThemes];
|
|
@@ -435,35 +436,41 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
435
436
|
});
|
|
436
437
|
exportAliases.push({
|
|
437
438
|
source: target,
|
|
438
|
-
target:
|
|
439
|
+
target: upath.resolve(upath.dirname(target), upath.basename(sourcePath).replace(/\.md$/, '.html')),
|
|
439
440
|
});
|
|
440
441
|
}
|
|
442
|
+
let fallbackTitle;
|
|
441
443
|
const manifestDeclaration = await (async () => {
|
|
442
444
|
if (input.format === 'markdown') {
|
|
443
445
|
// create temporary manifest file
|
|
444
|
-
const manifestPath =
|
|
446
|
+
const manifestPath = upath.resolve(workspaceDir, `${tmpPrefix}${MANIFEST_FILENAME}`);
|
|
445
447
|
await touchTmpFile(manifestPath);
|
|
446
448
|
exportAliases.push({
|
|
447
449
|
source: manifestPath,
|
|
448
|
-
target:
|
|
450
|
+
target: upath.resolve(workspaceDir, MANIFEST_FILENAME),
|
|
449
451
|
});
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
(entries.length === 1 && entries[0].title
|
|
456
|
-
? entries[0].title
|
|
457
|
-
: path.basename(sourcePath)),
|
|
458
|
-
author: cliFlags.author ?? config?.author ?? '',
|
|
459
|
-
},
|
|
460
|
-
};
|
|
452
|
+
fallbackTitle =
|
|
453
|
+
entries.length === 1 && entries[0].title
|
|
454
|
+
? entries[0].title
|
|
455
|
+
: upath.basename(sourcePath);
|
|
456
|
+
return { manifestPath, needToGenerateManifest: true };
|
|
461
457
|
}
|
|
462
458
|
else if (input.format === 'html' || input.format === 'webbook') {
|
|
463
|
-
|
|
459
|
+
const url = isUrlString(input.entry)
|
|
460
|
+
? new URL(input.entry)
|
|
461
|
+
: pathToFileURL(input.entry);
|
|
462
|
+
// Ensures trailing slash or explicit HTML extensions
|
|
463
|
+
if ((url.protocol === 'http:' || url.protocol === 'https:') &&
|
|
464
|
+
!url.pathname.endsWith('/') &&
|
|
465
|
+
!/\.html?$/.test(url.pathname)) {
|
|
466
|
+
url.pathname = `${url.pathname}/`;
|
|
467
|
+
}
|
|
468
|
+
return {
|
|
469
|
+
webbookEntryUrl: url.href,
|
|
470
|
+
};
|
|
464
471
|
}
|
|
465
472
|
else if (input.format === 'pub-manifest') {
|
|
466
|
-
return { manifestPath: input.entry
|
|
473
|
+
return { manifestPath: input.entry };
|
|
467
474
|
}
|
|
468
475
|
else if (input.format === 'epub-opf') {
|
|
469
476
|
return { epubOpfPath: input.entry };
|
|
@@ -482,19 +489,22 @@ async function composeSingleInputConfig(otherConfig, cliFlags, config) {
|
|
|
482
489
|
entries,
|
|
483
490
|
input,
|
|
484
491
|
exportAliases,
|
|
492
|
+
title: title || fallbackTitle,
|
|
493
|
+
author: author,
|
|
485
494
|
};
|
|
486
495
|
}
|
|
487
496
|
async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
488
497
|
debug('entering project config mode');
|
|
489
498
|
const { entryContextDir, workspaceDir, themesDir, themeIndexes, rootThemes, outputs, } = otherConfig;
|
|
490
|
-
const pkgJsonPath =
|
|
499
|
+
const pkgJsonPath = upath.resolve(entryContextDir, 'package.json');
|
|
491
500
|
const pkgJson = fs.existsSync(pkgJsonPath)
|
|
492
501
|
? readJSON(pkgJsonPath)
|
|
493
502
|
: undefined;
|
|
494
503
|
if (pkgJson) {
|
|
495
504
|
debug('located package.json path', pkgJsonPath);
|
|
496
505
|
}
|
|
497
|
-
const autoGeneratedTocPath =
|
|
506
|
+
const autoGeneratedTocPath = upath.resolve(workspaceDir, typeof config?.toc === 'string' ? config.toc : TOC_FILENAME);
|
|
507
|
+
const autoGeneratedCoverPah = upath.resolve(workspaceDir, COVER_HTML_FILENAME);
|
|
498
508
|
const projectTitle = cliFlags.title ?? config?.title ?? pkgJson?.name;
|
|
499
509
|
const projectAuthor = cliFlags.author ?? config?.author ?? pkgJson?.author;
|
|
500
510
|
function parseEntry(entry) {
|
|
@@ -515,9 +525,9 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
515
525
|
themes,
|
|
516
526
|
};
|
|
517
527
|
}
|
|
518
|
-
const sourcePath =
|
|
519
|
-
const contextEntryPath =
|
|
520
|
-
const targetPath =
|
|
528
|
+
const sourcePath = upath.resolve(entryContextDir, entry.path); // abs
|
|
529
|
+
const contextEntryPath = upath.relative(entryContextDir, sourcePath); // rel
|
|
530
|
+
const targetPath = upath
|
|
521
531
|
.resolve(workspaceDir, contextEntryPath)
|
|
522
532
|
.replace(/\.md$/, '.html');
|
|
523
533
|
if (!isUrlString(sourcePath)) {
|
|
@@ -555,13 +565,13 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
555
565
|
if (!entries.length) {
|
|
556
566
|
throw new Error('The entry fields seems to be empty. Make sure your Vivliostyle configuration.');
|
|
557
567
|
}
|
|
558
|
-
let fallbackProjectTitle
|
|
568
|
+
let fallbackProjectTitle;
|
|
559
569
|
if (!projectTitle) {
|
|
560
570
|
if (entries.length === 1 && entries[0].title) {
|
|
561
571
|
fallbackProjectTitle = entries[0].title;
|
|
562
572
|
}
|
|
563
573
|
else {
|
|
564
|
-
fallbackProjectTitle =
|
|
574
|
+
fallbackProjectTitle = upath.basename(outputs[0].path);
|
|
565
575
|
log(`\n${chalk.yellow('Could not find any appropriate publication title. We set ')}${chalk.bold.yellow(`"${fallbackProjectTitle}"`)}${chalk.yellow(' as a fallback.')}`);
|
|
566
576
|
}
|
|
567
577
|
}
|
|
@@ -573,19 +583,25 @@ async function composeProjectConfig(otherConfig, cliFlags, config, context) {
|
|
|
573
583
|
themes: [...rootThemes],
|
|
574
584
|
});
|
|
575
585
|
}
|
|
586
|
+
if (config?.cover && !entries.find(({ rel }) => rel === 'cover')) {
|
|
587
|
+
entries.unshift({
|
|
588
|
+
rel: 'cover',
|
|
589
|
+
target: autoGeneratedCoverPah,
|
|
590
|
+
themes: [],
|
|
591
|
+
});
|
|
592
|
+
}
|
|
576
593
|
return {
|
|
577
594
|
...otherConfig,
|
|
578
595
|
entries,
|
|
579
596
|
input: {
|
|
580
597
|
format: 'pub-manifest',
|
|
581
|
-
entry:
|
|
598
|
+
entry: upath.join(workspaceDir, MANIFEST_FILENAME),
|
|
582
599
|
},
|
|
583
600
|
exportAliases: [],
|
|
584
|
-
manifestPath:
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
},
|
|
601
|
+
manifestPath: upath.join(workspaceDir, MANIFEST_FILENAME),
|
|
602
|
+
title: projectTitle || fallbackProjectTitle,
|
|
603
|
+
author: projectAuthor,
|
|
604
|
+
needToGenerateManifest: true,
|
|
589
605
|
};
|
|
590
606
|
}
|
|
591
607
|
export function checkUnusedCliFlags(config, cliFlags) {
|
|
@@ -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"}
|