@refrakt-md/runes 0.32.0 → 0.34.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/aggregate-resolve.d.ts.map +1 -1
- package/dist/aggregate-resolve.js +18 -4
- package/dist/aggregate-resolve.js.map +1 -1
- package/dist/attributes.d.ts +15 -0
- package/dist/attributes.d.ts.map +1 -1
- package/dist/attributes.js +22 -7
- package/dist/attributes.js.map +1 -1
- package/dist/collection-helpers.d.ts.map +1 -1
- package/dist/collection-helpers.js +1 -1
- package/dist/collection-helpers.js.map +1 -1
- package/dist/collection-resolve.d.ts.map +1 -1
- package/dist/collection-resolve.js +31 -8
- package/dist/collection-resolve.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +214 -77
- package/dist/config.js.map +1 -1
- package/dist/data-adapters.d.ts.map +1 -1
- package/dist/data-adapters.js +28 -11
- package/dist/data-adapters.js.map +1 -1
- package/dist/data-emit.d.ts +1 -0
- package/dist/data-emit.d.ts.map +1 -1
- package/dist/data-emit.js +40 -0
- package/dist/data-emit.js.map +1 -1
- package/dist/data-pipeline.d.ts +10 -4
- package/dist/data-pipeline.d.ts.map +1 -1
- package/dist/data-pipeline.js +331 -32
- package/dist/data-pipeline.js.map +1 -1
- package/dist/data-projection.d.ts +21 -0
- package/dist/data-projection.d.ts.map +1 -1
- package/dist/data-projection.js +41 -3
- package/dist/data-projection.js.map +1 -1
- package/dist/data-resolve.d.ts.map +1 -1
- package/dist/data-resolve.js +5 -2
- package/dist/data-resolve.js.map +1 -1
- package/dist/documents/page.d.ts.map +1 -1
- package/dist/documents/page.js.map +1 -1
- package/dist/drawer-pipeline.d.ts.map +1 -1
- package/dist/drawer-pipeline.js +3 -2
- package/dist/drawer-pipeline.js.map +1 -1
- package/dist/expand-pipeline.d.ts.map +1 -1
- package/dist/expand-pipeline.js +3 -3
- package/dist/expand-pipeline.js.map +1 -1
- package/dist/fence-escape.d.ts.map +1 -1
- package/dist/fence-escape.js +1 -3
- package/dist/fence-escape.js.map +1 -1
- package/dist/field-match.d.ts.map +1 -1
- package/dist/field-match.js.map +1 -1
- package/dist/file-ref-resolve.js +6 -4
- package/dist/file-ref-resolve.js.map +1 -1
- package/dist/fixtures.js +2 -2
- package/dist/fixtures.js.map +1 -1
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +16 -3
- package/dist/functions.js.map +1 -1
- package/dist/include-pipeline.d.ts +52 -0
- package/dist/include-pipeline.d.ts.map +1 -0
- package/dist/include-pipeline.js +206 -0
- package/dist/include-pipeline.js.map +1 -0
- package/dist/index.d.ts +94 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +298 -59
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/layouts/grid.d.ts +1 -1
- package/dist/layouts/grid.d.ts.map +1 -1
- package/dist/layouts/grid.js +4 -6
- package/dist/layouts/grid.js.map +1 -1
- package/dist/lib/component.d.ts +20 -0
- package/dist/lib/component.d.ts.map +1 -1
- package/dist/lib/component.js +42 -7
- package/dist/lib/component.js.map +1 -1
- package/dist/lib/icon-resolve.d.ts.map +1 -1
- package/dist/lib/icon-resolve.js.map +1 -1
- package/dist/lib/image-schemes.js +2 -2
- package/dist/lib/image-schemes.js.map +1 -1
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +252 -51
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/node.d.ts.map +1 -1
- package/dist/lib/node.js +3 -2
- package/dist/lib/node.js.map +1 -1
- package/dist/lib/placeholder.d.ts.map +1 -1
- package/dist/lib/placeholder.js +6 -9
- package/dist/lib/placeholder.js.map +1 -1
- package/dist/lib/read-file.d.ts.map +1 -1
- package/dist/lib/read-file.js.map +1 -1
- package/dist/lib/renderable.d.ts.map +1 -1
- package/dist/lib/renderable.js +5 -5
- package/dist/lib/renderable.js.map +1 -1
- package/dist/lib/resolver.d.ts.map +1 -1
- package/dist/lib/resolver.js +26 -35
- package/dist/lib/resolver.js.map +1 -1
- package/dist/lib/svg.d.ts.map +1 -1
- package/dist/lib/svg.js.map +1 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +24 -22
- package/dist/nodes.js.map +1 -1
- package/dist/outline-scope.js +1 -3
- package/dist/outline-scope.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +13 -10
- package/dist/plugins.js.map +1 -1
- package/dist/reference.d.ts +27 -2
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +58 -25
- package/dist/reference.js.map +1 -1
- package/dist/relationships-resolve.d.ts.map +1 -1
- package/dist/relationships-resolve.js +31 -7
- package/dist/relationships-resolve.js.map +1 -1
- package/dist/rune.d.ts.map +1 -1
- package/dist/rune.js.map +1 -1
- package/dist/sandbox-sources.js +6 -6
- package/dist/sandbox-sources.js.map +1 -1
- package/dist/seo.d.ts.map +1 -1
- package/dist/seo.js +4 -4
- package/dist/seo.js.map +1 -1
- package/dist/snippet-pipeline.d.ts.map +1 -1
- package/dist/snippet-pipeline.js +1 -1
- package/dist/snippet-pipeline.js.map +1 -1
- package/dist/tags/accordion.d.ts.map +1 -1
- package/dist/tags/accordion.js +43 -11
- package/dist/tags/accordion.js.map +1 -1
- package/dist/tags/aggregate.d.ts.map +1 -1
- package/dist/tags/aggregate.js +65 -10
- package/dist/tags/aggregate.js.map +1 -1
- package/dist/tags/annotate.d.ts.map +1 -1
- package/dist/tags/annotate.js +12 -9
- package/dist/tags/annotate.js.map +1 -1
- package/dist/tags/badge.d.ts.map +1 -1
- package/dist/tags/badge.js.map +1 -1
- package/dist/tags/bar.d.ts.map +1 -1
- package/dist/tags/bar.js +3 -7
- package/dist/tags/bar.js.map +1 -1
- package/dist/tags/bg.d.ts.map +1 -1
- package/dist/tags/bg.js +60 -12
- package/dist/tags/bg.js.map +1 -1
- package/dist/tags/blog.d.ts.map +1 -1
- package/dist/tags/blog.js +35 -10
- package/dist/tags/blog.js.map +1 -1
- package/dist/tags/breadcrumb.d.ts.map +1 -1
- package/dist/tags/breadcrumb.js +33 -11
- package/dist/tags/breadcrumb.js.map +1 -1
- package/dist/tags/budget.d.ts.map +1 -1
- package/dist/tags/budget.js +54 -16
- package/dist/tags/budget.js.map +1 -1
- package/dist/tags/card.d.ts.map +1 -1
- package/dist/tags/card.js +24 -6
- package/dist/tags/card.js.map +1 -1
- package/dist/tags/chart.d.ts.map +1 -1
- package/dist/tags/chart.js +33 -11
- package/dist/tags/chart.js.map +1 -1
- package/dist/tags/code.d.ts +25 -0
- package/dist/tags/code.d.ts.map +1 -0
- package/dist/tags/code.js +36 -0
- package/dist/tags/code.js.map +1 -0
- package/dist/tags/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +39 -21
- package/dist/tags/codegroup.js.map +1 -1
- package/dist/tags/collection.d.ts.map +1 -1
- package/dist/tags/collection.js +55 -9
- package/dist/tags/collection.js.map +1 -1
- package/dist/tags/common.d.ts.map +1 -1
- package/dist/tags/common.js +34 -9
- package/dist/tags/common.js.map +1 -1
- package/dist/tags/compare.d.ts.map +1 -1
- package/dist/tags/compare.js +26 -14
- package/dist/tags/compare.js.map +1 -1
- package/dist/tags/conversation.d.ts.map +1 -1
- package/dist/tags/conversation.js +19 -17
- package/dist/tags/conversation.js.map +1 -1
- package/dist/tags/data.d.ts.map +1 -1
- package/dist/tags/data.js +91 -15
- package/dist/tags/data.js.map +1 -1
- package/dist/tags/datatable.d.ts.map +1 -1
- package/dist/tags/datatable.js +22 -8
- package/dist/tags/datatable.js.map +1 -1
- package/dist/tags/deflist.d.ts.map +1 -1
- package/dist/tags/deflist.js +5 -11
- package/dist/tags/deflist.js.map +1 -1
- package/dist/tags/details.d.ts.map +1 -1
- package/dist/tags/details.js +8 -5
- package/dist/tags/details.js.map +1 -1
- package/dist/tags/diagram.d.ts.map +1 -1
- package/dist/tags/diagram.js +9 -5
- package/dist/tags/diagram.js.map +1 -1
- package/dist/tags/diff.d.ts.map +1 -1
- package/dist/tags/diff.js +43 -24
- package/dist/tags/diff.js.map +1 -1
- package/dist/tags/drawer.d.ts.map +1 -1
- package/dist/tags/drawer.js +4 -6
- package/dist/tags/drawer.js.map +1 -1
- package/dist/tags/embed.d.ts.map +1 -1
- package/dist/tags/embed.js +10 -5
- package/dist/tags/embed.js.map +1 -1
- package/dist/tags/expand.d.ts.map +1 -1
- package/dist/tags/expand.js.map +1 -1
- package/dist/tags/figure.d.ts.map +1 -1
- package/dist/tags/figure.js +29 -9
- package/dist/tags/figure.js.map +1 -1
- package/dist/tags/file-ref.d.ts.map +1 -1
- package/dist/tags/file-ref.js.map +1 -1
- package/dist/tags/form.d.ts.map +1 -1
- package/dist/tags/form.js +52 -25
- package/dist/tags/form.js.map +1 -1
- package/dist/tags/gallery.d.ts.map +1 -1
- package/dist/tags/gallery.js +26 -12
- package/dist/tags/gallery.js.map +1 -1
- package/dist/tags/grid.d.ts.map +1 -1
- package/dist/tags/grid.js +57 -14
- package/dist/tags/grid.js.map +1 -1
- package/dist/tags/hint.d.ts.map +1 -1
- package/dist/tags/hint.js +9 -5
- package/dist/tags/hint.js.map +1 -1
- package/dist/tags/icon.d.ts.map +1 -1
- package/dist/tags/icon.js +5 -1
- package/dist/tags/icon.js.map +1 -1
- package/dist/tags/include.d.ts +24 -0
- package/dist/tags/include.d.ts.map +1 -0
- package/dist/tags/include.js +46 -0
- package/dist/tags/include.js.map +1 -0
- package/dist/tags/juxtapose.d.ts.map +1 -1
- package/dist/tags/juxtapose.js +32 -14
- package/dist/tags/juxtapose.js.map +1 -1
- package/dist/tags/layout.d.ts.map +1 -1
- package/dist/tags/layout.js +7 -4
- package/dist/tags/layout.js.map +1 -1
- package/dist/tags/mediatext.d.ts.map +1 -1
- package/dist/tags/mediatext.js +19 -8
- package/dist/tags/mediatext.js.map +1 -1
- package/dist/tags/nav.d.ts.map +1 -1
- package/dist/tags/nav.js +43 -23
- package/dist/tags/nav.js.map +1 -1
- package/dist/tags/pagination.d.ts.map +1 -1
- package/dist/tags/pagination.js +27 -5
- package/dist/tags/pagination.js.map +1 -1
- package/dist/tags/progress.d.ts.map +1 -1
- package/dist/tags/progress.js +25 -5
- package/dist/tags/progress.js.map +1 -1
- package/dist/tags/pullquote.d.ts.map +1 -1
- package/dist/tags/pullquote.js +16 -9
- package/dist/tags/pullquote.js.map +1 -1
- package/dist/tags/region.d.ts.map +1 -1
- package/dist/tags/region.js +9 -4
- package/dist/tags/region.js.map +1 -1
- package/dist/tags/relationships.d.ts.map +1 -1
- package/dist/tags/relationships.js +55 -9
- package/dist/tags/relationships.js.map +1 -1
- package/dist/tags/reveal.d.ts.map +1 -1
- package/dist/tags/reveal.js +16 -7
- package/dist/tags/reveal.js.map +1 -1
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +104 -44
- package/dist/tags/sandbox.js.map +1 -1
- package/dist/tags/section.d.ts.map +1 -1
- package/dist/tags/section.js +13 -3
- package/dist/tags/section.js.map +1 -1
- package/dist/tags/showcase.d.ts.map +1 -1
- package/dist/tags/showcase.js +33 -11
- package/dist/tags/showcase.js.map +1 -1
- package/dist/tags/sidenote.d.ts.map +1 -1
- package/dist/tags/sidenote.js +9 -5
- package/dist/tags/sidenote.js.map +1 -1
- package/dist/tags/snippet.d.ts.map +1 -1
- package/dist/tags/snippet.js +14 -6
- package/dist/tags/snippet.js.map +1 -1
- package/dist/tags/tabs.d.ts.map +1 -1
- package/dist/tags/tabs.js +16 -9
- package/dist/tags/tabs.js.map +1 -1
- package/dist/tags/textblock.d.ts.map +1 -1
- package/dist/tags/textblock.js +9 -5
- package/dist/tags/textblock.js.map +1 -1
- package/dist/tags/tint.d.ts +1 -1
- package/dist/tags/tint.d.ts.map +1 -1
- package/dist/tags/tint.js +14 -2
- package/dist/tags/tint.js.map +1 -1
- package/dist/tags/toc.d.ts.map +1 -1
- package/dist/tags/toc.js +16 -7
- package/dist/tags/toc.js.map +1 -1
- package/dist/tags/xref.d.ts.map +1 -1
- package/dist/tags/xref.js.map +1 -1
- package/dist/universal-attributes.d.ts.map +1 -1
- package/dist/universal-attributes.js +28 -5
- package/dist/universal-attributes.js.map +1 -1
- package/dist/util.d.ts +41 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +72 -14
- package/dist/util.js.map +1 -1
- package/dist/xref-patterns.js +1 -1
- package/dist/xref-patterns.js.map +1 -1
- package/dist/xref-preview-resolve.js +3 -4
- package/dist/xref-preview-resolve.js.map +1 -1
- package/dist/xref-resolve.d.ts.map +1 -1
- package/dist/xref-resolve.js +4 -4
- package/dist/xref-resolve.js.map +1 -1
- package/i18n/de.json +67 -67
- package/i18n/en.json +67 -67
- package/package.json +3 -3
- package/dist/tags/error.d.ts +0 -3
- package/dist/tags/error.d.ts.map +0 -1
- package/dist/tags/error.js +0 -34
- package/dist/tags/error.js.map +0 -1
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Include pipeline hook (SPEC-129).
|
|
3
|
+
*
|
|
4
|
+
* The first preprocess step: walk the parsed AST and replace every
|
|
5
|
+
* `{% include %}` tag with the referenced partial's AST, cloned and with the
|
|
6
|
+
* tag's `variables` substituted. It runs **before** `preprocessSnippets` and
|
|
7
|
+
* `preprocessData` so a `data` or `snippet` inside the pasted file is in the
|
|
8
|
+
* tree when those hooks walk it — the case `{% partial %}` cannot serve,
|
|
9
|
+
* because Markdoc expands partials during the transform.
|
|
10
|
+
*
|
|
11
|
+
* Three properties are load-bearing:
|
|
12
|
+
*
|
|
13
|
+
* - **Splice, never wrap.** One include produces N nodes and they land as
|
|
14
|
+
* direct siblings. A container to keep the replacement 1:1 breaks
|
|
15
|
+
* composition invisibly: measured in SPEC-127, `{% section %}` and
|
|
16
|
+
* `{% grid %}` consume their children, so wrapped content vanishes with no
|
|
17
|
+
* error. Same constraint, same reason, as the `data` per-row body.
|
|
18
|
+
*
|
|
19
|
+
* - **Always clone.** The partial ASTs are parsed once per build and shared by
|
|
20
|
+
* every page that references them. The later preprocessors mutate the tree in
|
|
21
|
+
* place, so pasting the shared nodes would let one page's `data` resolution
|
|
22
|
+
* leak into the next page's copy.
|
|
23
|
+
*
|
|
24
|
+
* - **Substitute, don't scope.** `partial` binds variables into a
|
|
25
|
+
* transform-time scope, which is precisely what a preprocessor attribute
|
|
26
|
+
* cannot read. `include` rewrites `Variable` nodes in the cloned AST at paste
|
|
27
|
+
* time — the same thing `bindRow` does for `$row` — so a binding reaches
|
|
28
|
+
* `{% data where=$q %}`. Variables the include does not bind are left alone
|
|
29
|
+
* and resolve at transform against the page's own variables.
|
|
30
|
+
*
|
|
31
|
+
* Failures render a visible error callout and record a build error rather than
|
|
32
|
+
* throwing, matching `data`: one bad include does not take out the build, and
|
|
33
|
+
* the failure is on the page where the author will see it.
|
|
34
|
+
*/
|
|
35
|
+
import Markdoc from '@markdoc/markdoc';
|
|
36
|
+
import { emitErrorNode } from './data-emit.js';
|
|
37
|
+
const { Ast } = Markdoc;
|
|
38
|
+
/**
|
|
39
|
+
* How deep includes may nest.
|
|
40
|
+
*
|
|
41
|
+
* A cycle is caught by name before this ever fires — the stack check below is
|
|
42
|
+
* the real guard. This bounds the other shape: a chain of distinct files deep
|
|
43
|
+
* enough that it is a mistake rather than a structure anyone meant to author.
|
|
44
|
+
*/
|
|
45
|
+
export const MAX_INCLUDE_DEPTH = 16;
|
|
46
|
+
/**
|
|
47
|
+
* Preprocess: splice every `{% include %}` tag away. No-op when no partials are
|
|
48
|
+
* available (a tree-mode build with none wired), matching how snippet and data
|
|
49
|
+
* no-op without a sandbox — the tag then falls through to its schema transform,
|
|
50
|
+
* which names the wiring.
|
|
51
|
+
*/
|
|
52
|
+
export function preprocessIncludes(ast, page, ctx) {
|
|
53
|
+
const partials = ctx.partials;
|
|
54
|
+
if (!partials)
|
|
55
|
+
return;
|
|
56
|
+
let mutated = false;
|
|
57
|
+
walkAndReplaceIncludes(ast, page, ctx, partials, () => {
|
|
58
|
+
mutated = true;
|
|
59
|
+
}, []);
|
|
60
|
+
return mutated ? ast : undefined;
|
|
61
|
+
}
|
|
62
|
+
function walkAndReplaceIncludes(node, page, ctx, partials, onReplaced, stack) {
|
|
63
|
+
if (!node.children)
|
|
64
|
+
return;
|
|
65
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
66
|
+
const child = node.children[i];
|
|
67
|
+
if (child.type === 'tag' && child.tag === 'include') {
|
|
68
|
+
const replacement = resolveInclude(child, page, ctx, partials, stack);
|
|
69
|
+
node.children.splice(i, 1, ...replacement);
|
|
70
|
+
// Skip the pasted nodes: nested includes inside them were already
|
|
71
|
+
// expanded by `resolveInclude`, under the cycle stack that names the
|
|
72
|
+
// chain. Re-walking here would expand them a second time with an empty
|
|
73
|
+
// stack, which is exactly how a cycle becomes an infinite paste.
|
|
74
|
+
i += replacement.length - 1;
|
|
75
|
+
onReplaced();
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
walkAndReplaceIncludes(child, page, ctx, partials, onReplaced, stack);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function fail(ctx, page, message) {
|
|
82
|
+
ctx.error(`include: ${message}`, page.url);
|
|
83
|
+
return [emitErrorNode(`include error: ${message}`)];
|
|
84
|
+
}
|
|
85
|
+
function resolveInclude(tag, page, ctx, partials, stack) {
|
|
86
|
+
const file = resolveValue(tag.attributes?.file, ctx.variables);
|
|
87
|
+
if (typeof file !== 'string' || file.length === 0) {
|
|
88
|
+
return fail(ctx, page, 'the `file` attribute is required (an unresolvable variable reference resolves to empty)');
|
|
89
|
+
}
|
|
90
|
+
if (stack.includes(file)) {
|
|
91
|
+
return fail(ctx, page, `cycle — ${[...stack, file].join(' → ')}`);
|
|
92
|
+
}
|
|
93
|
+
if (stack.length >= MAX_INCLUDE_DEPTH) {
|
|
94
|
+
return fail(ctx, page, `nested more than ${MAX_INCLUDE_DEPTH} deep — ${[...stack, file].join(' → ')}`);
|
|
95
|
+
}
|
|
96
|
+
const source = partials[file];
|
|
97
|
+
if (!source || typeof source !== 'object') {
|
|
98
|
+
const known = Object.keys(partials).sort();
|
|
99
|
+
const available = known.length > 0
|
|
100
|
+
? ` Available: ${known.join(', ')}.`
|
|
101
|
+
: ' No partials are registered for this site.';
|
|
102
|
+
return fail(ctx, page, `"${file}" was not found in \`_partials/\` or any registered file root.${available}`);
|
|
103
|
+
}
|
|
104
|
+
const bindings = resolveVariables(tag.attributes?.variables, ctx.variables);
|
|
105
|
+
const pasted = source.children ?? [];
|
|
106
|
+
const children = pasted.map((child) => cloneWithBindings(child, bindings));
|
|
107
|
+
// Expand nested includes inside what was just pasted, under a stack carrying
|
|
108
|
+
// this file — so a cycle is reported by name instead of overflowing.
|
|
109
|
+
if (children.length > 0) {
|
|
110
|
+
const container = new Ast.Node('document', {}, children);
|
|
111
|
+
walkAndReplaceIncludes(container, page, ctx, partials, () => { }, [...stack, file]);
|
|
112
|
+
return container.children;
|
|
113
|
+
}
|
|
114
|
+
return children;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Clone a node, substituting bound variables.
|
|
118
|
+
*
|
|
119
|
+
* `$q` reaches the AST as a `Variable` in a node's *attributes* — on a tag
|
|
120
|
+
* (`where=$q`) and equally on a `text` node, where `{% $q %}` becomes
|
|
121
|
+
* `content: Variable(['q'])`. One rule covers both, exactly as `bindRow` does.
|
|
122
|
+
*/
|
|
123
|
+
function cloneWithBindings(node, bindings) {
|
|
124
|
+
const attributes = {};
|
|
125
|
+
for (const [key, value] of Object.entries(node.attributes ?? {})) {
|
|
126
|
+
attributes[key] = substitute(value, bindings);
|
|
127
|
+
}
|
|
128
|
+
const children = (node.children ?? []).map((child) => cloneWithBindings(child, bindings));
|
|
129
|
+
const copy = new Ast.Node(node.type, attributes, children, node.tag);
|
|
130
|
+
// The constructor takes four fields; everything else Markdoc's parser sets
|
|
131
|
+
// has to be carried across by hand. `inline` decides whether a node renders
|
|
132
|
+
// inline, and `annotations` carries `{% .class #id %}` shorthand — dropping
|
|
133
|
+
// either changes the output silently.
|
|
134
|
+
if (node.lines)
|
|
135
|
+
copy.lines = node.lines;
|
|
136
|
+
if (node.location)
|
|
137
|
+
copy.location = node.location;
|
|
138
|
+
copy.inline = node.inline;
|
|
139
|
+
if (node.annotations?.length)
|
|
140
|
+
copy.annotations = node.annotations;
|
|
141
|
+
if (node.slots && Object.keys(node.slots).length > 0) {
|
|
142
|
+
copy.slots = Object.fromEntries(Object.entries(node.slots).map(([k, v]) => [k, cloneWithBindings(v, bindings)]));
|
|
143
|
+
}
|
|
144
|
+
return copy;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Replace a `Variable` node whose root segment the include binds.
|
|
148
|
+
*
|
|
149
|
+
* Unbound variables pass through untouched rather than resolving to empty: the
|
|
150
|
+
* pasted AST is page content now, so `$page.slug` and friends still resolve at
|
|
151
|
+
* transform against the page's own variables. That is a capability `partial`
|
|
152
|
+
* does not have — its scope *replaces* the variable surface.
|
|
153
|
+
*/
|
|
154
|
+
function substitute(value, bindings) {
|
|
155
|
+
if (!value || typeof value !== 'object')
|
|
156
|
+
return value;
|
|
157
|
+
const node = value;
|
|
158
|
+
if (node.$$mdtype === 'Variable' && Array.isArray(node.path) && node.path.length > 0) {
|
|
159
|
+
const [root, ...rest] = node.path;
|
|
160
|
+
if (!(root in bindings))
|
|
161
|
+
return value;
|
|
162
|
+
let current = bindings[root];
|
|
163
|
+
for (const segment of rest) {
|
|
164
|
+
if (current === null || current === undefined)
|
|
165
|
+
return '';
|
|
166
|
+
current = current[segment];
|
|
167
|
+
}
|
|
168
|
+
return current === null || current === undefined ? '' : current;
|
|
169
|
+
}
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
/** The include's own `variables={...}`, with any page-variable references in
|
|
173
|
+
* its values resolved before they are substituted into the pasted AST. */
|
|
174
|
+
function resolveVariables(raw, pageVariables) {
|
|
175
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
176
|
+
return {};
|
|
177
|
+
const out = {};
|
|
178
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
179
|
+
out[key] = resolveValue(value, pageVariables);
|
|
180
|
+
}
|
|
181
|
+
return out;
|
|
182
|
+
}
|
|
183
|
+
/** Resolve an attribute value against the page's variables — literals pass
|
|
184
|
+
* through, `Variable` nodes are looked up. Mirrors snippet's and data's
|
|
185
|
+
* resolvers; anything else (a `Function` node) resolves to empty — the same
|
|
186
|
+
* silent-empty behaviour BUG-010 tracks for `data`'s `where`. */
|
|
187
|
+
function resolveValue(value, variables) {
|
|
188
|
+
if (value === undefined || value === null)
|
|
189
|
+
return '';
|
|
190
|
+
if (typeof value !== 'object')
|
|
191
|
+
return value;
|
|
192
|
+
const node = value;
|
|
193
|
+
if (node.$$mdtype === 'Variable' && Array.isArray(node.path)) {
|
|
194
|
+
let current = variables;
|
|
195
|
+
for (const segment of node.path) {
|
|
196
|
+
if (current === null || current === undefined)
|
|
197
|
+
return '';
|
|
198
|
+
current = current[segment];
|
|
199
|
+
}
|
|
200
|
+
return current === null || current === undefined ? '' : current;
|
|
201
|
+
}
|
|
202
|
+
if (node.$$mdtype === undefined)
|
|
203
|
+
return value;
|
|
204
|
+
return '';
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=include-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"include-pipeline.js","sourceRoot":"","sources":["../src/include-pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,26 +5,32 @@ import './xref-preview-resolve.js';
|
|
|
5
5
|
import Markdoc from '@markdoc/markdoc';
|
|
6
6
|
export * from './interfaces.js';
|
|
7
7
|
export { Rune, defineRune, runeTagMap } from './rune.js';
|
|
8
|
+
/** Custom Markdoc attribute types. Exported since SPEC-132, which is the first
|
|
9
|
+
* release in which their `validate()` runs in a build at all — `transform()`
|
|
10
|
+
* never invoked it, only `Markdoc.validate()` does. `plugins/media` carries its
|
|
11
|
+
* own copies of these classes, which is what an unexported utility tends to
|
|
12
|
+
* produce. */
|
|
13
|
+
export { SeparatedString, CommaSeparatedList, SpaceSeparatedList, SpaceSeparatedNumberList, } from './attributes.js';
|
|
8
14
|
export { RenderableNodeCursor } from './lib/renderable.js';
|
|
9
|
-
export { createContentModelSchema, createComponentRenderable, asNodes, schemaContentModels, schemaRuneStructures, declareUniversalPosture, sanitizeSandboxContent } from './lib/index.js';
|
|
15
|
+
export { createContentModelSchema, createComponentRenderable, asNodes, schemaContentModels, schemaRuneStructures, declareUniversalPosture, sanitizeSandboxContent, } from './lib/index.js';
|
|
10
16
|
export type { RuneStructure, SectionRole } from './lib/index.js';
|
|
11
|
-
export { resolveUniversalAttributes, AXIS_ATTRIBUTES, POSTURE_REASONS } from './universal-attributes.js';
|
|
12
|
-
export type { UniversalAttributePosture, UniversalAttributeInput, UniversalAttributeAvailability } from './universal-attributes.js';
|
|
17
|
+
export { resolveUniversalAttributes, AXIS_ATTRIBUTES, POSTURE_REASONS, } from './universal-attributes.js';
|
|
18
|
+
export type { UniversalAttributePosture, UniversalAttributeInput, UniversalAttributeAvailability, } from './universal-attributes.js';
|
|
13
19
|
export { describeSchemaUniversals, UNRECORDED_REASON } from './schema-universals.js';
|
|
14
20
|
export type { SchemaUniversals, UnavailableAxis } from './schema-universals.js';
|
|
15
21
|
export type { DeprecationRule, ContentModelSchemaOptions } from './lib/index.js';
|
|
16
|
-
export { resolve, resolveSequence, resolveDelimited, resolveContentModel, resolveListItems, evaluateCondition, matchesType } from './lib/resolver.js';
|
|
22
|
+
export { resolve, resolveSequence, resolveDelimited, resolveContentModel, resolveListItems, evaluateCondition, matchesType, } from './lib/resolver.js';
|
|
17
23
|
export { registerImageScheme, resolveImageScheme, hasImageScheme } from './lib/image-schemes.js';
|
|
18
24
|
export type { ImageSchemeResolver, ImageSchemeContext } from './lib/image-schemes.js';
|
|
19
25
|
export { resolveIcon, splitIconName } from './lib/icon-resolve.js';
|
|
20
26
|
export type { IconResolveOptions, ResolvedIcon } from './lib/icon-resolve.js';
|
|
21
|
-
export { placeholderSvg, PLACEHOLDER_SHAPES, DEFAULT_PLACEHOLDER_SHAPE } from './lib/placeholder.js';
|
|
27
|
+
export { placeholderSvg, PLACEHOLDER_SHAPES, DEFAULT_PLACEHOLDER_SHAPE, } from './lib/placeholder.js';
|
|
22
28
|
export type { PlaceholderOptions } from './lib/placeholder.js';
|
|
23
29
|
export { FIXTURE_ROLES, splitFixture, parseFixtureFilename, validateFixtureFrontmatter, parseFixture, } from './fixtures.js';
|
|
24
30
|
export type { FixtureRole, FixtureFrontmatter, ParsedFixture, FixtureIssue } from './fixtures.js';
|
|
25
|
-
export { parseFieldMatch, matchesFieldMatch, matchesFilterExpr, resolveEntityField } from './field-match.js';
|
|
31
|
+
export { parseFieldMatch, matchesFieldMatch, matchesFilterExpr, resolveEntityField, } from './field-match.js';
|
|
26
32
|
export type { MatchableEntity, FieldMatchClause, ParsedFieldMatch } from './field-match.js';
|
|
27
|
-
export { DEFERRED_BODY_ATTR, captureDeferredBodies, readDeferredBody, transformDeferredTemplate } from './deferred-body.js';
|
|
33
|
+
export { DEFERRED_BODY_ATTR, captureDeferredBodies, readDeferredBody, transformDeferredTemplate, } from './deferred-body.js';
|
|
28
34
|
export { resolveCollections } from './collection-resolve.js';
|
|
29
35
|
export { resolveRelationships } from './relationships-resolve.js';
|
|
30
36
|
export { resolveAggregates } from './aggregate-resolve.js';
|
|
@@ -40,9 +46,9 @@ export { Ordering, buildOrdering, sortEntities, groupEntities, groupBy, entityUr
|
|
|
40
46
|
export type { CollectionEmbedConfig } from './collection-helpers.js';
|
|
41
47
|
export { COLLECTION_SENTINEL } from './tags/collection.js';
|
|
42
48
|
export { functions, currency, date, number, join, concat, humanize } from './functions.js';
|
|
43
|
-
export { linkItem, pageSectionProperties, buildLayoutMetas, splitMediaBodyFooter, extractMediaImage, unwrapParagraphImages, isMediaNode, isSchemeMediaNode, name as nameHelper, description as descriptionHelper, SplitablePageSectionModel, SplitLayoutModel, splitLayoutAttributes } from './tags/common.js';
|
|
49
|
+
export { linkItem, pageSectionProperties, buildLayoutMetas, splitMediaBodyFooter, extractMediaImage, unwrapParagraphImages, isMediaNode, isSchemeMediaNode, name as nameHelper, description as descriptionHelper, SplitablePageSectionModel, SplitLayoutModel, splitLayoutAttributes, } from './tags/common.js';
|
|
44
50
|
export type { LayoutMetas } from './tags/common.js';
|
|
45
|
-
export { extractHeadings, firstH1, headingsToList } from './util.js';
|
|
51
|
+
export { extractHeadings, firstH1, headingsToList, headingSlug, headingText, renderableText, } from './util.js';
|
|
46
52
|
export { LANG_MAP, FALLBACK_LANG, inferLanguage } from './lang-map.js';
|
|
47
53
|
export type { HeadingInfo } from './util.js';
|
|
48
54
|
export { extractSeo, collectJsonLd, textContent } from './seo.js';
|
|
@@ -56,11 +62,11 @@ export { registerAttributePreset, lookupAttributePreset, schemaBasePresets, UNIV
|
|
|
56
62
|
export type { AttributePresetMetadata } from './attribute-presets.js';
|
|
57
63
|
export { LAYOUT, CANONICAL_LAYOUTS, layoutMatches } from './layout-vocabulary.js';
|
|
58
64
|
export type { CanonicalLayout } from './layout-vocabulary.js';
|
|
59
|
-
export { READING_REGISTERS, DEFAULT_READING, READING_CAPABILITIES, resolveReading, coerceRegister } from '@refrakt-md/transform';
|
|
65
|
+
export { READING_REGISTERS, DEFAULT_READING, READING_CAPABILITIES, resolveReading, coerceRegister, } from '@refrakt-md/transform';
|
|
60
66
|
export type { ReadingRegister, ReadingResolutionInput } from '@refrakt-md/transform';
|
|
61
|
-
export { loadPlugin, mergePlugins, applyAliases, loadLocalRunes, discoverPluginFixtures, discoverPluginFixtureManifest, assertFileRootNamespaceAllowed } from './plugins.js';
|
|
67
|
+
export { loadPlugin, mergePlugins, applyAliases, loadLocalRunes, discoverPluginFixtures, discoverPluginFixtureManifest, assertFileRootNamespaceAllowed, } from './plugins.js';
|
|
62
68
|
export type { LoadedPlugin, MergedPluginResult } from './plugins.js';
|
|
63
|
-
export { coreConfig, baseConfig, corePipelineHooks, createCorePipelineHooks, resolveCoreSentinels, type PageTreeNode, type CorePipelineHooksOptions } from './config.js';
|
|
69
|
+
export { coreConfig, baseConfig, corePipelineHooks, createCorePipelineHooks, resolveCoreSentinels, type PageTreeNode, type CorePipelineHooksOptions, } from './config.js';
|
|
64
70
|
export { coreTranslations } from './translations.generated.js';
|
|
65
71
|
export { BREADCRUMB_AUTO_SENTINEL } from './tags/breadcrumb.js';
|
|
66
72
|
export { NAV_AUTO_SENTINEL } from './tags/nav.js';
|
|
@@ -81,7 +87,6 @@ export declare const runes: {
|
|
|
81
87
|
region: import("./rune.js").Rune;
|
|
82
88
|
layout: import("./rune.js").Rune;
|
|
83
89
|
codegroup: import("./rune.js").Rune;
|
|
84
|
-
error: import("./rune.js").Rune;
|
|
85
90
|
grid: import("./rune.js").Rune;
|
|
86
91
|
hint: import("./rune.js").Rune;
|
|
87
92
|
tab: import("./rune.js").Rune;
|
|
@@ -104,6 +109,8 @@ export declare const runes: {
|
|
|
104
109
|
diff: import("./rune.js").Rune;
|
|
105
110
|
snippet: import("./rune.js").Rune;
|
|
106
111
|
data: import("./rune.js").Rune;
|
|
112
|
+
code: import("./rune.js").Rune;
|
|
113
|
+
include: import("./rune.js").Rune;
|
|
107
114
|
chart: import("./rune.js").Rune;
|
|
108
115
|
diagram: import("./rune.js").Rune;
|
|
109
116
|
sidenote: import("./rune.js").Rune;
|
|
@@ -146,30 +153,80 @@ export declare const runes: {
|
|
|
146
153
|
* gives template authors a way to build dynamic links inside collection
|
|
147
154
|
* cells, partials, etc. */
|
|
148
155
|
export declare const tags: {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
|
|
156
|
+
if: {
|
|
157
|
+
attributes: {
|
|
158
|
+
primary: {
|
|
159
|
+
render: boolean;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
render?: string | undefined;
|
|
163
|
+
children?: string[];
|
|
164
|
+
slots?: Record<string, Markdoc.SchemaSlot>;
|
|
165
|
+
selfClosing?: boolean;
|
|
166
|
+
inline?: boolean;
|
|
167
|
+
transform?(node: Markdoc.Node, config: Readonly<Partial<{
|
|
168
|
+
nodes: Partial<Record<import("@markdoc/markdoc/dist/src/types.js").NodeType, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>>;
|
|
169
|
+
tags: Record<string, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>;
|
|
170
|
+
variables: Record<string, any>;
|
|
171
|
+
functions: Record<string, import("@markdoc/markdoc/dist/src/types.js").ConfigFunction>;
|
|
172
|
+
partials: Record<string, any>;
|
|
173
|
+
validation?: {
|
|
174
|
+
parents?: import("@markdoc/markdoc/dist/src/types.js").Node[] | undefined;
|
|
175
|
+
validateFunctions?: boolean | undefined;
|
|
176
|
+
environment?: string | undefined;
|
|
177
|
+
} | undefined;
|
|
178
|
+
}>>): Markdoc.MaybePromise<Markdoc.RenderableTreeNodes>;
|
|
179
|
+
validate?(node: Markdoc.Node, config: Readonly<Partial<{
|
|
180
|
+
nodes: Partial<Record<import("@markdoc/markdoc/dist/src/types.js").NodeType, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>>;
|
|
181
|
+
tags: Record<string, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>;
|
|
182
|
+
variables: Record<string, any>;
|
|
183
|
+
functions: Record<string, import("@markdoc/markdoc/dist/src/types.js").ConfigFunction>;
|
|
184
|
+
partials: Record<string, any>;
|
|
185
|
+
validation?: {
|
|
186
|
+
parents?: import("@markdoc/markdoc/dist/src/types.js").Node[] | undefined;
|
|
187
|
+
validateFunctions?: boolean | undefined;
|
|
188
|
+
environment?: string | undefined;
|
|
189
|
+
} | undefined;
|
|
190
|
+
}>>): Markdoc.MaybePromise<Markdoc.ValidationError[]>;
|
|
191
|
+
description?: string;
|
|
192
|
+
};
|
|
193
|
+
else: {
|
|
194
|
+
attributes: {
|
|
195
|
+
primary: {
|
|
196
|
+
render: boolean;
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
render?: string | undefined;
|
|
200
|
+
children?: string[];
|
|
201
|
+
slots?: Record<string, Markdoc.SchemaSlot>;
|
|
202
|
+
selfClosing?: boolean;
|
|
203
|
+
inline?: boolean;
|
|
204
|
+
transform?(node: Markdoc.Node, config: Readonly<Partial<{
|
|
205
|
+
nodes: Partial<Record<import("@markdoc/markdoc/dist/src/types.js").NodeType, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>>;
|
|
206
|
+
tags: Record<string, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>;
|
|
207
|
+
variables: Record<string, any>;
|
|
208
|
+
functions: Record<string, import("@markdoc/markdoc/dist/src/types.js").ConfigFunction>;
|
|
209
|
+
partials: Record<string, any>;
|
|
210
|
+
validation?: {
|
|
211
|
+
parents?: import("@markdoc/markdoc/dist/src/types.js").Node[] | undefined;
|
|
212
|
+
validateFunctions?: boolean | undefined;
|
|
213
|
+
environment?: string | undefined;
|
|
214
|
+
} | undefined;
|
|
215
|
+
}>>): Markdoc.MaybePromise<Markdoc.RenderableTreeNodes>;
|
|
216
|
+
validate?(node: Markdoc.Node, config: Readonly<Partial<{
|
|
217
|
+
nodes: Partial<Record<import("@markdoc/markdoc/dist/src/types.js").NodeType, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>>;
|
|
218
|
+
tags: Record<string, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>;
|
|
219
|
+
variables: Record<string, any>;
|
|
220
|
+
functions: Record<string, import("@markdoc/markdoc/dist/src/types.js").ConfigFunction>;
|
|
221
|
+
partials: Record<string, any>;
|
|
222
|
+
validation?: {
|
|
223
|
+
parents?: import("@markdoc/markdoc/dist/src/types.js").Node[] | undefined;
|
|
224
|
+
validateFunctions?: boolean | undefined;
|
|
225
|
+
environment?: string | undefined;
|
|
226
|
+
} | undefined;
|
|
227
|
+
}>>): Markdoc.MaybePromise<Markdoc.ValidationError[]>;
|
|
228
|
+
description?: string;
|
|
229
|
+
};
|
|
173
230
|
partial: import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<{
|
|
174
231
|
nodes: Partial<Record<import("@markdoc/markdoc/dist/src/types.js").NodeType, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>>;
|
|
175
232
|
tags: Record<string, import("@markdoc/markdoc/dist/src/types.js").Schema<Readonly<Partial<any>>, string>>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|