gutterpress 0.11.17 → 0.11.18-alpha.10
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/api/index.d.ts +1 -1
- package/dist/api/index.js +4 -2
- package/dist/{build-gxy185pv.js → build-2tgs5j4d.js} +4 -4
- package/dist/{cli-zfgvssqz.js → cli-d0cq87s5.js} +1 -1
- package/dist/{cli-a4qtctrw.js → cli-gf1ywzeg.js} +411 -50
- package/dist/{cli-ycbg7mxk.js → cli-ptez7zcc.js} +53 -5
- package/dist/{cli-8nw6d915.js → cli-ytck518d.js} +1 -1
- package/dist/cli.js +12 -12
- package/dist/{doctor-fygmzevd.js → doctor-y4yg51zy.js} +2 -2
- package/dist/engine/compiler/build.d.ts +1 -1
- package/dist/{engine-yf2w9hj7.js → engine-wtnakejg.js} +1 -1
- package/dist/{engine-5d1rpxxq.js → engine-zy6fzs5a.js} +2 -2
- package/dist/{ext-c48s56jm.js → ext-t2sye4as.js} +4 -4
- package/dist/{gutterpress-viewer-ez7k4ha7.js → gutterpress-viewer-k4mpqjh0.js} +406 -14
- package/dist/{index-3k3fyrec.js → index-cf1kanp0.js} +454 -52
- package/dist/{index-vmcfahe2.js → index-jt552wtf.js} +5 -5
- package/dist/{index-09h3n36d.js → index-n8vs6pss.js} +51 -2
- package/dist/index.js +5 -3
- package/dist/lib/markdown/block-names.d.ts +82 -0
- package/dist/lib/markdown/renderer.d.ts +3 -2
- package/dist/lib/markdown/table-align.d.ts +32 -0
- package/dist/lib/presets.d.ts +11 -0
- package/dist/lib/printsafe.d.ts +1 -0
- package/dist/lib/remote-auth/sync.d.ts +21 -0
- package/dist/lib/unknown-classes.d.ts +12 -0
- package/dist/{manifest.schema-gh0jjve9.json → manifest.schema-5pzhscqh.json} +7 -1
- package/dist/{new-a9m2jwyy.js → new-pbd5zrds.js} +4 -4
- package/dist/{preflight-w3tnbtb8.js → preflight-vnkb8tj7.js} +4 -4
- package/dist/preview/file-watcher.d.ts +4 -1
- package/dist/{preview-bridge-8jhd1wpb.js → preview-bridge-evecsh4w.js} +5 -1
- package/dist/{preview-7z8tt0b4.js → preview-g1hp0jt8.js} +4 -4
- package/dist/{preview-interface-c44qk17f.js → preview-interface-2n1d9pbf.js} +77 -1
- package/dist/{preview-shell-xwn84kqr.js → preview-shell-hyp7g158.js} +9 -0
- package/dist/{publish-bbftdxh2.js → publish-vkbmf3tj.js} +4 -4
- package/dist/render.js +199 -28
- package/dist/schema/manifest.types.d.ts +11 -0
- package/dist/{validate-x1ha1gqj.js → validate-q1xj2qxn.js} +4 -4
- package/package.json +1 -1
|
@@ -1116,22 +1116,22 @@ import { fileURLToPath } from "node:url";
|
|
|
1116
1116
|
var favicon_default = "./favicon-272ga6y0.ico";
|
|
1117
1117
|
|
|
1118
1118
|
// src/assets/manifest.schema.json
|
|
1119
|
-
var manifest_schema_default = "./manifest.schema-
|
|
1119
|
+
var manifest_schema_default = "./manifest.schema-5pzhscqh.json";
|
|
1120
1120
|
|
|
1121
1121
|
// src/assets/preview/scripts/preview-interface.js
|
|
1122
|
-
var preview_interface_default = "./preview-interface-
|
|
1122
|
+
var preview_interface_default = "./preview-interface-2n1d9pbf.js";
|
|
1123
1123
|
|
|
1124
1124
|
// src/assets/preview/scripts/preview-bridge.js
|
|
1125
|
-
var preview_bridge_default = "./preview-bridge-
|
|
1125
|
+
var preview_bridge_default = "./preview-bridge-evecsh4w.js";
|
|
1126
1126
|
|
|
1127
1127
|
// src/assets/preview/scripts/preview-shell.js
|
|
1128
|
-
var preview_shell_default = "./preview-shell-
|
|
1128
|
+
var preview_shell_default = "./preview-shell-hyp7g158.js";
|
|
1129
1129
|
|
|
1130
1130
|
// profiles/CGATS21_CRPC1.icc
|
|
1131
1131
|
var CGATS21_CRPC1_default = "./CGATS21_CRPC1-g0e3k7kr.icc";
|
|
1132
1132
|
|
|
1133
1133
|
// src/assets/engine/gutterpress-viewer.js
|
|
1134
|
-
var gutterpress_viewer_default = "./gutterpress-viewer-
|
|
1134
|
+
var gutterpress_viewer_default = "./gutterpress-viewer-k4mpqjh0.js";
|
|
1135
1135
|
|
|
1136
1136
|
// src/assets/engine/gutterpress-agent.js
|
|
1137
1137
|
var gutterpress_agent_default = "./gutterpress-agent-cazqstr1.js";
|
|
@@ -2230,6 +2230,54 @@ ${mapCss}`;
|
|
|
2230
2230
|
if (multicol.length)
|
|
2231
2231
|
log(`audit: ${multicol.length} fragmenting multicol warning(s)`);
|
|
2232
2232
|
}
|
|
2233
|
+
{
|
|
2234
|
+
const missing = JSON.parse(await page.evaluate(`(() => {
|
|
2235
|
+
const words = new Map();
|
|
2236
|
+
const styled = new Map();
|
|
2237
|
+
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
|
|
2238
|
+
for (let n = walker.nextNode(); n; n = walker.nextNode()) {
|
|
2239
|
+
const found = n.data.match(/\\p{L}{7,}/gu);
|
|
2240
|
+
const el = n.parentElement;
|
|
2241
|
+
if (!found || !el) continue;
|
|
2242
|
+
if (!styled.has(el)) styled.set(el, getComputedStyle(el).hyphens === "auto");
|
|
2243
|
+
if (!styled.get(el)) continue;
|
|
2244
|
+
const host = el.closest("[lang]");
|
|
2245
|
+
const lang = host ? host.getAttribute("lang") : null;
|
|
2246
|
+
if (!words.has(lang)) words.set(lang, new Set());
|
|
2247
|
+
const set = words.get(lang);
|
|
2248
|
+
for (const w of found) if (set.size < 200) set.add(w);
|
|
2249
|
+
}
|
|
2250
|
+
if (!words.size) return "[]";
|
|
2251
|
+
const box = document.createElement("div");
|
|
2252
|
+
box.style.cssText = "position:absolute;left:-10000px;top:0;visibility:hidden";
|
|
2253
|
+
const probes = [];
|
|
2254
|
+
for (const [lang, set] of words) {
|
|
2255
|
+
for (const w of [...set].sort((a, b) => b.length - a.length).slice(0, 8)) {
|
|
2256
|
+
const pair = ["auto", "manual"].map((h) => {
|
|
2257
|
+
const d = document.createElement("div");
|
|
2258
|
+
if (lang !== null) d.setAttribute("lang", lang);
|
|
2259
|
+
d.style.cssText = "width:1px;font:16px/16px serif;word-break:normal;overflow-wrap:normal;hyphens:" + h;
|
|
2260
|
+
d.textContent = w;
|
|
2261
|
+
box.appendChild(d);
|
|
2262
|
+
return d;
|
|
2263
|
+
});
|
|
2264
|
+
probes.push({ lang, pair });
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
document.body.appendChild(box);
|
|
2268
|
+
const hyphenates = new Set();
|
|
2269
|
+
for (const { lang, pair } of probes)
|
|
2270
|
+
if (pair[0].offsetHeight > pair[1].offsetHeight) hyphenates.add(lang);
|
|
2271
|
+
box.remove();
|
|
2272
|
+
const ua = navigator.userAgent;
|
|
2273
|
+
const browser = (/Electron\\/[\\d.]+/.exec(ua) || /(?:HeadlessChrome|Chrome)\\/[\\d.]+/.exec(ua) || [ua])[0];
|
|
2274
|
+
return JSON.stringify([...words.keys()].filter((l) => !hyphenates.has(l)).map((lang) => ({ lang, browser })));
|
|
2275
|
+
})()`));
|
|
2276
|
+
for (const { lang, browser: browser2 } of missing)
|
|
2277
|
+
diagnose("engine.hyphenation.unsupported", `Your stylesheets set hyphens: auto, but the browser making this PDF (${browser2}) has no hyphenation dictionary for ${lang ? `"${lang}"` : "the document's language"}, so no word is hyphenated automatically and lines (and pages) break differently than in a browser that has one. Build in a browser that hyphenates, such as Chrome (which the gutterpress CLI uses), or add soft hyphens (­) where a word may break.`);
|
|
2278
|
+
if (missing.length)
|
|
2279
|
+
log(`audit: hyphenation unavailable for ${missing.length} language(s)`);
|
|
2280
|
+
}
|
|
2233
2281
|
if (bytes === undefined) {
|
|
2234
2282
|
prints++;
|
|
2235
2283
|
bytes = await printPdf(page);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
// package.json
|
|
5
5
|
var package_default = {
|
|
6
6
|
name: "gutterpress",
|
|
7
|
-
version: "0.11.
|
|
7
|
+
version: "0.11.18-alpha.10",
|
|
8
8
|
description: "Markdown-to-PDF converter for professional print layout using a native Chromium print engine and Ghostscript.",
|
|
9
9
|
author: "itlackey",
|
|
10
10
|
license: "MPL-2.0",
|
package/dist/cli.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
UsageError,
|
|
7
7
|
package_default,
|
|
8
8
|
rejectUnknownFlags
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-ytck518d.js";
|
|
10
10
|
import {
|
|
11
11
|
EXIT_CODES
|
|
12
12
|
} from "./cli-46ycxe6r.js";
|
|
@@ -18,14 +18,14 @@ import {
|
|
|
18
18
|
import { defineCommand, parseArgs, runMain } from "citty";
|
|
19
19
|
import { statSync } from "node:fs";
|
|
20
20
|
var SUBCOMMANDS = {
|
|
21
|
-
new: () => import("./new-
|
|
22
|
-
preview: () => import("./preview-
|
|
23
|
-
build: () => import("./build-
|
|
24
|
-
publish: () => import("./publish-
|
|
25
|
-
validate: () => import("./validate-
|
|
26
|
-
preflight: () => import("./preflight-
|
|
27
|
-
doctor: () => import("./doctor-
|
|
28
|
-
ext: () => import("./ext-
|
|
21
|
+
new: () => import("./new-pbd5zrds.js").then((m) => m.default),
|
|
22
|
+
preview: () => import("./preview-g1hp0jt8.js").then((m) => m.default),
|
|
23
|
+
build: () => import("./build-2tgs5j4d.js").then((m) => m.default),
|
|
24
|
+
publish: () => import("./publish-vkbmf3tj.js").then((m) => m.default),
|
|
25
|
+
validate: () => import("./validate-q1xj2qxn.js").then((m) => m.default),
|
|
26
|
+
preflight: () => import("./preflight-vnkb8tj7.js").then((m) => m.default),
|
|
27
|
+
doctor: () => import("./doctor-y4yg51zy.js").then((m) => m.default),
|
|
28
|
+
ext: () => import("./ext-t2sye4as.js").then((m) => m.default)
|
|
29
29
|
};
|
|
30
30
|
var VERSION = package_default.version;
|
|
31
31
|
var main = defineCommand({
|
|
@@ -50,7 +50,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
50
50
|
const [command, ...commandArgs] = rawArgs;
|
|
51
51
|
try {
|
|
52
52
|
if (command === "new") {
|
|
53
|
-
const { newArgs } = await import("./new-
|
|
53
|
+
const { newArgs } = await import("./new-pbd5zrds.js");
|
|
54
54
|
rejectUnknownFlags(commandArgs, newArgs, "new");
|
|
55
55
|
const parsed = parseArgs(commandArgs, {
|
|
56
56
|
...newArgs,
|
|
@@ -62,7 +62,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
if (command === "preflight") {
|
|
65
|
-
const { preflightArgs } = await import("./preflight-
|
|
65
|
+
const { preflightArgs } = await import("./preflight-vnkb8tj7.js");
|
|
66
66
|
rejectUnknownFlags(commandArgs, preflightArgs, "preflight");
|
|
67
67
|
const parsed = parseArgs(commandArgs, {
|
|
68
68
|
...preflightArgs,
|
|
@@ -82,7 +82,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
82
82
|
}
|
|
83
83
|
if (subcommand.startsWith("-"))
|
|
84
84
|
return;
|
|
85
|
-
const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-
|
|
85
|
+
const { EXT_SUBCOMMANDS, extAddArgs, extRemoveArgs, extEnableArgs, extDisableArgs } = await import("./ext-t2sye4as.js");
|
|
86
86
|
if (!EXT_SUBCOMMANDS.includes(subcommand)) {
|
|
87
87
|
throw new UsageError(`gutterpress ext: unknown command "${subcommand}"`);
|
|
88
88
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSystemDiagnostics,
|
|
3
3
|
log
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-d0cq87s5.js";
|
|
5
5
|
import {
|
|
6
6
|
UsageError,
|
|
7
7
|
rejectExtraPositionals,
|
|
8
8
|
rejectUnknownFlags
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-ytck518d.js";
|
|
10
10
|
import"./cli-46ycxe6r.js";
|
|
11
11
|
import"./cli-7fkhgtfn.js";
|
|
12
12
|
import"./cli-37x76zdn.js";
|
|
@@ -8,7 +8,7 @@ import { type PostprocessResult } from "./postprocess.ts";
|
|
|
8
8
|
* set is closed here so a surface's label table can be asserted complete
|
|
9
9
|
* against it rather than drifting silently as checks are added.
|
|
10
10
|
*/
|
|
11
|
-
export type BuildDiagnosticCode = "engine.width.overflow" | "engine.width.intrinsic" | "engine.xref.broken" | "engine.abspos.leak" | "engine.layer.trapped" | "engine.multicol.dead-column" | "engine.content.overheight" | "engine.image.low-dpi" | "engine.flush.margin-box" | "engine.page-background.unreferenced";
|
|
11
|
+
export type BuildDiagnosticCode = "engine.width.overflow" | "engine.width.intrinsic" | "engine.xref.broken" | "engine.abspos.leak" | "engine.layer.trapped" | "engine.multicol.dead-column" | "engine.content.overheight" | "engine.image.low-dpi" | "engine.flush.margin-box" | "engine.page-background.unreferenced" | "engine.hyphenation.unsupported";
|
|
12
12
|
export declare const BUILD_DIAGNOSTIC_CODES: readonly BuildDiagnosticCode[];
|
|
13
13
|
export interface BuildDiagnostic {
|
|
14
14
|
code: BuildDiagnosticCode;
|
|
@@ -12,17 +12,17 @@ import {
|
|
|
12
12
|
searchNpmExtensions,
|
|
13
13
|
setExtensionEnabled,
|
|
14
14
|
updateExtensions
|
|
15
|
-
} from "./cli-
|
|
16
|
-
import"./cli-
|
|
15
|
+
} from "./cli-gf1ywzeg.js";
|
|
16
|
+
import"./cli-d0cq87s5.js";
|
|
17
17
|
import {
|
|
18
18
|
UsageError,
|
|
19
19
|
exitForUsage,
|
|
20
20
|
rejectExtraPositionals,
|
|
21
21
|
rejectUnknownFlags,
|
|
22
22
|
resolveProjectDir
|
|
23
|
-
} from "./cli-
|
|
23
|
+
} from "./cli-ytck518d.js";
|
|
24
24
|
import"./cli-ht1bcqdd.js";
|
|
25
|
-
import"./cli-
|
|
25
|
+
import"./cli-ptez7zcc.js";
|
|
26
26
|
import {
|
|
27
27
|
EXIT_CODES
|
|
28
28
|
} from "./cli-46ycxe6r.js";
|