gutterpress 0.11.23-alpha.3 → 0.11.23-alpha.4
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 +4 -6
- package/dist/{README-8db7btxb.md → README-syg2hn83.md} +1 -1
- package/dist/api/index.js +5 -5
- package/dist/{build-m78jcpf7.js → build-c48eer6f.js} +8 -8
- package/dist/checks/asset/extensions.d.ts +1 -1
- package/dist/checks/asset/index.d.ts +0 -1
- package/dist/checks/policy.d.ts +5 -4
- package/dist/checks/source/config-file.d.ts +9 -6
- package/dist/checks/source/dangling-links.d.ts +1 -1
- package/dist/checks/types.d.ts +2 -2
- package/dist/{cli-xsrffqzt.js → cli-54xt7pjg.js} +8 -8
- package/dist/{cli-2ppw6q9v.js → cli-5crpmz42.js} +80 -1
- package/dist/{cli-1h17ktsg.js → cli-93mkaw6v.js} +96 -209
- package/dist/{cli-n2tsxqpn.js → cli-d9mm3vvh.js} +7 -2
- package/dist/{cli-5jzyw06s.js → cli-gnpea9dx.js} +1 -1
- package/dist/{cli-s6djx4ma.js → cli-pspjxnc8.js} +1 -1
- package/dist/{cli-t8be9yeb.js → cli-rqh295j9.js} +12 -7
- package/dist/{cli-h4x81x97.js → cli-y6d1arem.js} +207 -142
- package/dist/cli.js +12 -12
- package/dist/{doctor-j71jqce3.js → doctor-ptb346k8.js} +4 -3
- package/dist/{engine-m4y10shc.js → engine-4rzdx6af.js} +1 -1
- package/dist/{engine-1r6q80tq.js → engine-6txhxmmv.js} +2 -2
- package/dist/{ext-fq2hg9va.js → ext-gy8szg3x.js} +8 -8
- package/dist/{extension-restore-9dh7c4tp.js → extension-restore-dymzcasz.js} +2 -2
- package/dist/{extension-restore-tmxtzkm0.js → extension-restore-m8tj43e7.js} +4 -4
- package/dist/{index-2ppw6q9v.js → index-5crpmz42.js} +80 -1
- package/dist/{index-nedd07bk.js → index-5kh4c78h.js} +8 -8
- package/dist/{index-0wee4408.js → index-8ywkd2sv.js} +12 -7
- package/dist/{index-prqvz3xm.js → index-ea94zbq4.js} +132 -228
- package/dist/{index-7pck1q9c.js → index-kaks3mm2.js} +206 -141
- package/dist/{index-nvmf22rt.js → index-yc3xj266.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/lib/build-preflight.d.ts +4 -10
- package/dist/lib/build-runner.d.ts +1 -1
- package/dist/lib/ghostscript.d.ts +5 -2
- package/dist/lib/lint-rules.d.ts +5 -1
- package/dist/lib/manifest-config.d.ts +3 -2
- package/dist/lib/manifest-old-spellings.d.ts +64 -0
- package/dist/lib/markdown/chapter-id.d.ts +1 -1
- package/dist/lib/markdown/index.d.ts +1 -1
- package/dist/lib/markdown/table.d.ts +5 -3
- package/dist/lib/page-size.d.ts +14 -9
- package/dist/lib/pdf-inspect.d.ts +27 -0
- package/dist/lib/presets.d.ts +10 -8
- package/dist/lib/printsafe.d.ts +1 -1
- package/dist/lib/project-scaffold.d.ts +1 -1
- package/dist/lib/remote-auth/sync-messages.d.ts +2 -2
- package/dist/lib/targets.d.ts +4 -4
- package/dist/lib/validation-exec.d.ts +4 -4
- package/dist/{manifest-my7mdv8j.yaml → manifest-2kc56wvw.yaml} +3 -4
- package/dist/{manifest-8afhrk30.yaml → manifest-41ddzm13.yaml} +3 -4
- package/dist/{manifest-gf13sjp8.yaml → manifest-79zsgkpn.yaml} +3 -4
- package/dist/{manifest-d4f9q79e.yaml → manifest-sqzm4681.yaml} +3 -4
- package/dist/{manifest.schema-650pe0d1.json → manifest.schema-w86c1xw1.json} +19 -309
- package/dist/{new-s4zcaepg.js → new-t2t28ccb.js} +9 -15
- package/dist/{page-rules-fj09xct5.css → page-rules-ytj9p04v.css} +1 -1
- package/dist/{pdf-inspect-wnw4za71.js → pdf-inspect-b3mf81ex.js} +3 -1
- package/dist/{plugins-80emnf31.js → plugins-fec8t2bh.js} +1 -1
- package/dist/{plugins-4vaf27n9.js → plugins-sqa4msdk.js} +3 -3
- package/dist/{preflight-c7w1xdn3.js → preflight-srq8fktp.js} +8 -8
- package/dist/preview/file-watcher.d.ts +1 -3
- package/dist/{preview-mzytcwyk.js → preview-zsp9hstd.js} +8 -8
- package/dist/{publish-fez14ad4.js → publish-hhy31gr9.js} +8 -8
- package/dist/render.js +6 -1
- package/dist/schema/manifest.types.d.ts +40 -107
- package/dist/{tokens-ye64p899.css → tokens-n82t4k9h.css} +11 -4
- package/dist/{validate-p2chr6hr.js → validate-r9jdz85h.js} +8 -8
- package/package.json +1 -1
- package/dist/checks/asset/approved-fonts.d.ts +0 -3
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The manifest spellings 0.11.23 replaced, read for this release only so a
|
|
3
|
+
* book written for 0.11.22 still builds. Every old key found is translated
|
|
4
|
+
* to its new spelling (or dropped, when nothing replaces it) and named in ONE
|
|
5
|
+
* notice. Delete this module, and its call in `loadManifestWithPath`, in the
|
|
6
|
+
* release after 0.11.23.
|
|
7
|
+
*
|
|
8
|
+
* source.files -> chapters
|
|
9
|
+
* validate.checks, lint.rules -> checks (off | on | info | warn | error)
|
|
10
|
+
* validate.source.<tool>: false -> checks: { source.<tool>: off }
|
|
11
|
+
* lint.enabled: false -> checks: { source.stylelint: off }
|
|
12
|
+
* validate.assets.allowAlpha,
|
|
13
|
+
* validate.assets.requireFontLicense,
|
|
14
|
+
* validate.pdf.requireBookmarks,
|
|
15
|
+
* validate.pdf.requireTocLinks,
|
|
16
|
+
* validate.pdf.requireBleed,
|
|
17
|
+
* validate.pdf.forbidTransparency -> the matching check, on or off
|
|
18
|
+
* validate.source.<tool>: <path> -> dropped: the config file is found by
|
|
19
|
+
* its usual name in the book's folder
|
|
20
|
+
* or a folder above it
|
|
21
|
+
* ink.*, page.tolerance,
|
|
22
|
+
* validate thresholds,
|
|
23
|
+
* validate.enabled, lint.configPath,
|
|
24
|
+
* and the keys
|
|
25
|
+
* 0.11.22 already ignored -> dropped: the preset and the publish
|
|
26
|
+
* target set the thresholds
|
|
27
|
+
*/
|
|
28
|
+
import type { CheckLevelInput, GutterpressManifest } from "../schema/manifest.types";
|
|
29
|
+
type OldCheckEntry = boolean | {
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
severity?: string;
|
|
32
|
+
options?: unknown;
|
|
33
|
+
};
|
|
34
|
+
/** The keys a pre-0.11.23 manifest may carry. */
|
|
35
|
+
export interface OldSpellings {
|
|
36
|
+
source?: {
|
|
37
|
+
files?: string[] | null;
|
|
38
|
+
assets?: unknown;
|
|
39
|
+
} | null;
|
|
40
|
+
lint?: {
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
configPath?: string | null;
|
|
43
|
+
rules?: Record<string, CheckLevelInput>;
|
|
44
|
+
} | null;
|
|
45
|
+
validate?: {
|
|
46
|
+
enabled?: boolean;
|
|
47
|
+
checks?: Record<string, OldCheckEntry>;
|
|
48
|
+
source?: Record<string, unknown>;
|
|
49
|
+
assets?: Record<string, unknown>;
|
|
50
|
+
pdf?: Record<string, unknown>;
|
|
51
|
+
heuristics?: Record<string, unknown>;
|
|
52
|
+
} | null;
|
|
53
|
+
ink?: unknown;
|
|
54
|
+
page?: GutterpressManifest["page"] & {
|
|
55
|
+
tolerance?: unknown;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Translate a parsed manifest's old spellings to the current ones. A key
|
|
60
|
+
* written both ways keeps the new spelling. Throws for `source.assets`,
|
|
61
|
+
* removed before 0.11.23 with an actionable error.
|
|
62
|
+
*/
|
|
63
|
+
export declare function readOldSpellings(raw: GutterpressManifest & OldSpellings): GutterpressManifest;
|
|
64
|
+
export {};
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* - the desktop's editor↔preview sync scoping
|
|
14
14
|
* (packages/desktop +page.svelte editorChapter)
|
|
15
15
|
*
|
|
16
|
-
* WHY: manifest `
|
|
16
|
+
* WHY: manifest `chapters` entries are author-written and arrive in many
|
|
17
17
|
* spellings (`./chapters/03.md`, `chapters\03.md` on Windows, `chapters//03.md`),
|
|
18
18
|
* while the watcher broadcasts `path.relative(inputPath, file)`. Before this
|
|
19
19
|
* helper the build tagged the manifest string VERBATIM, so any `./`-prefixed
|
|
@@ -9,7 +9,7 @@ export type { LayoutWarning } from "./assemble";
|
|
|
9
9
|
* resolver — markdown's counterpart to `resolveActiveStyles` (style-resolver.ts).
|
|
10
10
|
* Both `renderChapters` below AND validation (validation-exec.ts) call this,
|
|
11
11
|
* so what gets checked is always what gets rendered:
|
|
12
|
-
* 1. `configuredFiles` (the manifest `
|
|
12
|
+
* 1. `configuredFiles` (the manifest `chapters` list), if it has entries,
|
|
13
13
|
* in that order; else
|
|
14
14
|
* 2. every `.md` file directly inside `inputDir` — NOT recursive, since a
|
|
15
15
|
* book's chapters live at the project root by convention — alphabetically.
|
|
@@ -11,9 +11,11 @@ import type MarkdownIt from "markdown-it";
|
|
|
11
11
|
* or a formula splits the cell, and the cells past the header's count
|
|
12
12
|
* are silently dropped. Here an inline span is opaque to the split: a
|
|
13
13
|
* code span always, and a `$…$` formula when the math feature is on
|
|
14
|
-
* (math.ts re-registers this rule with its own scanner). `\|`
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* (math.ts re-registers this rule with its own scanner). `\|` escapes
|
|
15
|
+
* a pipe in plain cell text and, as on GitHub, inside a code span (the
|
|
16
|
+
* GFM spec's "including inside other inline spans"), so a table that
|
|
17
|
+
* lints clean for markdownlint's MD056 prints `|`, not `\|`; a formula's
|
|
18
|
+
* text is not touched, so `\|` there is LaTeX's own `\|`.
|
|
17
19
|
* - a row with MORE cells than the header is reported
|
|
18
20
|
* (`table_extra_cells` on `env.layoutWarnings`, the channel Gutterpress's
|
|
19
21
|
* marker parser uses) instead of losing them without a word.
|
package/dist/lib/page-size.d.ts
CHANGED
|
@@ -10,8 +10,6 @@ export interface CustomPageOptions {
|
|
|
10
10
|
width: number;
|
|
11
11
|
/** Trim height in points (72pt = 1in). */
|
|
12
12
|
height: number;
|
|
13
|
-
/** Allowed deviation in points when validating a built PDF. Default 0.5. */
|
|
14
|
-
tolerance?: number;
|
|
15
13
|
}
|
|
16
14
|
/** A page size in points. */
|
|
17
15
|
export interface PageSizePoints {
|
|
@@ -31,7 +29,8 @@ export interface PageSizeChoice {
|
|
|
31
29
|
*/
|
|
32
30
|
export interface PageSetupChange {
|
|
33
31
|
size?: PageSizeChoice;
|
|
34
|
-
margins
|
|
32
|
+
/** New margins, or null to remove `page.margin` so the stylesheets' (or the default) apply again. */
|
|
33
|
+
margins?: PageMargin | null;
|
|
35
34
|
}
|
|
36
35
|
/** A book's page geometry as currently recorded, read back for the settings UI. */
|
|
37
36
|
export interface PageSetup {
|
|
@@ -45,16 +44,21 @@ export interface PageSetup {
|
|
|
45
44
|
margins: PageMargin;
|
|
46
45
|
/** Where `margins` come from: the manifest's `page.margin` (the author's own), a stylesheet's `@page` (a look's design), or the engine's 1in default. */
|
|
47
46
|
marginsFrom: "manifest" | "stylesheet" | "default";
|
|
47
|
+
/** What the book prints with without `page.margin`: a stylesheet's `@page` margins or the default. Equals `marginsFrom` unless the manifest sets margins. */
|
|
48
|
+
fallbackMarginsFrom: "stylesheet" | "default";
|
|
49
|
+
/** True when `preset:` is `dtrpg` or `book` and `page.width`/`height` override its size: Details shows the preset, and choosing a size there replaces the override. */
|
|
50
|
+
presetSizeOverridden: boolean;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
|
-
* Write the manifest's `page:` bounds. `tolerance`
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* that is not a map is replaced.
|
|
53
|
+
* Write the manifest's `page:` bounds. A `tolerance` an older book carries
|
|
54
|
+
* goes (the preset sets it); the block's other keys stay as written; a
|
|
55
|
+
* `page:` that is not a map is replaced.
|
|
54
56
|
*/
|
|
55
57
|
export declare function writePageBounds(doc: Document, page: CustomPageOptions): void;
|
|
56
58
|
/** Remove the bounds a preset owns and nothing else; a `page:` left empty goes too. */
|
|
57
59
|
export declare function deletePageBounds(doc: Document): void;
|
|
60
|
+
/** Remove the manifest's `page.margin` and nothing else; a `page:` left empty goes too. */
|
|
61
|
+
export declare function deletePageMargin(doc: Document): void;
|
|
58
62
|
/** Write the manifest's `page.margin`, all four edges; the block's other keys stay as written. */
|
|
59
63
|
export declare function writePageMargin(doc: Document, margin: PageMargin): void;
|
|
60
64
|
/** A positive point value at `keyPath` in the manifest, or undefined. */
|
|
@@ -66,9 +70,10 @@ export declare function readPageSetup(projectDir: string): Promise<PageSetup>;
|
|
|
66
70
|
/**
|
|
67
71
|
* Change a book's page geometry in the manifest. The size mirrors what the
|
|
68
72
|
* wizard records — `dtrpg` / `book` carry their own bounds (the `page:` block's
|
|
69
|
-
* width
|
|
73
|
+
* width and height are removed so they cannot shadow them; its
|
|
70
74
|
* other keys stay), `custom` records the typed trim. The margins go to
|
|
71
75
|
* `page.margin`, validated against the size being written, else the recorded
|
|
72
|
-
* one. Nothing is written unless the
|
|
76
|
+
* one; `margins: null` removes `page.margin`. Nothing is written unless the
|
|
77
|
+
* whole change validates.
|
|
73
78
|
*/
|
|
74
79
|
export declare function setPageSetup(projectDir: string, change: PageSetupChange): Promise<PageSetup>;
|
|
@@ -191,6 +191,33 @@ export type UnsplittableReason = "text-transparency" | "type3-font" | "text-patt
|
|
|
191
191
|
* XObject is an implicit save/restore).
|
|
192
192
|
*/
|
|
193
193
|
export declare function unsplittableTextReasons(pdfBytes: Uint8Array, pages?: number[]): Promise<Map<number, UnsplittableReason>>;
|
|
194
|
+
/**
|
|
195
|
+
* Of `pages` (1-based), those on which a shading pattern paints a visible
|
|
196
|
+
* area: a path filled with a `/Pattern` fill colour, or a `sh`, whose box is
|
|
197
|
+
* at least {@link SLIVER_PT} wide and tall once the clip in force is applied.
|
|
198
|
+
* Text shown in a shading pattern, a stroke with one, and a `sh` under an
|
|
199
|
+
* unbounded clip are not sized here and count as visible.
|
|
200
|
+
*
|
|
201
|
+
* The one thing this excludes (#438): a box that starts exactly on a page
|
|
202
|
+
* break and whose ink overflow (a `box-shadow` blur, an `outline`) reaches
|
|
203
|
+
* above its top edge. Chromium paints it into the PREVIOUS page as well — the
|
|
204
|
+
* whole background, clipped to that page's content box — so a repeating or
|
|
205
|
+
* conic gradient on such a box also sits, as a sliver, in the resources and
|
|
206
|
+
* content of the page before it. Its clipped area is empty in exact
|
|
207
|
+
* arithmetic (under 0.01pt when the page's content height is not a whole
|
|
208
|
+
* pixel); a RIP under the any-part-of-pixel rule renders one device row of it.
|
|
209
|
+
* Measured on the ghostscript.flatten fixture with its 1in margins: page 3's
|
|
210
|
+
* content fills page 4's 636x56px gradient box at y = 738pt, the clip's own
|
|
211
|
+
* bottom edge, and a 300dpi raster of page 3 has exactly one non-white row.
|
|
212
|
+
*
|
|
213
|
+
* Walks PDF.js's operator list as {@link unsplittableTextReasons} does, with
|
|
214
|
+
* the CTM and the clip's bounding box tracked per save/restore (a form
|
|
215
|
+
* XObject is an implicit save/restore under its `/Matrix`, inside its
|
|
216
|
+
* `/BBox`). PDF.js reports `W`/`W*` as a `clip`/`eoClip` op ahead of the
|
|
217
|
+
* path it applies to, and every path as `constructPath` with its painting
|
|
218
|
+
* operator and its bounding box.
|
|
219
|
+
*/
|
|
220
|
+
export declare function pagesWithVisibleShadingPaints(pdfBytes: Uint8Array, pages: number[]): Promise<number[]>;
|
|
194
221
|
/**
|
|
195
222
|
* Does page `pageNum` (1-based) paint anything at all? False for a page with
|
|
196
223
|
* no content and for one whose operators only set state or clip. A path op
|
package/dist/lib/presets.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ import type { ResolvedConfig } from "../schema/manifest.types";
|
|
|
5
5
|
* book of this kind validates against when the manifest lists none. Where
|
|
6
6
|
* the book is PUBLISHED is a separate concern — see ./targets.ts.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* (resolveConfig's mergeShape; precedence cli > manifest > target >
|
|
8
|
+
* Geometry, build and print values are overridable from the manifest, leaf
|
|
9
|
+
* by leaf (resolveConfig's mergeShape; precedence cli > manifest > target >
|
|
10
|
+
* preset). The check thresholds (`ink`, `validate`) are the preset's and the
|
|
11
|
+
* target's alone; a book changes a check's level in `checks:`.
|
|
10
12
|
*/
|
|
11
13
|
export interface VendorPreset extends Omit<ResolvedConfig, "title" | "authors" | "language" | "preset" | "targets" | "page"> {
|
|
12
14
|
/** This preset's id: what the manifest's `preset:` names and a resolved config reports. */
|
|
@@ -43,16 +45,16 @@ export declare const DTRPG_PRESET: VendorPreset;
|
|
|
43
45
|
* - `page`: 6in x 9in (432 x 648pt) — the common generic trade paperback trim.
|
|
44
46
|
* Authors targeting a different size still set `page.width`/`page.height`
|
|
45
47
|
* directly; this is a starting point, not a lock-in.
|
|
46
|
-
* - `ink.maxTac
|
|
48
|
+
* - `ink.maxTac` 400 — 400% is the physical ceiling for 4-color process ink
|
|
47
49
|
* (100% each of C+M+Y+K), so `pdf.print.ink-coverage` effectively never
|
|
48
50
|
* fires unless the author opts into a real vendor limit.
|
|
49
|
-
* - `
|
|
51
|
+
* - `checks`: keeps the generic, vendor-agnostic PDF health checks
|
|
50
52
|
* (`pdf.structure.qpdf` parses/traverses, `pdf.print.embedded-fonts` are
|
|
51
|
-
* embedded) but
|
|
53
|
+
* embedded) but switches off `pdf.print.pdfx-markers` /
|
|
52
54
|
* `pdf.print.pdfx-metadata` — those assert PDF/X OutputIntent/DOCINFO
|
|
53
|
-
* structure, which only applies to a PDF/X build (`--format pdfx`)
|
|
54
|
-
* -
|
|
55
|
-
* PDF/
|
|
55
|
+
* structure, which only applies to a PDF/X build (`--format pdfx`) — and
|
|
56
|
+
* the transparency and alpha-channel checks: PDF/X forbids both; a plain
|
|
57
|
+
* PDF/HTML book has no such restriction.
|
|
56
58
|
*/
|
|
57
59
|
export declare const BOOK_PRESET: VendorPreset;
|
|
58
60
|
/**
|
package/dist/lib/printsafe.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface PrintSafeWarning {
|
|
|
12
12
|
column: number;
|
|
13
13
|
}
|
|
14
14
|
export interface CheckCssOptions {
|
|
15
|
-
/** The
|
|
15
|
+
/** The book's `checks` levels: `off` drops a rule, `warn`/`error` set its severity. */
|
|
16
16
|
rules?: Readonly<Record<string, unknown>>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -134,7 +134,7 @@ export interface AdoptFolderOptions {
|
|
|
134
134
|
/**
|
|
135
135
|
* Adopt an EXISTING folder as a gutterpress project, in place (no new subfolder).
|
|
136
136
|
* Writes a `manifest.yaml` (using the folder's existing top-level `.md` files as
|
|
137
|
-
* `
|
|
137
|
+
* `chapters`, or scaffolding a `chapter-01.md` when there are none), copies
|
|
138
138
|
* a starter `styles/book.css`, ensures `dist/` and `extensions/npm/` are gitignored
|
|
139
139
|
* (see `ensureProjectGitignore`), and optionally initialises local version history.
|
|
140
140
|
*
|
|
@@ -8,7 +8,7 @@ export declare const MSG_UP_TO_DATE = "Everything is in sync.";
|
|
|
8
8
|
export declare const MSG_UP_TO_DATE_PULLED = "Everything is in sync. The latest online changes were downloaded to this computer.";
|
|
9
9
|
export declare const MSG_SYNCED = "Your changes are online.";
|
|
10
10
|
export declare const MSG_SYNCED_MERGED = "Your changes are online, combined with changes from the online copy.";
|
|
11
|
-
export declare const MSG_OFFLINE = "Your changes are saved on this computer.
|
|
11
|
+
export declare const MSG_OFFLINE = "Your changes are saved on this computer. Gutterpress couldn't reach the online repository \u2014 try syncing again when you're back online.";
|
|
12
12
|
export declare const MSG_AUTH = "The online repository didn't accept the saved connection. Reconnect and try again.";
|
|
13
13
|
export declare const MSG_INSECURE_TRANSPORT = "This book's online address isn't secure, so the saved connection wasn't sent \u2014 connections are never sent over an insecure address. Switch the address to a secure one (starting with https), or to a local loopback address for a server on this computer, to sync.";
|
|
14
14
|
export declare const MSG_BUSY = "The online copy is changing very quickly right now. Your work is saved on this computer \u2014 try Sync again in a moment.";
|
|
@@ -21,7 +21,7 @@ export declare const MSG_BUSY = "The online copy is changing very quickly right
|
|
|
21
21
|
export declare const MSG_HISTORY_UNREADABLE = "This book's version history can't be read, so syncing can't continue. Your writing is safe \u2014 every file is still here on this computer. Use Repair online backup (in Where your work is kept) to get history and syncing working again.";
|
|
22
22
|
export declare const MSG_UNRELATED = "This book and the online copy have no history in common, so they can't be combined. Either the online address points at a different book, or this book's own history was lost and started over. Your writing is safe \u2014 every file is still here on this computer. Check the online address; if it is correct, use Repair online backup (in Where your work is kept).";
|
|
23
23
|
export declare const MSG_NO_REMOTE = "This book isn't connected to an online repository yet.";
|
|
24
|
-
export declare const MSG_SSH_REMOTE = "This book's online address uses SSH (git@\u2026), which
|
|
24
|
+
export declare const MSG_SSH_REMOTE = "This book's online address uses SSH (git@\u2026), which Gutterpress can't sync to. Switch it to the web (HTTPS) address to sync from here.";
|
|
25
25
|
export declare const MSG_NO_BRANCH = "This book's version history isn't on a named branch, so it can't be synced right now.";
|
|
26
26
|
/** Message recorded on the automatic pre-sync snapshot (D5 invariant).
|
|
27
27
|
* Pre-0.10.1 history carries the old spelling "Snapshot before syncing". */
|
package/dist/lib/targets.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ import { type VendorPreset } from "./presets";
|
|
|
22
22
|
export type TargetOverlay = {
|
|
23
23
|
pdfx?: Partial<ResolvedConfig["pdfx"]>;
|
|
24
24
|
ink?: Partial<ResolvedConfig["ink"]>;
|
|
25
|
+
checks?: ResolvedConfig["checks"];
|
|
25
26
|
validate?: {
|
|
26
|
-
checks?: ResolvedConfig["validate"]["checks"];
|
|
27
27
|
assets?: Partial<ResolvedConfig["validate"]["assets"]>;
|
|
28
28
|
pdf?: Partial<ResolvedConfig["validate"]["pdf"]>;
|
|
29
29
|
};
|
|
@@ -72,9 +72,9 @@ export declare function resolveTargets(requested: readonly string[] | undefined,
|
|
|
72
72
|
export declare function overlayPreset(preset: VendorPreset, target: PublishTarget): VendorPreset;
|
|
73
73
|
/**
|
|
74
74
|
* The strict-PDF fill-ins applied to EVERY post-build PDF validation
|
|
75
|
-
* regardless of preset/target: any of these
|
|
76
|
-
*
|
|
77
|
-
*
|
|
75
|
+
* regardless of preset/target: any of these the config leaves unset reports
|
|
76
|
+
* at error severity, without overwriting an author's explicit level
|
|
77
|
+
* (including `off`).
|
|
78
78
|
*/
|
|
79
79
|
export declare const DEFAULT_STRICT_PDF_CHECKS: readonly ["pdf.structure.qpdf", "pdf.print.pdfx-markers", "pdf.print.pdfx-metadata", "pdf.print.embedded-fonts"];
|
|
80
80
|
export declare function applyDefaultPdfStrictChecks(config: ResolvedConfig): ResolvedConfig;
|
|
@@ -28,10 +28,10 @@ export interface ValidationExecutionArgs {
|
|
|
28
28
|
pluginStylePaths?: string[];
|
|
29
29
|
/**
|
|
30
30
|
* Disable the `source.stylelint` check (CSS print-safety) for this run
|
|
31
|
-
* only, without touching the manifest's `
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
31
|
+
* only, without touching the manifest's `checks:` on disk (#272 — one CSS
|
|
32
|
+
* gate, not two). Set by the build pipeline's `runQualityGates`
|
|
33
|
+
* (build-runner.ts) from `--skip-lint`, so that flag disables just this
|
|
34
|
+
* one check.
|
|
35
35
|
* Every other caller (`gutterpress validate`/`preflight`, the desktop
|
|
36
36
|
* Problems panel) leaves this unset and gets the manifest's own setting.
|
|
37
37
|
*/
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
title: "{{TITLE}}"
|
|
2
2
|
authors:
|
|
3
3
|
- "{{AUTHOR}}"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- chapter-01.md
|
|
4
|
+
chapters:
|
|
5
|
+
- chapter-01.md
|
|
7
6
|
styles:
|
|
8
7
|
- styles/book.css
|
|
9
8
|
extensions:
|
|
10
9
|
- technical-doc
|
|
11
10
|
# Page size and margins in points (72 = 1 in): US Letter (8.5 x 11 in) with
|
|
12
11
|
# 0.9 in top and bottom and 1 in side margins; text stays 0.25 in (18) inside
|
|
13
|
-
# the trim. Change them under Setup >
|
|
12
|
+
# the trim. Change them under Setup > Book.
|
|
14
13
|
page:
|
|
15
14
|
width: 612
|
|
16
15
|
height: 792
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
title: "{{TITLE}}"
|
|
2
2
|
authors:
|
|
3
3
|
- "{{AUTHOR}}"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- chapter-01.md
|
|
4
|
+
chapters:
|
|
5
|
+
- chapter-01.md
|
|
7
6
|
styles:
|
|
8
7
|
- styles/book.css
|
|
9
8
|
extensions:
|
|
10
9
|
- clean-book
|
|
11
10
|
# Page margins in points (72 = 1 in): top, bottom, inside (the binding edge)
|
|
12
|
-
# and outside. Change them, and the page size, under Setup >
|
|
11
|
+
# and outside. Change them, and the page size, under Setup > Book.
|
|
13
12
|
page:
|
|
14
13
|
margin:
|
|
15
14
|
top: 61.2
|
|
@@ -2,14 +2,13 @@ title: "{{TITLE}}"
|
|
|
2
2
|
authors:
|
|
3
3
|
- "{{AUTHOR}}"
|
|
4
4
|
language: en
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- chapter-01.md
|
|
5
|
+
chapters:
|
|
6
|
+
- chapter-01.md
|
|
8
7
|
styles:
|
|
9
8
|
- styles/book.css
|
|
10
9
|
# Page size and margins in points (72 = 1 in): US Letter with 1 in margins
|
|
11
10
|
# (A4 is width 595, height 842); text stays 0.25 in (18) inside the trim.
|
|
12
|
-
# Change them under Setup >
|
|
11
|
+
# Change them under Setup > Book.
|
|
13
12
|
page:
|
|
14
13
|
width: 612
|
|
15
14
|
height: 792
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
title: "{{TITLE}}"
|
|
2
2
|
authors:
|
|
3
3
|
- "{{AUTHOR}}"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- chapter-01.md
|
|
4
|
+
chapters:
|
|
5
|
+
- chapter-01.md
|
|
7
6
|
styles:
|
|
8
7
|
- styles/book.css
|
|
9
8
|
extensions:
|
|
10
9
|
- zine
|
|
11
10
|
# Page size and margins in points (72 = 1 in): Digest (5.5 x 8.5 in) with
|
|
12
11
|
# 0.4 in margins; text stays 0.25 in (18) inside the trim. Change them under
|
|
13
|
-
# Setup >
|
|
12
|
+
# Setup > Book.
|
|
14
13
|
page:
|
|
15
14
|
width: 396
|
|
16
15
|
height: 612
|