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.
Files changed (69) hide show
  1. package/README.md +4 -6
  2. package/dist/{README-8db7btxb.md → README-syg2hn83.md} +1 -1
  3. package/dist/api/index.js +5 -5
  4. package/dist/{build-m78jcpf7.js → build-c48eer6f.js} +8 -8
  5. package/dist/checks/asset/extensions.d.ts +1 -1
  6. package/dist/checks/asset/index.d.ts +0 -1
  7. package/dist/checks/policy.d.ts +5 -4
  8. package/dist/checks/source/config-file.d.ts +9 -6
  9. package/dist/checks/source/dangling-links.d.ts +1 -1
  10. package/dist/checks/types.d.ts +2 -2
  11. package/dist/{cli-xsrffqzt.js → cli-54xt7pjg.js} +8 -8
  12. package/dist/{cli-2ppw6q9v.js → cli-5crpmz42.js} +80 -1
  13. package/dist/{cli-1h17ktsg.js → cli-93mkaw6v.js} +96 -209
  14. package/dist/{cli-n2tsxqpn.js → cli-d9mm3vvh.js} +7 -2
  15. package/dist/{cli-5jzyw06s.js → cli-gnpea9dx.js} +1 -1
  16. package/dist/{cli-s6djx4ma.js → cli-pspjxnc8.js} +1 -1
  17. package/dist/{cli-t8be9yeb.js → cli-rqh295j9.js} +12 -7
  18. package/dist/{cli-h4x81x97.js → cli-y6d1arem.js} +207 -142
  19. package/dist/cli.js +12 -12
  20. package/dist/{doctor-j71jqce3.js → doctor-ptb346k8.js} +4 -3
  21. package/dist/{engine-m4y10shc.js → engine-4rzdx6af.js} +1 -1
  22. package/dist/{engine-1r6q80tq.js → engine-6txhxmmv.js} +2 -2
  23. package/dist/{ext-fq2hg9va.js → ext-gy8szg3x.js} +8 -8
  24. package/dist/{extension-restore-9dh7c4tp.js → extension-restore-dymzcasz.js} +2 -2
  25. package/dist/{extension-restore-tmxtzkm0.js → extension-restore-m8tj43e7.js} +4 -4
  26. package/dist/{index-2ppw6q9v.js → index-5crpmz42.js} +80 -1
  27. package/dist/{index-nedd07bk.js → index-5kh4c78h.js} +8 -8
  28. package/dist/{index-0wee4408.js → index-8ywkd2sv.js} +12 -7
  29. package/dist/{index-prqvz3xm.js → index-ea94zbq4.js} +132 -228
  30. package/dist/{index-7pck1q9c.js → index-kaks3mm2.js} +206 -141
  31. package/dist/{index-nvmf22rt.js → index-yc3xj266.js} +1 -1
  32. package/dist/index.js +6 -6
  33. package/dist/lib/build-preflight.d.ts +4 -10
  34. package/dist/lib/build-runner.d.ts +1 -1
  35. package/dist/lib/ghostscript.d.ts +5 -2
  36. package/dist/lib/lint-rules.d.ts +5 -1
  37. package/dist/lib/manifest-config.d.ts +3 -2
  38. package/dist/lib/manifest-old-spellings.d.ts +64 -0
  39. package/dist/lib/markdown/chapter-id.d.ts +1 -1
  40. package/dist/lib/markdown/index.d.ts +1 -1
  41. package/dist/lib/markdown/table.d.ts +5 -3
  42. package/dist/lib/page-size.d.ts +14 -9
  43. package/dist/lib/pdf-inspect.d.ts +27 -0
  44. package/dist/lib/presets.d.ts +10 -8
  45. package/dist/lib/printsafe.d.ts +1 -1
  46. package/dist/lib/project-scaffold.d.ts +1 -1
  47. package/dist/lib/remote-auth/sync-messages.d.ts +2 -2
  48. package/dist/lib/targets.d.ts +4 -4
  49. package/dist/lib/validation-exec.d.ts +4 -4
  50. package/dist/{manifest-my7mdv8j.yaml → manifest-2kc56wvw.yaml} +3 -4
  51. package/dist/{manifest-8afhrk30.yaml → manifest-41ddzm13.yaml} +3 -4
  52. package/dist/{manifest-gf13sjp8.yaml → manifest-79zsgkpn.yaml} +3 -4
  53. package/dist/{manifest-d4f9q79e.yaml → manifest-sqzm4681.yaml} +3 -4
  54. package/dist/{manifest.schema-650pe0d1.json → manifest.schema-w86c1xw1.json} +19 -309
  55. package/dist/{new-s4zcaepg.js → new-t2t28ccb.js} +9 -15
  56. package/dist/{page-rules-fj09xct5.css → page-rules-ytj9p04v.css} +1 -1
  57. package/dist/{pdf-inspect-wnw4za71.js → pdf-inspect-b3mf81ex.js} +3 -1
  58. package/dist/{plugins-80emnf31.js → plugins-fec8t2bh.js} +1 -1
  59. package/dist/{plugins-4vaf27n9.js → plugins-sqa4msdk.js} +3 -3
  60. package/dist/{preflight-c7w1xdn3.js → preflight-srq8fktp.js} +8 -8
  61. package/dist/preview/file-watcher.d.ts +1 -3
  62. package/dist/{preview-mzytcwyk.js → preview-zsp9hstd.js} +8 -8
  63. package/dist/{publish-fez14ad4.js → publish-hhy31gr9.js} +8 -8
  64. package/dist/render.js +6 -1
  65. package/dist/schema/manifest.types.d.ts +40 -107
  66. package/dist/{tokens-ye64p899.css → tokens-n82t4k9h.css} +11 -4
  67. package/dist/{validate-p2chr6hr.js → validate-r9jdz85h.js} +8 -8
  68. package/package.json +1 -1
  69. 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 `source.files` entries are author-written and arrive in many
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 `source.files` list), if it has entries,
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). `\|` still
15
- * escapes a pipe in plain cell text; inside a span nothing is touched,
16
- * so `\|` in a formula is LaTeX's own `\|`.
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.
@@ -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?: PageMargin;
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` defaults to whatever the
51
- * block already carries, so re-sizing a book never silently resets a
52
- * hand-tuned tolerance. The block's other keys stay as written; a `page:`
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, height and tolerance are removed so they cannot shadow them; its
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 whole change validates.
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
@@ -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
- * Every preset value is overridable from the manifest, leaf by leaf
9
- * (resolveConfig's mergeShape; precedence cli > manifest > target > preset).
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: 400` — 400% is the physical ceiling for 4-color process ink
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
- * - `validate.checks`: keeps the generic, vendor-agnostic PDF health checks
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 does NOT force `pdf.print.pdfx-markers` /
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
- * - `validate.pdf.forbidTransparency: false` and `assets.allowAlpha: true` —
55
- * PDF/X forbids both; a plain PDF/HTML book has no such restriction.
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
  /**
@@ -12,7 +12,7 @@ export interface PrintSafeWarning {
12
12
  column: number;
13
13
  }
14
14
  export interface CheckCssOptions {
15
- /** The manifest's `lint.rules`: `off` drops a rule, `warn`/`error` set its severity. */
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
- * `source.files`, or scaffolding a `chapter-01.md` when there are none), copies
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. gutterpress couldn't reach the online repository \u2014 try syncing again when you're back online.";
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 gutterpress can't sync to. Switch it to the web (HTTPS) address to sync from here.";
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". */
@@ -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 left `undefined` by the config
76
- * becomes an error-severity check, without overwriting an author's explicit
77
- * choice (including an explicit disable).
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 `validate.source.stylelint`
32
- * setting on disk (#272 — one CSS gate, not two). Set by the build
33
- * pipeline's `runQualityGates` (build-runner.ts) from `--skip-lint` /
34
- * `config.lint.enabled: false`, so that flag disables just this one check.
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
- source:
5
- files:
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 > Details.
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
- source:
5
- files:
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 > Details.
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
- source:
6
- files:
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 > Details.
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
- source:
5
- files:
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 > Details.
12
+ # Setup > Book.
14
13
  page:
15
14
  width: 396
16
15
  height: 612