gutterpress 0.10.7 → 0.10.8
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 +10 -3
- package/dist/README-aaqapam1.md +186 -0
- package/dist/README-mdq34cmb.md +155 -0
- package/dist/api/index.d.ts +6 -2
- package/dist/api/index.js +30 -2
- package/dist/{audit-19e2431j.js → audit-m3ce9pvq.js} +4 -4
- package/dist/base-ypqh9n7f.css +123 -0
- package/dist/book-ted3tzrp.css +58 -0
- package/dist/{build-gqqew2vr.js → build-qnecb3a1.js} +4 -4
- package/dist/callout-hv56m16h.md +7 -0
- package/dist/{cli-kzf64c2g.js → cli-1hx14cgk.js} +946 -401
- package/dist/{cli-s8q42x3r.js → cli-4vtgt2ng.js} +78 -2
- package/dist/{cli-h8ejbtyr.js → cli-vcv5ewqj.js} +1 -1
- package/dist/{cli-pvk2s9d7.js → cli-vxf151ea.js} +1 -1
- package/dist/cli.js +16 -16
- package/dist/components-0mmswvvm.yaml +51 -0
- package/dist/components-aam0fe2z.css +94 -0
- package/dist/{doctor-3ccz35yz.js → doctor-qvqye1wd.js} +2 -2
- package/dist/{engine-pb6h089e.js → engine-daad33qn.js} +1 -1
- package/dist/{engine-88mynx9a.js → engine-db8632w6.js} +2 -2
- package/dist/expected-ycmacem8.html +9 -0
- package/dist/fixture-2qnyqgb5.md +10 -0
- package/dist/gutterpress-m98e2w2d.json +8 -0
- package/dist/gutterpress-x2ycdsb8.json +17 -0
- package/dist/{index-837htyjy.js → index-9pbaznww.js} +78 -2
- package/dist/{index-r4ny4fyr.js → index-dfw8hn8q.js} +1147 -523
- package/dist/{index-a0xpm188.js → index-rpt4vtby.js} +1 -1
- package/dist/index.js +31 -3
- package/dist/lib/build-runner.d.ts +52 -0
- package/dist/lib/extension-manifest.d.ts +164 -0
- package/dist/lib/extension-scaffold.d.ts +65 -0
- package/dist/lib/lint-runner.d.ts +12 -0
- package/dist/lib/markdown/assemble.d.ts +12 -0
- package/dist/lib/markdown/markers.d.ts +20 -0
- package/dist/lib/markdown/plugins.d.ts +1 -1
- package/dist/lib/markdown/renderer.d.ts +99 -0
- package/dist/lib/snippets.d.ts +121 -5
- package/dist/lib/theme-import.d.ts +8 -4
- package/dist/lib/theme-manager.d.ts +52 -39
- package/dist/lib/validation-exec.d.ts +12 -0
- package/dist/{lint-mpz7vfc8.js → lint-3p1s8agk.js} +4 -4
- package/dist/{manifest.schema-kwnrwv8b.json → manifest.schema-1q35yxs9.json} +2 -2
- package/dist/{new-nbrpsw7t.js → new-xffarp40.js} +111 -6
- package/dist/package-rm9d2tht.json +29 -0
- package/dist/page-rules-nsj3aw42.css +128 -0
- package/dist/page-templates-7md4ev7d.css +60 -0
- package/dist/{plugin-gg5mk26h.js → plugin-b05ck7zd.js} +4 -4
- package/dist/plugin-m2w7g47v.css +114 -0
- package/dist/plugin.js-aszz0zgh.tpl +172 -0
- package/dist/plugin.test.js-mv0ghv5n.tpl +232 -0
- package/dist/{preflight-jnmd4mg2.js → preflight-z6xpty9w.js} +4 -4
- package/dist/{preview-hsr9d12d.js → preview-xa1n7why.js} +4 -4
- package/dist/{publish-pcrrn6fd.js → publish-zgmr99kd.js} +4 -4
- package/dist/render.js +275 -8
- package/dist/term-box-4y0w7y32.md +7 -0
- package/dist/{theme-6fa0yjzq.js → theme-m9dtxkhj.js} +4 -4
- package/dist/tokens-e4xk3x4v.css +86 -0
- package/dist/{validate-7n25fx0g.js → validate-43hqgzz5.js} +4 -4
- package/package.json +1 -1
|
@@ -1430,7 +1430,7 @@ import { fileURLToPath } from "node:url";
|
|
|
1430
1430
|
var favicon_default = "./favicon-wkbm9cjn.ico";
|
|
1431
1431
|
|
|
1432
1432
|
// src/assets/manifest.schema.json
|
|
1433
|
-
var manifest_schema_default = "./manifest.schema-
|
|
1433
|
+
var manifest_schema_default = "./manifest.schema-1q35yxs9.json";
|
|
1434
1434
|
|
|
1435
1435
|
// src/assets/preview/scripts/preview-interface.js
|
|
1436
1436
|
var preview_interface_default = "./preview-interface-9rwz21yw.js";
|
|
@@ -1468,6 +1468,63 @@ var manifest_default3 = "./manifest-n1gh3qw5.yaml";
|
|
|
1468
1468
|
// src/assets/templates/technical/chapter-01.md
|
|
1469
1469
|
var chapter_01_default3 = "./chapter-01-6fn9pvd0.md";
|
|
1470
1470
|
|
|
1471
|
+
// src/assets/extension-templates/plugin/gutterpress.json
|
|
1472
|
+
var gutterpress_default = "./gutterpress-m98e2w2d.json";
|
|
1473
|
+
|
|
1474
|
+
// src/assets/extension-templates/plugin/package.json
|
|
1475
|
+
var package_default = "./package-rm9d2tht.json";
|
|
1476
|
+
|
|
1477
|
+
// src/assets/extension-templates/plugin/README.md
|
|
1478
|
+
var README_default = "./README-mdq34cmb.md";
|
|
1479
|
+
|
|
1480
|
+
// src/assets/extension-templates/plugin/plugin.js.tpl
|
|
1481
|
+
var plugin_js_default = "./plugin.js-aszz0zgh.tpl";
|
|
1482
|
+
|
|
1483
|
+
// src/assets/extension-templates/plugin/styles/plugin.css
|
|
1484
|
+
var plugin_default = "./plugin-m2w7g47v.css";
|
|
1485
|
+
|
|
1486
|
+
// src/assets/extension-templates/plugin/snippets/term-box.md
|
|
1487
|
+
var term_box_default = "./term-box-4y0w7y32.md";
|
|
1488
|
+
|
|
1489
|
+
// src/assets/extension-templates/plugin/test/fixture.md
|
|
1490
|
+
var fixture_default = "./fixture-2qnyqgb5.md";
|
|
1491
|
+
|
|
1492
|
+
// src/assets/extension-templates/plugin/test/expected.html
|
|
1493
|
+
var expected_default = "./expected-ycmacem8.html";
|
|
1494
|
+
|
|
1495
|
+
// src/assets/extension-templates/plugin/test/plugin.test.js.tpl
|
|
1496
|
+
var plugin_test_js_default = "./plugin.test.js-mv0ghv5n.tpl";
|
|
1497
|
+
|
|
1498
|
+
// src/assets/extension-templates/theme/gutterpress.json
|
|
1499
|
+
var gutterpress_default2 = "./gutterpress-x2ycdsb8.json";
|
|
1500
|
+
|
|
1501
|
+
// src/assets/extension-templates/theme/README.md
|
|
1502
|
+
var README_default2 = "./README-aaqapam1.md";
|
|
1503
|
+
|
|
1504
|
+
// src/assets/extension-templates/theme/components.yaml
|
|
1505
|
+
var components_default = "./components-0mmswvvm.yaml";
|
|
1506
|
+
|
|
1507
|
+
// src/assets/extension-templates/theme/snippets/callout.md
|
|
1508
|
+
var callout_default = "./callout-hv56m16h.md";
|
|
1509
|
+
|
|
1510
|
+
// src/assets/extension-templates/theme/styles/tokens.css
|
|
1511
|
+
var tokens_default = "./tokens-e4xk3x4v.css";
|
|
1512
|
+
|
|
1513
|
+
// src/assets/extension-templates/theme/styles/base.css
|
|
1514
|
+
var base_default = "./base-ypqh9n7f.css";
|
|
1515
|
+
|
|
1516
|
+
// src/assets/extension-templates/theme/styles/components.css
|
|
1517
|
+
var components_default2 = "./components-aam0fe2z.css";
|
|
1518
|
+
|
|
1519
|
+
// src/assets/extension-templates/theme/styles/page-templates.css
|
|
1520
|
+
var page_templates_default = "./page-templates-7md4ev7d.css";
|
|
1521
|
+
|
|
1522
|
+
// src/assets/extension-templates/theme/styles/page-rules.css
|
|
1523
|
+
var page_rules_default = "./page-rules-nsj3aw42.css";
|
|
1524
|
+
|
|
1525
|
+
// src/assets/extension-templates/theme/styles/book.css
|
|
1526
|
+
var book_default = "./book-ted3tzrp.css";
|
|
1527
|
+
|
|
1471
1528
|
// src/assets/themes/clean-book/theme.css
|
|
1472
1529
|
var theme_default = "./theme-j2bagrfx.css";
|
|
1473
1530
|
|
|
@@ -1505,6 +1562,25 @@ var EMBEDDED_ASSETS = {
|
|
|
1505
1562
|
"templates/zine/chapter-01.md": abs(filePath(chapter_01_default2)),
|
|
1506
1563
|
"templates/technical/manifest.yaml": abs(filePath(manifest_default3)),
|
|
1507
1564
|
"templates/technical/chapter-01.md": abs(filePath(chapter_01_default3)),
|
|
1565
|
+
"extension-templates/plugin/gutterpress.json": abs(filePath(gutterpress_default)),
|
|
1566
|
+
"extension-templates/plugin/package.json": abs(filePath(package_default)),
|
|
1567
|
+
"extension-templates/plugin/README.md": abs(filePath(README_default)),
|
|
1568
|
+
"extension-templates/plugin/plugin.js.tpl": abs(filePath(plugin_js_default)),
|
|
1569
|
+
"extension-templates/plugin/styles/plugin.css": abs(filePath(plugin_default)),
|
|
1570
|
+
"extension-templates/plugin/snippets/term-box.md": abs(filePath(term_box_default)),
|
|
1571
|
+
"extension-templates/plugin/test/fixture.md": abs(filePath(fixture_default)),
|
|
1572
|
+
"extension-templates/plugin/test/expected.html": abs(filePath(expected_default)),
|
|
1573
|
+
"extension-templates/plugin/test/plugin.test.js.tpl": abs(filePath(plugin_test_js_default)),
|
|
1574
|
+
"extension-templates/theme/gutterpress.json": abs(filePath(gutterpress_default2)),
|
|
1575
|
+
"extension-templates/theme/README.md": abs(filePath(README_default2)),
|
|
1576
|
+
"extension-templates/theme/components.yaml": abs(filePath(components_default)),
|
|
1577
|
+
"extension-templates/theme/snippets/callout.md": abs(filePath(callout_default)),
|
|
1578
|
+
"extension-templates/theme/styles/tokens.css": abs(filePath(tokens_default)),
|
|
1579
|
+
"extension-templates/theme/styles/base.css": abs(filePath(base_default)),
|
|
1580
|
+
"extension-templates/theme/styles/components.css": abs(filePath(components_default2)),
|
|
1581
|
+
"extension-templates/theme/styles/page-templates.css": abs(filePath(page_templates_default)),
|
|
1582
|
+
"extension-templates/theme/styles/page-rules.css": abs(filePath(page_rules_default)),
|
|
1583
|
+
"extension-templates/theme/styles/book.css": abs(filePath(book_default)),
|
|
1508
1584
|
"themes/clean-book/theme.css": abs(filePath(theme_default)),
|
|
1509
1585
|
"themes/clean-book/theme.json": abs(filePath(theme_default2)),
|
|
1510
1586
|
"themes/zine/theme.css": abs(filePath(theme_default3)),
|
|
@@ -2849,4 +2925,4 @@ ${lines.length ? lines.join(`
|
|
|
2849
2925
|
`);
|
|
2850
2926
|
}
|
|
2851
2927
|
|
|
2852
|
-
export { RENDER_TIMEOUT_MS, prewarmBrowser, getBrowser, closeBrowser, getAssetPath, MARGIN_BOX_IGNORED_PROPERTIES, REQUIRED_MILESTONE, assertMilestone, connectChromium, build };
|
|
2928
|
+
export { RENDER_TIMEOUT_MS, prewarmBrowser, getBrowser, closeBrowser, getAssetsDir, getAssetPath, MARGIN_BOX_IGNORED_PROPERTIES, REQUIRED_MILESTONE, assertMilestone, connectChromium, build };
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
// package.json
|
|
5
5
|
var package_default = {
|
|
6
6
|
name: "gutterpress",
|
|
7
|
-
version: "0.10.
|
|
7
|
+
version: "0.10.8",
|
|
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-vcv5ewqj.js";
|
|
10
10
|
import {
|
|
11
11
|
EXIT_CODES
|
|
12
12
|
} from "./cli-46ycxe6r.js";
|
|
@@ -18,17 +18,17 @@ 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
|
-
lint: () => import("./lint-
|
|
26
|
-
validate: () => import("./validate-
|
|
27
|
-
audit: () => import("./audit-
|
|
28
|
-
preflight: () => import("./preflight-
|
|
29
|
-
doctor: () => import("./doctor-
|
|
30
|
-
plugin: () => import("./plugin-
|
|
31
|
-
theme: () => import("./theme-
|
|
21
|
+
new: () => import("./new-xffarp40.js").then((m) => m.default),
|
|
22
|
+
preview: () => import("./preview-xa1n7why.js").then((m) => m.default),
|
|
23
|
+
build: () => import("./build-qnecb3a1.js").then((m) => m.default),
|
|
24
|
+
publish: () => import("./publish-zgmr99kd.js").then((m) => m.default),
|
|
25
|
+
lint: () => import("./lint-3p1s8agk.js").then((m) => m.default),
|
|
26
|
+
validate: () => import("./validate-43hqgzz5.js").then((m) => m.default),
|
|
27
|
+
audit: () => import("./audit-m3ce9pvq.js").then((m) => m.default),
|
|
28
|
+
preflight: () => import("./preflight-z6xpty9w.js").then((m) => m.default),
|
|
29
|
+
doctor: () => import("./doctor-qvqye1wd.js").then((m) => m.default),
|
|
30
|
+
plugin: () => import("./plugin-b05ck7zd.js").then((m) => m.default),
|
|
31
|
+
theme: () => import("./theme-m9dtxkhj.js").then((m) => m.default)
|
|
32
32
|
};
|
|
33
33
|
var VERSION = package_default.version;
|
|
34
34
|
var main = defineCommand({
|
|
@@ -53,7 +53,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
53
53
|
const [command, ...commandArgs] = rawArgs;
|
|
54
54
|
try {
|
|
55
55
|
if (command === "new") {
|
|
56
|
-
const { newArgs } = await import("./new-
|
|
56
|
+
const { newArgs } = await import("./new-xffarp40.js");
|
|
57
57
|
rejectUnknownFlags(commandArgs, newArgs, "new");
|
|
58
58
|
const parsed = parseArgs(commandArgs, {
|
|
59
59
|
...newArgs,
|
|
@@ -65,7 +65,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
if (command === "preflight") {
|
|
68
|
-
const { preflightArgs } = await import("./preflight-
|
|
68
|
+
const { preflightArgs } = await import("./preflight-z6xpty9w.js");
|
|
69
69
|
rejectUnknownFlags(commandArgs, preflightArgs, "preflight");
|
|
70
70
|
const parsed = parseArgs(commandArgs, {
|
|
71
71
|
...preflightArgs,
|
|
@@ -88,7 +88,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
88
88
|
if (subcommand !== "add") {
|
|
89
89
|
throw new UsageError(`gutterpress plugin: unknown command "${subcommand}"`);
|
|
90
90
|
}
|
|
91
|
-
const { pluginAddArgs } = await import("./plugin-
|
|
91
|
+
const { pluginAddArgs } = await import("./plugin-b05ck7zd.js");
|
|
92
92
|
rejectUnknownFlags(subcommandArgs, pluginAddArgs, "plugin add");
|
|
93
93
|
const parsed = parseArgs(subcommandArgs, {
|
|
94
94
|
...pluginAddArgs,
|
|
@@ -118,7 +118,7 @@ async function preflightRequiredInvocations(rawArgs) {
|
|
|
118
118
|
themeApplyArgs,
|
|
119
119
|
themeImportArgs,
|
|
120
120
|
themeRemoveArgs
|
|
121
|
-
} = await import("./theme-
|
|
121
|
+
} = await import("./theme-m9dtxkhj.js");
|
|
122
122
|
const [positionalKey, positionalLabel, commandArgsDef] = subcommand === "apply" ? ["id", "ID", themeApplyArgs] : subcommand === "import" ? ["source", "SOURCE", themeImportArgs] : ["id", "ID", themeRemoveArgs];
|
|
123
123
|
rejectUnknownFlags(subcommandArgs, commandArgsDef, `theme ${subcommand}`);
|
|
124
124
|
const parsed = parseArgs(subcommandArgs, {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# {{NAME}} — component catalog
|
|
2
|
+
#
|
|
3
|
+
# The enumerated list of what an author can opt into, and what each thing
|
|
4
|
+
# emits. It exists so "documented" and "works" cannot drift apart: the catalog
|
|
5
|
+
# is the thing a new author browses, and the thing to check a component
|
|
6
|
+
# against when you change it.
|
|
7
|
+
#
|
|
8
|
+
# Gutterpress reads this file's PRESENCE today (gutterpress.json's
|
|
9
|
+
# `components:` field points here, and a missing file fails at apply time
|
|
10
|
+
# rather than silently at render time). Nothing yet reads the entries — the
|
|
11
|
+
# registry that will is not built. So treat the shape below as this theme's
|
|
12
|
+
# own convention, useful to you now, and expect to adjust it when core grows
|
|
13
|
+
# a reader.
|
|
14
|
+
#
|
|
15
|
+
# One entry per component, in the same order as components.css.
|
|
16
|
+
|
|
17
|
+
components:
|
|
18
|
+
- name: callout
|
|
19
|
+
# How an author reaches it from markdown.
|
|
20
|
+
recipe: "@section .{{PREFIX}}callout"
|
|
21
|
+
# What lands in the HTML.
|
|
22
|
+
emits: "div.section.{{PREFIX}}callout"
|
|
23
|
+
# Extra classes that change its look.
|
|
24
|
+
variants:
|
|
25
|
+
- name: warning
|
|
26
|
+
recipe: "@section .{{PREFIX}}callout .{{PREFIX}}callout-warning"
|
|
27
|
+
# The public theming surface. Anything NOT listed here is internal and may
|
|
28
|
+
# change without warning.
|
|
29
|
+
tokens:
|
|
30
|
+
- --{{PREFIX}}callout-accent
|
|
31
|
+
- --{{PREFIX}}callout-bg
|
|
32
|
+
- --{{PREFIX}}callout-pad
|
|
33
|
+
- --{{PREFIX}}callout-rule
|
|
34
|
+
# What it does at a page boundary. Worth recording: it is the property
|
|
35
|
+
# most often discovered by accident, three chapters in.
|
|
36
|
+
breaks: avoid
|
|
37
|
+
status: stable
|
|
38
|
+
|
|
39
|
+
# Page templates are catalogued too — an author picks from these by name.
|
|
40
|
+
page_templates:
|
|
41
|
+
- name: opener
|
|
42
|
+
recipe: "@page .{{PREFIX}}opener"
|
|
43
|
+
emits: "div.page.{{PREFIX}}opener"
|
|
44
|
+
notes: "Centred part/chapter opener. No running head, no folio."
|
|
45
|
+
status: stable
|
|
46
|
+
|
|
47
|
+
- name: reference
|
|
48
|
+
recipe: "@page .{{PREFIX}}reference"
|
|
49
|
+
emits: "div.page.{{PREFIX}}reference"
|
|
50
|
+
notes: "Two columns with a rule. Prefer core's .gp-columns-2 for plain columns."
|
|
51
|
+
status: stable
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* ===========================================================================
|
|
2
|
+
* {{NAME}} — 3. COMPONENTS
|
|
3
|
+
*
|
|
4
|
+
* OWNS
|
|
5
|
+
* Named, reusable components an author opts into from markdown, one block
|
|
6
|
+
* per component. A component owns everything about itself: its own public
|
|
7
|
+
* tokens, the rules that consume them, its variants, and its break
|
|
8
|
+
* behaviour. Read one block and you know the whole component; cut one block
|
|
9
|
+
* and you have lifted it into another book.
|
|
10
|
+
*
|
|
11
|
+
* MUST NOT CONTAIN
|
|
12
|
+
* - Bare element selectors. `p { … }` here would restyle the whole book
|
|
13
|
+
* from a file nobody expects to. Scope every rule under a component class
|
|
14
|
+
* (`.{{PREFIX}}callout p` is fine — that is the component's own paragraph).
|
|
15
|
+
* - Chapter or page scoping. `#ch-two .{{PREFIX}}callout { … }` couples the
|
|
16
|
+
* component to one book; it belongs in book.css.
|
|
17
|
+
* - Literal values where a token would do. A component that hard-codes a
|
|
18
|
+
* colour cannot be retuned, which defeats the whole arrangement.
|
|
19
|
+
*
|
|
20
|
+
* THE TOKEN PATTERN, which the callout below demonstrates end to end:
|
|
21
|
+
*
|
|
22
|
+
* 1. The component declares its own public tokens at `:root`, defaulting in
|
|
23
|
+
* terms of the BRAND tokens from tokens.css.
|
|
24
|
+
* 2. The component's rules consume them as BARE `var(--x)` — never
|
|
25
|
+
* `var(--x, fallback)`. The default lives at `:root` exactly once, so
|
|
26
|
+
* there is one place to look and no second copy to drift out of sync.
|
|
27
|
+
* 3. Any ancestor scope can reset a token to get a variant, without this
|
|
28
|
+
* file changing — see book.css for the chapter-scoped override, and the
|
|
29
|
+
* `.{{PREFIX}}callout-warning` variant below for the in-package one.
|
|
30
|
+
*
|
|
31
|
+
* That third step is the reason for the whole pattern: a book gets a new
|
|
32
|
+
* look by resetting a property, not by restating the component's rules at a
|
|
33
|
+
* higher specificity.
|
|
34
|
+
* ======================================================================== */
|
|
35
|
+
|
|
36
|
+
@layer components {
|
|
37
|
+
/* =========================================================================
|
|
38
|
+
* CALLOUT
|
|
39
|
+
*
|
|
40
|
+
* Recipe @section .{{PREFIX}}callout
|
|
41
|
+
* Emits div.section.{{PREFIX}}callout
|
|
42
|
+
* Variants .{{PREFIX}}callout-warning
|
|
43
|
+
* Public tokens --{{PREFIX}}callout-accent
|
|
44
|
+
* --{{PREFIX}}callout-bg
|
|
45
|
+
* --{{PREFIX}}callout-pad
|
|
46
|
+
* --{{PREFIX}}callout-rule
|
|
47
|
+
* Breaks avoids splitting across pages
|
|
48
|
+
*
|
|
49
|
+
* Authored as:
|
|
50
|
+
*
|
|
51
|
+
* @section .{{PREFIX}}callout
|
|
52
|
+
* ### Before you start
|
|
53
|
+
* Everything in here stays together on one page.
|
|
54
|
+
* @end-section
|
|
55
|
+
* ====================================================================== */
|
|
56
|
+
|
|
57
|
+
/* 1 — public tokens, defaulting in terms of the brand */
|
|
58
|
+
:root {
|
|
59
|
+
--{{PREFIX}}callout-accent: var(--{{PREFIX}}accent);
|
|
60
|
+
--{{PREFIX}}callout-bg: color-mix(in srgb, var(--{{PREFIX}}accent) 7%, transparent);
|
|
61
|
+
--{{PREFIX}}callout-pad: var(--{{PREFIX}}space-3);
|
|
62
|
+
--{{PREFIX}}callout-rule: 3px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* 2 — the component consumes them bare */
|
|
66
|
+
.{{PREFIX}}callout {
|
|
67
|
+
background: var(--{{PREFIX}}callout-bg);
|
|
68
|
+
border-inline-start: var(--{{PREFIX}}callout-rule) solid var(--{{PREFIX}}callout-accent);
|
|
69
|
+
padding: var(--{{PREFIX}}callout-pad);
|
|
70
|
+
margin-block: var(--{{PREFIX}}space-3);
|
|
71
|
+
break-inside: avoid;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* The component's own paragraph: flush, not indented like body prose. */
|
|
75
|
+
.{{PREFIX}}callout p { text-indent: 0; }
|
|
76
|
+
.{{PREFIX}}callout > :first-child { margin-block-start: 0; }
|
|
77
|
+
.{{PREFIX}}callout > :last-child { margin-block-end: 0; }
|
|
78
|
+
|
|
79
|
+
.{{PREFIX}}callout h3 {
|
|
80
|
+
color: var(--{{PREFIX}}callout-accent);
|
|
81
|
+
margin-block-start: 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* 3 — a variant is a token reset. Three lines, not thirty. */
|
|
85
|
+
.{{PREFIX}}callout-warning {
|
|
86
|
+
--{{PREFIX}}callout-accent: var(--{{PREFIX}}accent-warm);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* =========================================================================
|
|
90
|
+
* Add your next component here, in the same shape: a comment block naming
|
|
91
|
+
* its recipe, emitted DOM, variants, public tokens and break behaviour;
|
|
92
|
+
* then tokens, rules, variants. Record it in components.yaml too.
|
|
93
|
+
* ====================================================================== */
|
|
94
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSystemDiagnostics,
|
|
3
3
|
log
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-vxf151ea.js";
|
|
5
5
|
import {
|
|
6
6
|
UsageError,
|
|
7
7
|
rejectExtraPositionals,
|
|
8
8
|
rejectUnknownFlags
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-vcv5ewqj.js";
|
|
10
10
|
import"./cli-c41yr7he.js";
|
|
11
11
|
import"./cli-46ycxe6r.js";
|
|
12
12
|
import"./cli-37x76zdn.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
build
|
|
3
|
-
} from "./index-
|
|
3
|
+
} from "./index-rpt4vtby.js";
|
|
4
4
|
import {
|
|
5
5
|
BuildError,
|
|
6
6
|
RENDER_TIMEOUT_MS,
|
|
7
7
|
assertMilestone,
|
|
8
8
|
connectChromium,
|
|
9
9
|
getBrowser
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-9pbaznww.js";
|
|
11
11
|
import"./index-37x76zdn.js";
|
|
12
12
|
|
|
13
13
|
// src/lib/engine.ts
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<p>A paragraph that defines <span class="{{PREFIX}}term">a key term</span> inline, then keeps going.</p>
|
|
2
|
+
<p>Terms survive <strong>bold</strong>, <em>italic</em> and <code>code</code> in the same sentence: the
|
|
3
|
+
<span class="{{PREFIX}}term">second term</span> here is the one to look for.</p>
|
|
4
|
+
<ul>
|
|
5
|
+
<li>A list item mentioning <span class="{{PREFIX}}term">a listed term</span>.</li>
|
|
6
|
+
<li>An item with no term at all.</li>
|
|
7
|
+
</ul>
|
|
8
|
+
<p>These are NOT terms and must render literally: <code>[[in code]]</code>, a lone
|
|
9
|
+
<a href="https://example.com">bracket link</a>, and an unclosed [[one.</p>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
A paragraph that defines [[a key term]] inline, then keeps going.
|
|
2
|
+
|
|
3
|
+
Terms survive **bold**, *italic* and `code` in the same sentence: the
|
|
4
|
+
[[second term]] here is the one to look for.
|
|
5
|
+
|
|
6
|
+
- A list item mentioning [[a listed term]].
|
|
7
|
+
- An item with no term at all.
|
|
8
|
+
|
|
9
|
+
These are NOT terms and must render literally: `[[in code]]`, a lone
|
|
10
|
+
[bracket link](https://example.com), and an unclosed [[one.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{NAME}}",
|
|
3
|
+
"author": "{{AUTHOR}}",
|
|
4
|
+
"description": "{{DESCRIPTION}}",
|
|
5
|
+
"preview": null,
|
|
6
|
+
"styles": [
|
|
7
|
+
"styles/tokens.css",
|
|
8
|
+
"styles/base.css",
|
|
9
|
+
"styles/components.css",
|
|
10
|
+
"styles/page-templates.css",
|
|
11
|
+
"styles/page-rules.css",
|
|
12
|
+
"styles/book.css"
|
|
13
|
+
],
|
|
14
|
+
"tokensFile": "styles/tokens.css",
|
|
15
|
+
"components": "components.yaml",
|
|
16
|
+
"snippets": "snippets"
|
|
17
|
+
}
|
|
@@ -593,7 +593,7 @@ import { fileURLToPath } from "node:url";
|
|
|
593
593
|
var favicon_default = "./favicon-wkbm9cjn.ico";
|
|
594
594
|
|
|
595
595
|
// src/assets/manifest.schema.json
|
|
596
|
-
var manifest_schema_default = "./manifest.schema-
|
|
596
|
+
var manifest_schema_default = "./manifest.schema-1q35yxs9.json";
|
|
597
597
|
|
|
598
598
|
// src/assets/preview/scripts/preview-interface.js
|
|
599
599
|
var preview_interface_default = "./preview-interface-9rwz21yw.js";
|
|
@@ -631,6 +631,63 @@ var manifest_default3 = "./manifest-n1gh3qw5.yaml";
|
|
|
631
631
|
// src/assets/templates/technical/chapter-01.md
|
|
632
632
|
var chapter_01_default3 = "./chapter-01-6fn9pvd0.md";
|
|
633
633
|
|
|
634
|
+
// src/assets/extension-templates/plugin/gutterpress.json
|
|
635
|
+
var gutterpress_default = "./gutterpress-m98e2w2d.json";
|
|
636
|
+
|
|
637
|
+
// src/assets/extension-templates/plugin/package.json
|
|
638
|
+
var package_default = "./package-rm9d2tht.json";
|
|
639
|
+
|
|
640
|
+
// src/assets/extension-templates/plugin/README.md
|
|
641
|
+
var README_default = "./README-mdq34cmb.md";
|
|
642
|
+
|
|
643
|
+
// src/assets/extension-templates/plugin/plugin.js.tpl
|
|
644
|
+
var plugin_js_default = "./plugin.js-aszz0zgh.tpl";
|
|
645
|
+
|
|
646
|
+
// src/assets/extension-templates/plugin/styles/plugin.css
|
|
647
|
+
var plugin_default = "./plugin-m2w7g47v.css";
|
|
648
|
+
|
|
649
|
+
// src/assets/extension-templates/plugin/snippets/term-box.md
|
|
650
|
+
var term_box_default = "./term-box-4y0w7y32.md";
|
|
651
|
+
|
|
652
|
+
// src/assets/extension-templates/plugin/test/fixture.md
|
|
653
|
+
var fixture_default = "./fixture-2qnyqgb5.md";
|
|
654
|
+
|
|
655
|
+
// src/assets/extension-templates/plugin/test/expected.html
|
|
656
|
+
var expected_default = "./expected-ycmacem8.html";
|
|
657
|
+
|
|
658
|
+
// src/assets/extension-templates/plugin/test/plugin.test.js.tpl
|
|
659
|
+
var plugin_test_js_default = "./plugin.test.js-mv0ghv5n.tpl";
|
|
660
|
+
|
|
661
|
+
// src/assets/extension-templates/theme/gutterpress.json
|
|
662
|
+
var gutterpress_default2 = "./gutterpress-x2ycdsb8.json";
|
|
663
|
+
|
|
664
|
+
// src/assets/extension-templates/theme/README.md
|
|
665
|
+
var README_default2 = "./README-aaqapam1.md";
|
|
666
|
+
|
|
667
|
+
// src/assets/extension-templates/theme/components.yaml
|
|
668
|
+
var components_default = "./components-0mmswvvm.yaml";
|
|
669
|
+
|
|
670
|
+
// src/assets/extension-templates/theme/snippets/callout.md
|
|
671
|
+
var callout_default = "./callout-hv56m16h.md";
|
|
672
|
+
|
|
673
|
+
// src/assets/extension-templates/theme/styles/tokens.css
|
|
674
|
+
var tokens_default = "./tokens-e4xk3x4v.css";
|
|
675
|
+
|
|
676
|
+
// src/assets/extension-templates/theme/styles/base.css
|
|
677
|
+
var base_default = "./base-ypqh9n7f.css";
|
|
678
|
+
|
|
679
|
+
// src/assets/extension-templates/theme/styles/components.css
|
|
680
|
+
var components_default2 = "./components-aam0fe2z.css";
|
|
681
|
+
|
|
682
|
+
// src/assets/extension-templates/theme/styles/page-templates.css
|
|
683
|
+
var page_templates_default = "./page-templates-7md4ev7d.css";
|
|
684
|
+
|
|
685
|
+
// src/assets/extension-templates/theme/styles/page-rules.css
|
|
686
|
+
var page_rules_default = "./page-rules-nsj3aw42.css";
|
|
687
|
+
|
|
688
|
+
// src/assets/extension-templates/theme/styles/book.css
|
|
689
|
+
var book_default = "./book-ted3tzrp.css";
|
|
690
|
+
|
|
634
691
|
// src/assets/themes/clean-book/theme.css
|
|
635
692
|
var theme_default = "./theme-j2bagrfx.css";
|
|
636
693
|
|
|
@@ -668,6 +725,25 @@ var EMBEDDED_ASSETS = {
|
|
|
668
725
|
"templates/zine/chapter-01.md": abs(filePath(chapter_01_default2)),
|
|
669
726
|
"templates/technical/manifest.yaml": abs(filePath(manifest_default3)),
|
|
670
727
|
"templates/technical/chapter-01.md": abs(filePath(chapter_01_default3)),
|
|
728
|
+
"extension-templates/plugin/gutterpress.json": abs(filePath(gutterpress_default)),
|
|
729
|
+
"extension-templates/plugin/package.json": abs(filePath(package_default)),
|
|
730
|
+
"extension-templates/plugin/README.md": abs(filePath(README_default)),
|
|
731
|
+
"extension-templates/plugin/plugin.js.tpl": abs(filePath(plugin_js_default)),
|
|
732
|
+
"extension-templates/plugin/styles/plugin.css": abs(filePath(plugin_default)),
|
|
733
|
+
"extension-templates/plugin/snippets/term-box.md": abs(filePath(term_box_default)),
|
|
734
|
+
"extension-templates/plugin/test/fixture.md": abs(filePath(fixture_default)),
|
|
735
|
+
"extension-templates/plugin/test/expected.html": abs(filePath(expected_default)),
|
|
736
|
+
"extension-templates/plugin/test/plugin.test.js.tpl": abs(filePath(plugin_test_js_default)),
|
|
737
|
+
"extension-templates/theme/gutterpress.json": abs(filePath(gutterpress_default2)),
|
|
738
|
+
"extension-templates/theme/README.md": abs(filePath(README_default2)),
|
|
739
|
+
"extension-templates/theme/components.yaml": abs(filePath(components_default)),
|
|
740
|
+
"extension-templates/theme/snippets/callout.md": abs(filePath(callout_default)),
|
|
741
|
+
"extension-templates/theme/styles/tokens.css": abs(filePath(tokens_default)),
|
|
742
|
+
"extension-templates/theme/styles/base.css": abs(filePath(base_default)),
|
|
743
|
+
"extension-templates/theme/styles/components.css": abs(filePath(components_default2)),
|
|
744
|
+
"extension-templates/theme/styles/page-templates.css": abs(filePath(page_templates_default)),
|
|
745
|
+
"extension-templates/theme/styles/page-rules.css": abs(filePath(page_rules_default)),
|
|
746
|
+
"extension-templates/theme/styles/book.css": abs(filePath(book_default)),
|
|
671
747
|
"themes/clean-book/theme.css": abs(filePath(theme_default)),
|
|
672
748
|
"themes/clean-book/theme.json": abs(filePath(theme_default2)),
|
|
673
749
|
"themes/zine/theme.css": abs(filePath(theme_default3)),
|
|
@@ -759,4 +835,4 @@ function marginBoxAlign(name) {
|
|
|
759
835
|
return /right/.test(name) ? "end" : "start";
|
|
760
836
|
}
|
|
761
837
|
|
|
762
|
-
export { EXIT_CODES, BuildError, run, spawnCapture, execCapture, isToolAvailable, findTool, INSTALL_HINTS, fullInstallHint, resolveChromiumExecutable, requireChromiumExecutable, RENDER_TIMEOUT_MS, prewarmBrowser, getBrowser, closeBrowser, getAssetPath, MARGIN_BOX_IGNORED_PROPERTIES, isIgnoredMarginBoxProperty, marginBoxRectPt, marginBoxAlign, REQUIRED_MILESTONE, assertMilestone, readyProbeExpr, DEFAULT_PRINT_OPTS, launchChromium, connectChromium };
|
|
838
|
+
export { EXIT_CODES, BuildError, run, spawnCapture, execCapture, isToolAvailable, findTool, INSTALL_HINTS, fullInstallHint, resolveChromiumExecutable, requireChromiumExecutable, RENDER_TIMEOUT_MS, prewarmBrowser, getBrowser, closeBrowser, getAssetsDir, getAssetPath, MARGIN_BOX_IGNORED_PROPERTIES, isIgnoredMarginBoxProperty, marginBoxRectPt, marginBoxAlign, REQUIRED_MILESTONE, assertMilestone, readyProbeExpr, DEFAULT_PRINT_OPTS, launchChromium, connectChromium };
|