@refrakt-md/runes 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attribute-presets.d.ts +3 -2
- package/dist/attribute-presets.d.ts.map +1 -1
- package/dist/attribute-presets.js +2 -1
- package/dist/attribute-presets.js.map +1 -1
- package/dist/collection-helpers.d.ts +21 -2
- package/dist/collection-helpers.d.ts.map +1 -1
- package/dist/collection-helpers.js +72 -15
- package/dist/collection-helpers.js.map +1 -1
- package/dist/composed-rune.d.ts +59 -0
- package/dist/composed-rune.d.ts.map +1 -0
- package/dist/composed-rune.js +129 -0
- package/dist/composed-rune.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +73 -40
- package/dist/config.js.map +1 -1
- package/dist/data-pipeline.d.ts +24 -10
- package/dist/data-pipeline.d.ts.map +1 -1
- package/dist/data-pipeline.js +34 -56
- package/dist/data-pipeline.js.map +1 -1
- package/dist/file-ref-resolve.js +9 -13
- package/dist/file-ref-resolve.js.map +1 -1
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/composition.d.ts +152 -0
- package/dist/lib/composition.d.ts.map +1 -0
- package/dist/lib/composition.js +1120 -0
- package/dist/lib/composition.js.map +1 -0
- package/dist/lib/index.d.ts +63 -4
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +137 -8
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/preprocess.d.ts +64 -0
- package/dist/lib/preprocess.d.ts.map +1 -0
- package/dist/lib/preprocess.js +72 -0
- package/dist/lib/preprocess.js.map +1 -0
- package/dist/lib/registers.d.ts +132 -0
- package/dist/lib/registers.d.ts.map +1 -0
- package/dist/lib/registers.js +329 -0
- package/dist/lib/registers.js.map +1 -0
- package/dist/lib/resolver.d.ts +21 -1
- package/dist/lib/resolver.d.ts.map +1 -1
- package/dist/lib/resolver.js +41 -18
- package/dist/lib/resolver.js.map +1 -1
- package/dist/lib/schema-side-table.d.ts +26 -0
- package/dist/lib/schema-side-table.d.ts.map +1 -0
- package/dist/lib/schema-side-table.js +34 -0
- package/dist/lib/schema-side-table.js.map +1 -0
- package/dist/lib/schema-table.d.ts +59 -9
- package/dist/lib/schema-table.d.ts.map +1 -1
- package/dist/lib/schema-table.js +158 -22
- package/dist/lib/schema-table.js.map +1 -1
- package/dist/lib/slot-markers.d.ts +38 -0
- package/dist/lib/slot-markers.d.ts.map +1 -0
- package/dist/lib/slot-markers.js +105 -0
- package/dist/lib/slot-markers.js.map +1 -0
- package/dist/lib/slots.d.ts +99 -0
- package/dist/lib/slots.d.ts.map +1 -0
- package/dist/lib/slots.js +448 -0
- package/dist/lib/slots.js.map +1 -0
- package/dist/plugins.d.ts +3 -0
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +53 -4
- package/dist/plugins.js.map +1 -1
- package/dist/reference.d.ts +18 -0
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +34 -1
- package/dist/reference.js.map +1 -1
- package/dist/registers-pipeline.d.ts +51 -0
- package/dist/registers-pipeline.d.ts.map +1 -0
- package/dist/registers-pipeline.js +224 -0
- package/dist/registers-pipeline.js.map +1 -0
- package/dist/schema-row.d.ts +5 -0
- package/dist/schema-row.d.ts.map +1 -1
- package/dist/schema-row.js +1 -0
- package/dist/schema-row.js.map +1 -1
- package/dist/tags/data.d.ts +2 -2
- package/dist/tags/data.d.ts.map +1 -1
- package/dist/tags/data.js +6 -4
- package/dist/tags/data.js.map +1 -1
- package/dist/tags/figure.d.ts +10 -4
- package/dist/tags/figure.d.ts.map +1 -1
- package/dist/tags/figure.js +65 -20
- package/dist/tags/figure.js.map +1 -1
- package/dist/tags/include.d.ts +51 -7
- package/dist/tags/include.d.ts.map +1 -1
- package/dist/tags/include.js +216 -7
- package/dist/tags/include.js.map +1 -1
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +13 -3
- package/dist/tags/sandbox.js.map +1 -1
- package/dist/tags/snippet.d.ts +9 -10
- package/dist/tags/snippet.d.ts.map +1 -1
- package/dist/tags/snippet.js +213 -10
- package/dist/tags/snippet.js.map +1 -1
- package/dist/universal-attributes.d.ts +1 -1
- package/package.json +3 -3
- package/dist/include-pipeline.d.ts +0 -52
- package/dist/include-pipeline.d.ts.map +0 -1
- package/dist/include-pipeline.js +0 -206
- package/dist/include-pipeline.js.map +0 -1
- package/dist/snippet-pipeline.d.ts +0 -44
- package/dist/snippet-pipeline.d.ts.map +0 -1
- package/dist/snippet-pipeline.js +0 -307
- package/dist/snippet-pipeline.js.map +0 -1
package/dist/lib/schema-table.js
CHANGED
|
@@ -87,6 +87,17 @@ export function validateSchemaTable(table, declaredAttributes = []) {
|
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
if (table.byField !== undefined) {
|
|
91
|
+
if (table.by !== undefined) {
|
|
92
|
+
issues.push({
|
|
93
|
+
path: 'byField',
|
|
94
|
+
message: '`by` and `byField` are exclusive: a row is selected on one axis.',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (!table.rows || Object.keys(table.rows).length === 0) {
|
|
98
|
+
issues.push({ path: 'rows', message: '`byField` needs `rows` to select from.' });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
90
101
|
const checkEntities = (rows, path) => {
|
|
91
102
|
for (const [name, row] of Object.entries(rows ?? {})) {
|
|
92
103
|
if (!row.property) {
|
|
@@ -111,11 +122,19 @@ export function validateSchemaTable(table, declaredAttributes = []) {
|
|
|
111
122
|
checkRow(table.fallback, 'fallback.');
|
|
112
123
|
return issues;
|
|
113
124
|
}
|
|
114
|
-
/**
|
|
115
|
-
|
|
116
|
-
|
|
125
|
+
/**
|
|
126
|
+
* Pick the row a set of attributes — or, for a `byField` table, the rune's
|
|
127
|
+
* field bag — selects. With no bag (the static views: `inspect`, `contracts`,
|
|
128
|
+
* `reference`) a `byField` table describes its fallback row.
|
|
129
|
+
*/
|
|
130
|
+
export function selectRow(table, attrs, fields = {}) {
|
|
131
|
+
const value = table.by !== undefined
|
|
132
|
+
? attrs[table.by]
|
|
133
|
+
: table.byField !== undefined
|
|
134
|
+
? fields[table.byField]
|
|
135
|
+
: undefined;
|
|
136
|
+
if (table.by === undefined && table.byField === undefined)
|
|
117
137
|
return table;
|
|
118
|
-
const value = attrs[table.by];
|
|
119
138
|
const row = value === undefined ? undefined : table.rows?.[String(value)];
|
|
120
139
|
return row ?? table.fallback ?? table;
|
|
121
140
|
}
|
|
@@ -130,40 +149,44 @@ const isTag = (n) => Markdoc.Tag.isTag(n);
|
|
|
130
149
|
/**
|
|
131
150
|
* Every node bearing a name, in document order, within one rune.
|
|
132
151
|
*
|
|
133
|
-
* **
|
|
134
|
-
* unique *per rune*, so the same name means different things
|
|
135
|
-
* a child it contains: `character` names its title span
|
|
136
|
-
* every `character-section` inside it. Reaching across that
|
|
137
|
-
* character whose `name` was the character plus each of
|
|
152
|
+
* **Past another rune's node, only nodes marked for this rune count.** ADR-008's
|
|
153
|
+
* flat namespace is unique *per rune*, so the same name means different things
|
|
154
|
+
* in a parent and in a child it contains: `character` names its title span
|
|
155
|
+
* `name`, and so does every `character-section` inside it. Reaching across that
|
|
156
|
+
* boundary published a character whose `name` was the character plus each of
|
|
157
|
+
* its section headings. So the walk keeps descending in foreign mode, where just
|
|
158
|
+
* the nodes placed on this rune's behalf (`OWNER_ATTR`) are admitted — the same
|
|
159
|
+
* rule `findChildren` applies (SPEC-146 Problem 2).
|
|
138
160
|
*/
|
|
139
161
|
export function findAllByName(root, name) {
|
|
140
162
|
const kebab = name.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
163
|
+
const owner = isTag(root) ? root.attributes?.['data-rune'] : undefined;
|
|
141
164
|
const out = [];
|
|
142
|
-
const visit = (node, top) => {
|
|
165
|
+
const visit = (node, top, foreign) => {
|
|
143
166
|
if (Array.isArray(node)) {
|
|
144
167
|
for (const c of node)
|
|
145
|
-
visit(c, top);
|
|
168
|
+
visit(c, top, foreign);
|
|
146
169
|
return;
|
|
147
170
|
}
|
|
148
171
|
if (!isTag(node))
|
|
149
172
|
return;
|
|
150
173
|
const attrs = node.attributes ?? {};
|
|
151
|
-
|
|
152
|
-
|
|
174
|
+
// A nested rune's own node is already on its side of the boundary.
|
|
175
|
+
const inner = foreign || (!top && attrs['data-rune'] !== undefined);
|
|
153
176
|
const named = attrs['data-name'] === name ||
|
|
154
177
|
attrs['data-name'] === kebab ||
|
|
155
178
|
attrs['data-field'] === name ||
|
|
156
179
|
attrs['data-field'] === kebab;
|
|
157
|
-
if (named) {
|
|
180
|
+
if ((named && isMine(attrs, owner, inner)) || isSlotted(attrs, owner, name, kebab)) {
|
|
158
181
|
out.push(node);
|
|
159
182
|
// A name marks one node, not a subtree: descending into a match would
|
|
160
183
|
// find nothing new and risks a nested re-use of the same name.
|
|
161
184
|
return;
|
|
162
185
|
}
|
|
163
186
|
for (const c of node.children ?? [])
|
|
164
|
-
visit(c, false);
|
|
187
|
+
visit(c, false, inner);
|
|
165
188
|
};
|
|
166
|
-
visit(root, true);
|
|
189
|
+
visit(root, true, false);
|
|
167
190
|
return out;
|
|
168
191
|
}
|
|
169
192
|
/** The first node bearing a name, within one rune — see `findAllByName`. */
|
|
@@ -354,8 +377,8 @@ export function applySchemaTable(output, table, attrs) {
|
|
|
354
377
|
if (attrs.schema === 'none')
|
|
355
378
|
return output;
|
|
356
379
|
const root = output;
|
|
357
|
-
const row = selectRow(table, attrs);
|
|
358
380
|
const bag = readBag(root);
|
|
381
|
+
const row = selectRow(table, attrs, bag);
|
|
359
382
|
applyRow(root, row, bag);
|
|
360
383
|
// Children are retyped by the parent, never by themselves (D9). Markdoc
|
|
361
384
|
// transforms bottom-up, so by now the children carry their own `typeof` and
|
|
@@ -403,25 +426,138 @@ export function applySchemaTable(output, table, attrs) {
|
|
|
403
426
|
* the rest as authored child tags — `playlist` does exactly that, with markdown
|
|
404
427
|
* list items beside `{% track %}` children. Both populations belong to one
|
|
405
428
|
* collection and must take one row, or half of it would go unmapped.
|
|
429
|
+
*
|
|
430
|
+
* **Matching on `data-rune` is what makes the boundary necessary** (SPEC-146
|
|
431
|
+
* Problem 1). A child key that is also a rune name — `track`, `step`, `tier`,
|
|
432
|
+
* `breadcrumb-item` — would otherwise match that rune anywhere below, including
|
|
433
|
+
* inside a rune the *author* nested, which the row was never about: a `{% track %}`
|
|
434
|
+
* in a `{% hint %}` inside a playlist was published as one of the playlist's
|
|
435
|
+
* tracks. So the walk crosses another rune's boundary only in foreign mode, where
|
|
436
|
+
* just the nodes placed on this rune's behalf (`OWNER_ATTR`) count. A child the
|
|
437
|
+
* row matches is itself a boundary: its own content is its own.
|
|
406
438
|
*/
|
|
407
439
|
function findChildren(root, name) {
|
|
440
|
+
const owner = root.attributes?.['data-rune'];
|
|
408
441
|
const out = [];
|
|
409
|
-
const visit = (node) => {
|
|
442
|
+
const visit = (node, foreign) => {
|
|
410
443
|
if (Array.isArray(node)) {
|
|
411
444
|
for (const c of node)
|
|
412
|
-
visit(c);
|
|
445
|
+
visit(c, foreign);
|
|
413
446
|
return;
|
|
414
447
|
}
|
|
415
448
|
if (!isTag(node))
|
|
416
449
|
return;
|
|
417
450
|
const attrs = node.attributes ?? {};
|
|
418
|
-
|
|
451
|
+
const named = attrs['data-rune'] === name || attrs['data-name'] === name || attrs['data-field'] === name;
|
|
452
|
+
if ((named && isMine(attrs, owner, foreign)) || isSlotted(attrs, owner, name, name)) {
|
|
419
453
|
out.push(node);
|
|
454
|
+
}
|
|
455
|
+
const crossing = attrs['data-rune'] !== undefined;
|
|
420
456
|
for (const c of node.children ?? [])
|
|
421
|
-
visit(c);
|
|
457
|
+
visit(c, foreign || crossing);
|
|
422
458
|
};
|
|
423
459
|
for (const c of root.children ?? [])
|
|
424
|
-
visit(c);
|
|
460
|
+
visit(c, false);
|
|
425
461
|
return out;
|
|
426
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* Does a node belong to the rune resolving it? SPEC-146 D1/D2 — ownership is
|
|
465
|
+
* declared on the node rather than inferred from ancestry.
|
|
466
|
+
*
|
|
467
|
+
* Inside the rune's own nodes a name needs no marker, but a node marked for
|
|
468
|
+
* another rune is that rune's. Past another rune's boundary only a node marked
|
|
469
|
+
* for this rune counts: whatever else is down there belongs to the rune whose
|
|
470
|
+
* boundary it is.
|
|
471
|
+
*
|
|
472
|
+
* That holds for a node marked with `OWNER_ATTR` alone. A node composition
|
|
473
|
+
* placed carries `SLOT_ATTR` as well, and splits the question by attribute —
|
|
474
|
+
* see the first branch.
|
|
475
|
+
*/
|
|
476
|
+
function isMine(attrs, owner, foreign) {
|
|
477
|
+
const marked = attrs[OWNER_ATTR];
|
|
478
|
+
// SPEC-145 D10a — a node carrying both markers was placed by composition,
|
|
479
|
+
// and its two names are two namespaces. Its `data-name` / `data-field` / own
|
|
480
|
+
// `data-rune` are the primitive's, so they count among the primitive's own
|
|
481
|
+
// nodes whoever owns the node; the owner reaches it by `SLOT_ATTR` only
|
|
482
|
+
// (`isSlotted`), never by a primitive's name. Without this a `figure` holding
|
|
483
|
+
// an image placed for `character` lost its own `contentUrl`. The same rule
|
|
484
|
+
// read from the owner's side: an author's `{% figure %}` placed straight into
|
|
485
|
+
// the composed rune's slot is not matched by the owner's `figure` row.
|
|
486
|
+
if (marked !== undefined && attrs[SLOT_ATTR] !== undefined) {
|
|
487
|
+
return marked !== owner && !foreign;
|
|
488
|
+
}
|
|
489
|
+
if (foreign)
|
|
490
|
+
return owner !== undefined && marked === owner;
|
|
491
|
+
return marked === undefined || marked === owner;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Is a node placed on this rune's behalf under the slot name being resolved?
|
|
495
|
+
* SPEC-145 D10a step 3 — the extension to `isMine`, not a replacement for it.
|
|
496
|
+
*
|
|
497
|
+
* A placed node sits inside a primitive, and the primitive may name the same
|
|
498
|
+
* node for its own styling: one attribute cannot carry both names, so the
|
|
499
|
+
* composing rune's name travels as `SLOT_ATTR` and the primitive's `data-name`
|
|
500
|
+
* is left alone. A slot name counts only beside a matching `OWNER_ATTR` —
|
|
501
|
+
* `data-slot` survives into the output (D10c), so on its own it says what a
|
|
502
|
+
* node is called, not whose name it is — and then it counts on either side of
|
|
503
|
+
* a boundary.
|
|
504
|
+
*/
|
|
505
|
+
function isSlotted(attrs, owner, name, kebab) {
|
|
506
|
+
const slot = attrs[SLOT_ATTR];
|
|
507
|
+
if (slot === undefined || owner === undefined || attrs[OWNER_ATTR] !== owner)
|
|
508
|
+
return false;
|
|
509
|
+
return slot === name || slot === kebab;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Marks a node placed inside another rune on behalf of the rune named — the
|
|
513
|
+
* value is that rune's `data-rune`. SPEC-146 D1.
|
|
514
|
+
*
|
|
515
|
+
* Nothing sets it yet: no rune places its content inside another rune until
|
|
516
|
+
* SPEC-145's composition does. What it changes today is what an *unmarked* node
|
|
517
|
+
* past a boundary means — not this rune's — which is the fix for Problem 1.
|
|
518
|
+
*/
|
|
519
|
+
export const OWNER_ATTR = 'data-owner';
|
|
520
|
+
/**
|
|
521
|
+
* What the owning rune calls a node it placed — SPEC-145 D10a. Set together
|
|
522
|
+
* with `OWNER_ATTR` and read only together with it.
|
|
523
|
+
*
|
|
524
|
+
* Unlike the owner mark it is not bookkeeping: `releaseOwnedNodes` leaves it in
|
|
525
|
+
* place, because a composed rune's slot names are its published names for its
|
|
526
|
+
* parts (D10c) — `[data-rune="character"] [data-slot="description"]` is a
|
|
527
|
+
* theme's hook, and the composed rune's contract lists them.
|
|
528
|
+
*/
|
|
529
|
+
export const SLOT_ATTR = 'data-slot';
|
|
530
|
+
/**
|
|
531
|
+
* Strip the ownership marks a rune has finished resolving. SPEC-146 D4: the
|
|
532
|
+
* marker answers a resolution question during the transform, so it is
|
|
533
|
+
* bookkeeping, not output, and nothing downstream reads it.
|
|
534
|
+
*
|
|
535
|
+
* Runs once the owning rune's table has been applied. Markdoc transforms
|
|
536
|
+
* bottom-up, so no rune that could still need the mark runs later.
|
|
537
|
+
*
|
|
538
|
+
* `SLOT_ATTR` on the same node stays: it is output, not bookkeeping (SPEC-145
|
|
539
|
+
* D10a step 4, D10c).
|
|
540
|
+
*/
|
|
541
|
+
export function releaseOwnedNodes(output) {
|
|
542
|
+
if (!isTag(output))
|
|
543
|
+
return;
|
|
544
|
+
const owner = output.attributes?.['data-rune'];
|
|
545
|
+
if (owner === undefined)
|
|
546
|
+
return;
|
|
547
|
+
const visit = (node) => {
|
|
548
|
+
if (Array.isArray(node)) {
|
|
549
|
+
for (const c of node)
|
|
550
|
+
visit(c);
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
if (!isTag(node))
|
|
554
|
+
return;
|
|
555
|
+
const attrs = node.attributes;
|
|
556
|
+
if (attrs?.[OWNER_ATTR] === owner)
|
|
557
|
+
delete attrs[OWNER_ATTR];
|
|
558
|
+
for (const c of node.children ?? [])
|
|
559
|
+
visit(c);
|
|
560
|
+
};
|
|
561
|
+
visit(output);
|
|
562
|
+
}
|
|
427
563
|
//# sourceMappingURL=schema-table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-table.js","sourceRoot":"","sources":["../../src/lib/schema-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Schema } from '@markdoc/markdoc';
|
|
2
|
+
/**
|
|
3
|
+
* Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
|
|
4
|
+
*
|
|
5
|
+
* ## Why every schema has to declare them
|
|
6
|
+
*
|
|
7
|
+
* Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
|
|
8
|
+
* `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
|
|
9
|
+
* schema declares. A marker on a paragraph whose schema does not name it is
|
|
10
|
+
* gone from the rendered `<p>` with no trace, and the composed rune's schema
|
|
11
|
+
* row then resolves nothing — which looks exactly like optional content left
|
|
12
|
+
* empty.
|
|
13
|
+
*
|
|
14
|
+
* ## Why here, once, rather than in each rune
|
|
15
|
+
*
|
|
16
|
+
* Declared per rune, a new rune would be uncovered until someone remembered.
|
|
17
|
+
* Declared where the Markdoc config is assembled — core nodes plus every
|
|
18
|
+
* plugin's runes — every schema is covered, including ones written after this.
|
|
19
|
+
* And no rune's own declaration carries them, so the authoring surfaces that
|
|
20
|
+
* read a rune's schema (`reference`, the editor, the AI prompt) never offer an
|
|
21
|
+
* author two attributes only composition may set.
|
|
22
|
+
*
|
|
23
|
+
* Copies, never mutates: the input maps are module-level exports shared by
|
|
24
|
+
* every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
|
|
25
|
+
* schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
|
|
26
|
+
* still answer for it. The copy is memoised on the input map, so a site
|
|
27
|
+
* assembling the same config for every page builds it once.
|
|
28
|
+
*/
|
|
29
|
+
export declare function declareSlotMarkers<T extends Record<string, Schema>>(schemas: T): T;
|
|
30
|
+
/**
|
|
31
|
+
* The node map a page is transformed against, every node declaring the markers.
|
|
32
|
+
*
|
|
33
|
+
* Includes Markdoc's defaults for the nodes `nodes` does not override —
|
|
34
|
+
* `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
|
|
35
|
+
* own schema for those, and its own schema declares nothing.
|
|
36
|
+
*/
|
|
37
|
+
export declare function declareSlotMarkersOnNodes<T extends Record<string, Schema>>(nodes: T): T;
|
|
38
|
+
//# sourceMappingURL=slot-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-markers.d.ts","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CASlF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAMvF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import { recordSchemaOrigin } from './schema-side-table.js';
|
|
3
|
+
import { OWNER_ATTR, SLOT_ATTR } from './schema-table.js';
|
|
4
|
+
/**
|
|
5
|
+
* Declare the two slot markers on every schema in a map — SPEC-145 D10a step 2.
|
|
6
|
+
*
|
|
7
|
+
* ## Why every schema has to declare them
|
|
8
|
+
*
|
|
9
|
+
* Composition sets `OWNER_ATTR` and `SLOT_ATTR` on the AST, before
|
|
10
|
+
* `Markdoc.transform`, and Markdoc's transform keeps only the attributes a
|
|
11
|
+
* schema declares. A marker on a paragraph whose schema does not name it is
|
|
12
|
+
* gone from the rendered `<p>` with no trace, and the composed rune's schema
|
|
13
|
+
* row then resolves nothing — which looks exactly like optional content left
|
|
14
|
+
* empty.
|
|
15
|
+
*
|
|
16
|
+
* ## Why here, once, rather than in each rune
|
|
17
|
+
*
|
|
18
|
+
* Declared per rune, a new rune would be uncovered until someone remembered.
|
|
19
|
+
* Declared where the Markdoc config is assembled — core nodes plus every
|
|
20
|
+
* plugin's runes — every schema is covered, including ones written after this.
|
|
21
|
+
* And no rune's own declaration carries them, so the authoring surfaces that
|
|
22
|
+
* read a rune's schema (`reference`, the editor, the AI prompt) never offer an
|
|
23
|
+
* author two attributes only composition may set.
|
|
24
|
+
*
|
|
25
|
+
* Copies, never mutates: the input maps are module-level exports shared by
|
|
26
|
+
* every caller, and `Markdoc.nodes` belongs to Markdoc. Each copy records the
|
|
27
|
+
* schema it came from, so the side tables keyed by schema (`SchemaSideTable`)
|
|
28
|
+
* still answer for it. The copy is memoised on the input map, so a site
|
|
29
|
+
* assembling the same config for every page builds it once.
|
|
30
|
+
*/
|
|
31
|
+
export function declareSlotMarkers(schemas) {
|
|
32
|
+
const cached = assembled.get(schemas);
|
|
33
|
+
if (cached)
|
|
34
|
+
return cached;
|
|
35
|
+
const out = {};
|
|
36
|
+
for (const [name, schema] of Object.entries(schemas)) {
|
|
37
|
+
out[name] = schema ? withMarkers(schema) : schema;
|
|
38
|
+
}
|
|
39
|
+
assembled.set(schemas, out);
|
|
40
|
+
return out;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The node map a page is transformed against, every node declaring the markers.
|
|
44
|
+
*
|
|
45
|
+
* Includes Markdoc's defaults for the nodes `nodes` does not override —
|
|
46
|
+
* `blockquote`, `hr`, `code`, `s`, `inline` — because Markdoc falls back to its
|
|
47
|
+
* own schema for those, and its own schema declares nothing.
|
|
48
|
+
*/
|
|
49
|
+
export function declareSlotMarkersOnNodes(nodes) {
|
|
50
|
+
const cached = assembledNodes.get(nodes);
|
|
51
|
+
if (cached)
|
|
52
|
+
return cached;
|
|
53
|
+
const out = declareSlotMarkers({ ...Markdoc.nodes, ...nodes });
|
|
54
|
+
assembledNodes.set(nodes, out);
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
const assembled = new WeakMap();
|
|
58
|
+
const assembledNodes = new WeakMap();
|
|
59
|
+
function withMarkers(schema) {
|
|
60
|
+
if (schema.attributes?.[OWNER_ATTR] && schema.attributes?.[SLOT_ATTR])
|
|
61
|
+
return schema;
|
|
62
|
+
// Keep the prototype: a schema need not be a plain literal, and spreading a
|
|
63
|
+
// class instance would drop its `transform`.
|
|
64
|
+
const copy = Object.create(Object.getPrototypeOf(schema));
|
|
65
|
+
Object.assign(copy, schema);
|
|
66
|
+
copy.attributes = {
|
|
67
|
+
...(schema.attributes ?? {}),
|
|
68
|
+
[OWNER_ATTR]: { type: String },
|
|
69
|
+
[SLOT_ATTR]: { type: String },
|
|
70
|
+
};
|
|
71
|
+
// Declaring the markers keeps them only where Markdoc renders attributes
|
|
72
|
+
// itself. A schema with its own `transform` builds its root from scratch —
|
|
73
|
+
// every rune does — so a composition placing `{% hint %}` would lose them on
|
|
74
|
+
// the hint's root. Carry them across, after the rune has resolved its own
|
|
75
|
+
// names, so its own namespace never sees them (SPEC-145 D10a).
|
|
76
|
+
const own = schema.transform;
|
|
77
|
+
if (own) {
|
|
78
|
+
copy.transform = function (node, config) {
|
|
79
|
+
const out = own.call(this, node, config);
|
|
80
|
+
carryMarkers(node.attributes, out);
|
|
81
|
+
return out;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
recordSchemaOrigin(copy, schema);
|
|
85
|
+
return copy;
|
|
86
|
+
}
|
|
87
|
+
/** Set a placed node's markers on the top-level tags its transform produced,
|
|
88
|
+
* where the transform did not already carry them. */
|
|
89
|
+
function carryMarkers(from, out) {
|
|
90
|
+
const owner = from?.[OWNER_ATTR];
|
|
91
|
+
const slot = from?.[SLOT_ATTR];
|
|
92
|
+
if (owner === undefined && slot === undefined)
|
|
93
|
+
return;
|
|
94
|
+
for (const tag of Array.isArray(out) ? out : [out]) {
|
|
95
|
+
if (!Markdoc.Tag.isTag(tag))
|
|
96
|
+
continue;
|
|
97
|
+
if (owner !== undefined && tag.attributes[OWNER_ATTR] === undefined) {
|
|
98
|
+
tag.attributes[OWNER_ATTR] = owner;
|
|
99
|
+
}
|
|
100
|
+
if (slot !== undefined && tag.attributes[SLOT_ATTR] === undefined) {
|
|
101
|
+
tag.attributes[SLOT_ATTR] = slot;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=slot-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-markers.js","sourceRoot":"","sources":["../../src/lib/slot-markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { Config, Node, RenderableTreeNodes } from '@markdoc/markdoc';
|
|
2
|
+
import type { ContentModel, ResolvedContent } from '@refrakt-md/types';
|
|
3
|
+
import type { FieldMetaSpec } from './field-metas.js';
|
|
4
|
+
/** A slot is one node, or a region of nodes inside a boundary element. */
|
|
5
|
+
export type SlotKind = 'value' | 'region';
|
|
6
|
+
/** The closed vocabulary of section roles — mirrors `SectionRole`. */
|
|
7
|
+
declare const SECTION_ROLES: readonly ["header", "preamble", "title", "description", "body", "footer", "media"];
|
|
8
|
+
export type SlotRole = (typeof SECTION_ROLES)[number];
|
|
9
|
+
export interface SlotDeclaration {
|
|
10
|
+
/**
|
|
11
|
+
* The resolved content field the slot comes from, or `attrs.<name>` for a
|
|
12
|
+
* value read from an attribute. Defaults to the slot's own name, so a slot
|
|
13
|
+
* named after its field needs nothing beyond its kind.
|
|
14
|
+
*/
|
|
15
|
+
from?: string;
|
|
16
|
+
/**
|
|
17
|
+
* `value` — the field is already one node, and that node carries the name.
|
|
18
|
+
* An attribute value is rendered as text inside `el` (default `span`).
|
|
19
|
+
* `region` — the field's nodes are wrapped in one boundary element `el`
|
|
20
|
+
* (default `div`), which carries the name; the nodes inside carry none.
|
|
21
|
+
*/
|
|
22
|
+
as: SlotKind;
|
|
23
|
+
/** The element: a region's boundary, or an attribute value's node. */
|
|
24
|
+
el?: string;
|
|
25
|
+
/** Emit nothing when the field resolves to nothing. */
|
|
26
|
+
omitWhenEmpty?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The slot's section role (`sections` in the rune's config). Defaults to the
|
|
29
|
+
* slot name when that is a role, else to the source field's name when that
|
|
30
|
+
* is one — so `title`, `body` and `description → blurb` need nothing here.
|
|
31
|
+
*/
|
|
32
|
+
role?: SlotRole;
|
|
33
|
+
}
|
|
34
|
+
/** A slot entry: its kind alone, or the full declaration. */
|
|
35
|
+
export type SlotEntry = SlotKind | SlotDeclaration;
|
|
36
|
+
export interface EmitsDeclaration {
|
|
37
|
+
/** The rune's kebab-case name — the renderable's `data-rune`. */
|
|
38
|
+
rune: string;
|
|
39
|
+
/** The root element. */
|
|
40
|
+
tag: string;
|
|
41
|
+
/** Structural property name, set as `data-field` on the root. */
|
|
42
|
+
property?: string;
|
|
43
|
+
/** Attributes and file variables rendered as property metas — `fieldMetas`' data form. */
|
|
44
|
+
properties?: FieldMetaSpec;
|
|
45
|
+
/** The named content slots, emitted in declaration order. */
|
|
46
|
+
slots: Record<string, SlotEntry>;
|
|
47
|
+
}
|
|
48
|
+
interface NormalizedSlot {
|
|
49
|
+
name: string;
|
|
50
|
+
kind: SlotKind;
|
|
51
|
+
/** Attribute name, when the slot reads an attribute. */
|
|
52
|
+
attr?: string;
|
|
53
|
+
/** Content field name, when the slot reads a field. */
|
|
54
|
+
field?: string;
|
|
55
|
+
el?: string;
|
|
56
|
+
omitWhenEmpty: boolean;
|
|
57
|
+
role?: SlotRole;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check a declaration against the rune's content model and normalise it.
|
|
61
|
+
* Throws, naming the rune and the offending slot, rather than applying any part
|
|
62
|
+
* of a declaration it cannot honour.
|
|
63
|
+
*/
|
|
64
|
+
export declare function validateEmits(emits: EmitsDeclaration, contentModel: ContentModel | ((attrs: Record<string, any>) => ContentModel)): NormalizedSlot[];
|
|
65
|
+
/**
|
|
66
|
+
* The `sections` join table a declaration implies — slot name → section role.
|
|
67
|
+
* A slot's role is the one it states, else its own name when that is a role,
|
|
68
|
+
* else its source field's name when that is one.
|
|
69
|
+
*/
|
|
70
|
+
export declare function slotSections(emits: EmitsDeclaration): Record<string, SlotRole>;
|
|
71
|
+
/**
|
|
72
|
+
* Build the transform a declaration describes. Called once, when the schema is
|
|
73
|
+
* constructed; the closure it returns has the signature of a hand-written
|
|
74
|
+
* transform and is called where one would be.
|
|
75
|
+
*/
|
|
76
|
+
export declare function makeSlotTransform(emits: EmitsDeclaration, contentModel: ContentModel | ((attrs: Record<string, any>) => ContentModel)): (resolved: ResolvedContent, attrs: Record<string, any>, config: Config, node: Node) => RenderableTreeNodes;
|
|
77
|
+
/** One slot as the review surfaces (`inspect`, `reference`) print it. */
|
|
78
|
+
export interface DescribedSlot {
|
|
79
|
+
name: string;
|
|
80
|
+
/** `attrs.<name>` or a content field. */
|
|
81
|
+
from: string;
|
|
82
|
+
as: SlotKind;
|
|
83
|
+
/** The element the slot's node is — a region's boundary, or an attribute value's node. */
|
|
84
|
+
el?: string;
|
|
85
|
+
omitWhenEmpty: boolean;
|
|
86
|
+
role?: SlotRole;
|
|
87
|
+
/** For a `sections` field: how sections arrive (D5), read from the content model. */
|
|
88
|
+
sections?: 'entries' | 'child runes';
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A declaration with every default made explicit — what the generated transform
|
|
92
|
+
* will actually do, which is the thing a reviewer needs and the declaration's
|
|
93
|
+
* terseness hides.
|
|
94
|
+
*/
|
|
95
|
+
export declare function describeSlots(emits: EmitsDeclaration, contentModel?: ContentModel | ((attrs: Record<string, any>) => ContentModel)): DescribedSlot[];
|
|
96
|
+
/** One line per slot, for the text surfaces. */
|
|
97
|
+
export declare function formatSlotLine(slot: DescribedSlot): string;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=slots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/lib/slots.ts"],"names":[],"mappings":"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"}
|