@refrakt-md/runes 0.16.0 → 0.17.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/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +72 -41
- package/dist/config.js.map +1 -1
- package/dist/drawer-pipeline.d.ts +72 -1
- package/dist/drawer-pipeline.d.ts.map +1 -1
- package/dist/drawer-pipeline.js +242 -1
- package/dist/drawer-pipeline.js.map +1 -1
- package/dist/file-ref-resolve.d.ts +22 -0
- package/dist/file-ref-resolve.d.ts.map +1 -0
- package/dist/file-ref-resolve.js +233 -0
- package/dist/file-ref-resolve.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +62 -8
- package/dist/nodes.js.map +1 -1
- package/dist/snippet-pipeline.d.ts +7 -5
- package/dist/snippet-pipeline.d.ts.map +1 -1
- package/dist/snippet-pipeline.js +32 -13
- package/dist/snippet-pipeline.js.map +1 -1
- package/dist/tags/badge.d.ts +5 -6
- package/dist/tags/badge.d.ts.map +1 -1
- package/dist/tags/badge.js +7 -18
- package/dist/tags/badge.js.map +1 -1
- package/dist/tags/bar.d.ts +23 -0
- package/dist/tags/bar.d.ts.map +1 -0
- package/dist/tags/bar.js +64 -0
- package/dist/tags/bar.js.map +1 -0
- package/dist/tags/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +41 -2
- package/dist/tags/codegroup.js.map +1 -1
- package/dist/tags/deflist.d.ts +20 -0
- package/dist/tags/deflist.d.ts.map +1 -0
- package/dist/tags/deflist.js +173 -0
- package/dist/tags/deflist.js.map +1 -0
- package/dist/tags/diff.d.ts.map +1 -1
- package/dist/tags/diff.js +85 -18
- package/dist/tags/diff.js.map +1 -1
- package/dist/tags/drawer.d.ts.map +1 -1
- package/dist/tags/drawer.js +32 -2
- package/dist/tags/drawer.js.map +1 -1
- package/dist/tags/file-ref.d.ts +21 -0
- package/dist/tags/file-ref.d.ts.map +1 -0
- package/dist/tags/file-ref.js +88 -0
- package/dist/tags/file-ref.js.map +1 -0
- package/dist/tags/snippet.d.ts.map +1 -1
- package/dist/tags/snippet.js +10 -0
- package/dist/tags/snippet.js.map +1 -1
- package/dist/tags/xref.d.ts.map +1 -1
- package/dist/tags/xref.js +9 -0
- package/dist/tags/xref.js.map +1 -1
- package/dist/xref-preview-resolve.d.ts +35 -0
- package/dist/xref-preview-resolve.d.ts.map +1 -0
- package/dist/xref-preview-resolve.js +188 -0
- package/dist/xref-preview-resolve.js.map +1 -0
- package/package.json +3 -3
package/dist/tags/drawer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
/** Sentinel `data-field` value the file-ref schema emits. The resolver
|
|
3
|
+
* (file-ref-resolve.ts) walks the postProcess tree, finds these, and
|
|
4
|
+
* binds the inline `<a>` to the GitHub URL plus (when `preview="drawer"`
|
|
5
|
+
* is set) a hoist sentinel for the drawer pipeline to pick up. */
|
|
6
|
+
export declare const FILE_REF_SENTINEL = "__file-ref-sentinel";
|
|
7
|
+
/**
|
|
8
|
+
* `file-ref` rune — path-based inline reference to a project file
|
|
9
|
+
* (SPEC-078). Renders as an inline `<a>` to the file's canonical GitHub
|
|
10
|
+
* URL (built from `SiteConfig.repoUrl` + `repoBranch`), with an optional
|
|
11
|
+
* `preview="drawer"` mode that hoists a drawer containing the file's
|
|
12
|
+
* snippet and a "View source on GitHub →" footer link.
|
|
13
|
+
*
|
|
14
|
+
* The transform emits a sentinel meta + placeholder `<a>`. The actual
|
|
15
|
+
* link href, the drawer body, and the hoist sentinel are all bound in
|
|
16
|
+
* postProcess by `resolveFileRefs` so that the rune doesn't need
|
|
17
|
+
* site-config access at transform time and so the file content is read
|
|
18
|
+
* once (not per page-with-mention).
|
|
19
|
+
*/
|
|
20
|
+
export declare const fileRef: Markdoc.Schema;
|
|
21
|
+
//# sourceMappingURL=file-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-ref.d.ts","sourceRoot":"","sources":["../../src/tags/file-ref.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAIvC;;;mEAGmE;AACnE,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,gBA+DlB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
const { Tag } = Markdoc;
|
|
3
|
+
import { createContentModelSchema, createComponentRenderable } from '../lib/index.js';
|
|
4
|
+
/** Sentinel `data-field` value the file-ref schema emits. The resolver
|
|
5
|
+
* (file-ref-resolve.ts) walks the postProcess tree, finds these, and
|
|
6
|
+
* binds the inline `<a>` to the GitHub URL plus (when `preview="drawer"`
|
|
7
|
+
* is set) a hoist sentinel for the drawer pipeline to pick up. */
|
|
8
|
+
export const FILE_REF_SENTINEL = '__file-ref-sentinel';
|
|
9
|
+
/**
|
|
10
|
+
* `file-ref` rune — path-based inline reference to a project file
|
|
11
|
+
* (SPEC-078). Renders as an inline `<a>` to the file's canonical GitHub
|
|
12
|
+
* URL (built from `SiteConfig.repoUrl` + `repoBranch`), with an optional
|
|
13
|
+
* `preview="drawer"` mode that hoists a drawer containing the file's
|
|
14
|
+
* snippet and a "View source on GitHub →" footer link.
|
|
15
|
+
*
|
|
16
|
+
* The transform emits a sentinel meta + placeholder `<a>`. The actual
|
|
17
|
+
* link href, the drawer body, and the hoist sentinel are all bound in
|
|
18
|
+
* postProcess by `resolveFileRefs` so that the rune doesn't need
|
|
19
|
+
* site-config access at transform time and so the file content is read
|
|
20
|
+
* once (not per page-with-mention).
|
|
21
|
+
*/
|
|
22
|
+
export const fileRef = createContentModelSchema({
|
|
23
|
+
attributes: {
|
|
24
|
+
path: {
|
|
25
|
+
type: String,
|
|
26
|
+
required: true,
|
|
27
|
+
description: 'Project-root-relative file path. Same sandbox as snippet — absolute paths, traversal escapes, and out-of-root symlinks are rejected.',
|
|
28
|
+
},
|
|
29
|
+
lines: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: false,
|
|
32
|
+
description: 'Line range. `"42-58"` (range), `"42"` (single line). Drives both the GitHub anchor (#L42-L58) and the drawer-body snippet slice when `preview="drawer"`.',
|
|
33
|
+
},
|
|
34
|
+
label: {
|
|
35
|
+
type: String,
|
|
36
|
+
required: false,
|
|
37
|
+
description: 'Display text for the inline link. Defaults to the filename (e.g. `token-contract.ts`). Pass an explicit label when the file-ref refers to a symbol within the file rather than the file itself.',
|
|
38
|
+
},
|
|
39
|
+
preview: {
|
|
40
|
+
type: String,
|
|
41
|
+
required: false,
|
|
42
|
+
matches: ['drawer'],
|
|
43
|
+
description: 'Preview target. `"drawer"` hoists a drawer with the file\'s snippet + a GitHub footer link, leaving an inline link at the call site that opens it. Absent → no preview, just the inline link.',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
selfClosing: true,
|
|
47
|
+
contentModel: { type: 'sequence', fields: [] },
|
|
48
|
+
transform(_resolved, attrs) {
|
|
49
|
+
const path = String(attrs.path ?? '');
|
|
50
|
+
const lines = attrs.lines !== undefined ? String(attrs.lines) : '';
|
|
51
|
+
const label = attrs.label !== undefined ? String(attrs.label) : '';
|
|
52
|
+
const preview = attrs.preview !== undefined ? String(attrs.preview) : '';
|
|
53
|
+
// Default label: the basename of the path. Authors typically want
|
|
54
|
+
// to refer to a symbol inside the file (e.g. "ThemeTokensConfig")
|
|
55
|
+
// and pass an explicit label; this default is the conservative
|
|
56
|
+
// fallback when no label is given.
|
|
57
|
+
const fallbackLabel = defaultLabel(path);
|
|
58
|
+
const meta = (field, content) => new Tag('meta', { 'data-field': field, content });
|
|
59
|
+
const metas = [
|
|
60
|
+
meta('file-ref-path', path),
|
|
61
|
+
meta('file-ref-lines', lines),
|
|
62
|
+
meta('file-ref-label', label),
|
|
63
|
+
meta('file-ref-preview', preview),
|
|
64
|
+
meta(FILE_REF_SENTINEL, 'true'),
|
|
65
|
+
];
|
|
66
|
+
// Placeholder anchor with the fallback label — resolver replaces
|
|
67
|
+
// the href and (when label is empty) keeps the fallback text.
|
|
68
|
+
const placeholder = new Tag('a', {}, [label || fallbackLabel]);
|
|
69
|
+
return createComponentRenderable({
|
|
70
|
+
rune: 'file-ref',
|
|
71
|
+
// Span keeps the rune inline-safe in prose. The resolver later
|
|
72
|
+
// replaces the span's children with the bound anchor + (with
|
|
73
|
+
// preview) a sibling hoist sentinel.
|
|
74
|
+
tag: 'span',
|
|
75
|
+
properties: {},
|
|
76
|
+
refs: { link: placeholder },
|
|
77
|
+
children: [...metas, placeholder],
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
function defaultLabel(path) {
|
|
82
|
+
if (!path)
|
|
83
|
+
return '';
|
|
84
|
+
const trimmed = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
85
|
+
const slash = trimmed.lastIndexOf('/');
|
|
86
|
+
return slash >= 0 ? trimmed.slice(slash + 1) : trimmed;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=file-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-ref.js","sourceRoot":"","sources":["../../src/tags/file-ref.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEtF;;;mEAGmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sIAAsI;SACnJ;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,0JAA0J;SACvK;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,iMAAiM;SAC9M;QACD,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,+LAA+L;SAC5M;KACD;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,SAAS,CAAC,SAAS,EAAE,KAAK;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,kEAAkE;QAClE,kEAAkE;QAClE,+DAA+D;QAC/D,mCAAmC;QACnC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnG,MAAM,KAAK,GAAG;YACb,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;YAC3B,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;YAC7B,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;YAC7B,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;YACjC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;SAC/B,CAAC;QAEF,iEAAiE;QACjE,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;QAE/D,OAAO,yBAAyB,CAAC;YAChC,IAAI,EAAE,UAAU;YAChB,+DAA+D;YAC/D,6DAA6D;YAC7D,qCAAqC;YACrC,GAAG,EAAE,MAAM;YACX,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;YAC3B,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO,mCAyClB,CAAC"}
|
package/dist/tags/snippet.js
CHANGED
|
@@ -33,6 +33,16 @@ export const snippet = createContentModelSchema({
|
|
|
33
33
|
required: false,
|
|
34
34
|
description: 'Syntax-highlighting language hint. Overrides the extension-based inference.',
|
|
35
35
|
},
|
|
36
|
+
linenumbers: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
required: false,
|
|
39
|
+
description: 'Show line numbers in the gutter. Starting number derives from the `lines` range start (e.g. lines="74-125" → first line is 74), so numbers reflect the file\'s real offsets. WORK-304.',
|
|
40
|
+
},
|
|
41
|
+
highlight: {
|
|
42
|
+
type: String,
|
|
43
|
+
required: false,
|
|
44
|
+
description: 'Range(s) to emphasize without cropping — Shiki-style format: "74-78", "74-78,82,90-92". Indices are file coordinates (same frame as `lines=`). Use this when you want full context visible but want to draw the eye to specific lines. WORK-304.',
|
|
45
|
+
},
|
|
36
46
|
},
|
|
37
47
|
contentModel: { type: 'sequence', fields: [] },
|
|
38
48
|
transform(_resolved, _attrs) {
|
package/dist/tags/snippet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yFAAyF;SACtG;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6GAA6G;SAC1H;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6EAA6E;SAC1F;KACD;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,SAAS,CAAC,SAAS,EAAE,MAAM;QAC1B,iEAAiE;QACjE,oEAAoE;QACpE,+DAA+D;QAC/D,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,IAAI,KAAK,CACd,wFAAwF;YACxF,4FAA4F;YAC5F,+EAA+E,CAC/E,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../src/tags/snippet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yFAAyF;SACtG;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6GAA6G;SAC1H;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6EAA6E;SAC1F;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,wLAAwL;SACrM;QACD,SAAS,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,kPAAkP;SAC/P;KACD;IACD,YAAY,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;IAC9C,SAAS,CAAC,SAAS,EAAE,MAAM;QAC1B,iEAAiE;QACjE,oEAAoE;QACpE,+DAA+D;QAC/D,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,IAAI,KAAK,CACd,wFAAwF;YACxF,4FAA4F;YAC5F,+EAA+E,CAC/E,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
|
package/dist/tags/xref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xref.d.ts","sourceRoot":"","sources":["../../src/tags/xref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG7D,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"xref.d.ts","sourceRoot":"","sources":["../../src/tags/xref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG7D,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE,MA4ClB,CAAC"}
|
package/dist/tags/xref.js
CHANGED
|
@@ -34,11 +34,18 @@ export const xref = {
|
|
|
34
34
|
required: false,
|
|
35
35
|
description: 'Entity type hint for disambiguation',
|
|
36
36
|
},
|
|
37
|
+
preview: {
|
|
38
|
+
type: String,
|
|
39
|
+
required: false,
|
|
40
|
+
matches: ['drawer'],
|
|
41
|
+
description: 'Preview target. `"drawer"` hoists a drawer containing the entity\'s expanded content + a link to its resolved page URL in the chrome footer, leaving an inline link at the call site that opens it. Absent → today\'s behaviour (just the inline link). SPEC-078.',
|
|
42
|
+
},
|
|
37
43
|
},
|
|
38
44
|
transform(node, config) {
|
|
39
45
|
const id = node.attributes.primary;
|
|
40
46
|
const label = node.attributes.label;
|
|
41
47
|
const type = node.attributes.type;
|
|
48
|
+
const preview = node.attributes.preview;
|
|
42
49
|
const attrs = {
|
|
43
50
|
'data-rune': XREF_RUNE_MARKER,
|
|
44
51
|
'data-xref-id': id,
|
|
@@ -47,6 +54,8 @@ export const xref = {
|
|
|
47
54
|
attrs['data-xref-label'] = label;
|
|
48
55
|
if (type)
|
|
49
56
|
attrs['data-xref-type'] = type;
|
|
57
|
+
if (preview)
|
|
58
|
+
attrs['data-xref-preview'] = preview;
|
|
50
59
|
// Placeholder text: custom label or the raw reference string
|
|
51
60
|
return new Tag('span', attrs, [label || id]);
|
|
52
61
|
},
|
package/dist/tags/xref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xref.js","sourceRoot":"","sources":["../../src/tags/xref.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAExB,yFAAyF;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAW;IAC3B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACX,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8BAA8B;SAC3C;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6CAA6C;SAC1D;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,qCAAqC;SAClD;KACD;IACD,SAAS,CAAC,IAAU,EAAE,MAAc;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAiB,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAA2B,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"xref.js","sourceRoot":"","sources":["../../src/tags/xref.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAExB,yFAAyF;AACzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAW;IAC3B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACX,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8BAA8B;SAC3C;QACD,KAAK,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6CAA6C;SAC1D;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,qCAAqC;SAClD;QACD,OAAO,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,mQAAmQ;SAChR;KACD;IACD,SAAS,CAAC,IAAU,EAAE,MAAc;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAiB,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAA2B,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAA0B,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAA6B,CAAC;QAE9D,MAAM,KAAK,GAA2B;YACrC,WAAW,EAAE,gBAAgB;YAC7B,cAAc,EAAE,EAAE;SAClB,CAAC;QAEF,IAAI,KAAK;YAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;QAC5C,IAAI,IAAI;YAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACzC,IAAI,OAAO;YAAE,KAAK,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;QAElD,6DAA6D;QAC7D,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xref `preview="drawer"` resolver (SPEC-078, WORK-302).
|
|
3
|
+
*
|
|
4
|
+
* Runs BEFORE the drawer hoist pass. Walks the page renderable, finds
|
|
5
|
+
* xref placeholders carrying `data-xref-preview="drawer"`, and rewrites
|
|
6
|
+
* each as an inline `<a href="#drawer-{entityId}">` (with aria attrs)
|
|
7
|
+
* accompanied by a `hoist-drawer` sentinel that the drawer pipeline
|
|
8
|
+
* (WORK-300) picks up to render the actual drawer at the page root.
|
|
9
|
+
*
|
|
10
|
+
* Non-preview xref placeholders pass through unchanged — the existing
|
|
11
|
+
* `resolveXrefs` pass (later in the pipeline) handles those.
|
|
12
|
+
*
|
|
13
|
+
* Also registers a hoist builder for the `xref` source. The builder
|
|
14
|
+
* looks up the entity by id and emits a drawer whose body is an
|
|
15
|
+
* `expand-pending` placeholder for the entity — the `resolveExpands`
|
|
16
|
+
* pass that runs *after* the hoist substitutes the placeholder with
|
|
17
|
+
* the entity's actual content, so the drawer body ends up identical
|
|
18
|
+
* to a manual `{% drawer %}{% expand "X" /%}{% /drawer %}`.
|
|
19
|
+
*/
|
|
20
|
+
import type { EntityRegistry, PipelineContext } from '@refrakt-md/types';
|
|
21
|
+
/**
|
|
22
|
+
* Walk a page's renderable. For each xref placeholder with
|
|
23
|
+
* `data-xref-preview="drawer"`:
|
|
24
|
+
*
|
|
25
|
+
* - Replace the placeholder span with `<a href="#drawer-{id}">` carrying
|
|
26
|
+
* `aria-controls`, `aria-expanded="false"`, `data-target-type="drawer"`.
|
|
27
|
+
* - Emit a sibling `<meta data-field="hoist-drawer">` sentinel with
|
|
28
|
+
* `data-source="xref"` + the entity id + the authored label, for the
|
|
29
|
+
* drawer pipeline to consume.
|
|
30
|
+
*
|
|
31
|
+
* Non-preview xref placeholders are left for `resolveXrefs` to handle in
|
|
32
|
+
* its own pass.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveXrefPreviews(renderable: unknown, pageUrl: string, registry: Readonly<EntityRegistry> | undefined, ctx: PipelineContext): unknown;
|
|
35
|
+
//# sourceMappingURL=xref-preview-resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xref-preview-resolve.d.ts","sourceRoot":"","sources":["../src/xref-preview-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAsB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAgB7F;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,SAAS,EAC9C,GAAG,EAAE,eAAe,GAClB,OAAO,CAoCT"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xref `preview="drawer"` resolver (SPEC-078, WORK-302).
|
|
3
|
+
*
|
|
4
|
+
* Runs BEFORE the drawer hoist pass. Walks the page renderable, finds
|
|
5
|
+
* xref placeholders carrying `data-xref-preview="drawer"`, and rewrites
|
|
6
|
+
* each as an inline `<a href="#drawer-{entityId}">` (with aria attrs)
|
|
7
|
+
* accompanied by a `hoist-drawer` sentinel that the drawer pipeline
|
|
8
|
+
* (WORK-300) picks up to render the actual drawer at the page root.
|
|
9
|
+
*
|
|
10
|
+
* Non-preview xref placeholders pass through unchanged — the existing
|
|
11
|
+
* `resolveXrefs` pass (later in the pipeline) handles those.
|
|
12
|
+
*
|
|
13
|
+
* Also registers a hoist builder for the `xref` source. The builder
|
|
14
|
+
* looks up the entity by id and emits a drawer whose body is an
|
|
15
|
+
* `expand-pending` placeholder for the entity — the `resolveExpands`
|
|
16
|
+
* pass that runs *after* the hoist substitutes the placeholder with
|
|
17
|
+
* the entity's actual content, so the drawer body ends up identical
|
|
18
|
+
* to a manual `{% drawer %}{% expand "X" /%}{% /drawer %}`.
|
|
19
|
+
*/
|
|
20
|
+
import Markdoc from '@markdoc/markdoc';
|
|
21
|
+
import { HOIST_DRAWER_SENTINEL, registerHoistBuilder, } from './drawer-pipeline.js';
|
|
22
|
+
import { XREF_RUNE_MARKER } from './tags/xref.js';
|
|
23
|
+
import { EXPAND_PLACEHOLDER_MARKER } from './tags/expand.js';
|
|
24
|
+
const { Tag } = Markdoc;
|
|
25
|
+
function isTag(node) {
|
|
26
|
+
return Tag.isTag(node);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Walk a page's renderable. For each xref placeholder with
|
|
30
|
+
* `data-xref-preview="drawer"`:
|
|
31
|
+
*
|
|
32
|
+
* - Replace the placeholder span with `<a href="#drawer-{id}">` carrying
|
|
33
|
+
* `aria-controls`, `aria-expanded="false"`, `data-target-type="drawer"`.
|
|
34
|
+
* - Emit a sibling `<meta data-field="hoist-drawer">` sentinel with
|
|
35
|
+
* `data-source="xref"` + the entity id + the authored label, for the
|
|
36
|
+
* drawer pipeline to consume.
|
|
37
|
+
*
|
|
38
|
+
* Non-preview xref placeholders are left for `resolveXrefs` to handle in
|
|
39
|
+
* its own pass.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveXrefPreviews(renderable, pageUrl, registry, ctx) {
|
|
42
|
+
const walk = (node) => {
|
|
43
|
+
if (Array.isArray(node)) {
|
|
44
|
+
let mutated = false;
|
|
45
|
+
const out = [];
|
|
46
|
+
for (const c of node) {
|
|
47
|
+
const w = walk(c);
|
|
48
|
+
if (w !== c)
|
|
49
|
+
mutated = true;
|
|
50
|
+
if (Array.isArray(w))
|
|
51
|
+
out.push(...w);
|
|
52
|
+
else
|
|
53
|
+
out.push(w);
|
|
54
|
+
}
|
|
55
|
+
return mutated ? out : node;
|
|
56
|
+
}
|
|
57
|
+
if (!isTag(node))
|
|
58
|
+
return node;
|
|
59
|
+
const tag = node;
|
|
60
|
+
if (tag.attributes?.['data-rune'] === XREF_RUNE_MARKER
|
|
61
|
+
&& tag.attributes?.['data-xref-preview'] === 'drawer') {
|
|
62
|
+
return resolveOne(tag, registry, ctx, pageUrl);
|
|
63
|
+
}
|
|
64
|
+
if (!tag.children || tag.children.length === 0)
|
|
65
|
+
return tag;
|
|
66
|
+
let mutated = false;
|
|
67
|
+
const next = [];
|
|
68
|
+
for (const c of tag.children) {
|
|
69
|
+
const w = walk(c);
|
|
70
|
+
if (w !== c)
|
|
71
|
+
mutated = true;
|
|
72
|
+
if (Array.isArray(w))
|
|
73
|
+
next.push(...w);
|
|
74
|
+
else
|
|
75
|
+
next.push(w);
|
|
76
|
+
}
|
|
77
|
+
if (!mutated)
|
|
78
|
+
return tag;
|
|
79
|
+
return new Tag(tag.name, tag.attributes, next);
|
|
80
|
+
};
|
|
81
|
+
return walk(renderable);
|
|
82
|
+
}
|
|
83
|
+
function resolveOne(placeholder, registry, ctx, pageUrl) {
|
|
84
|
+
const attrs = placeholder.attributes;
|
|
85
|
+
const id = String(attrs['data-xref-id'] ?? '');
|
|
86
|
+
const authoredLabel = attrs['data-xref-label'];
|
|
87
|
+
if (!id) {
|
|
88
|
+
ctx.warn(`xref preview placeholder on ${pageUrl} has no entity id`, pageUrl);
|
|
89
|
+
return [placeholder];
|
|
90
|
+
}
|
|
91
|
+
// Try to resolve the entity title for the inline link label when the
|
|
92
|
+
// author didn't supply an explicit `label=`. Fall back to the id.
|
|
93
|
+
const entity = registry ? findEntity(registry, id) : undefined;
|
|
94
|
+
const label = authoredLabel
|
|
95
|
+
|| (entity ? entityDisplayLabel(entity) : id);
|
|
96
|
+
const entityTitle = entity ? entityDisplayLabel(entity) : id;
|
|
97
|
+
const slug = id;
|
|
98
|
+
const anchor = new Tag('a', {
|
|
99
|
+
class: 'rf-xref',
|
|
100
|
+
href: `#drawer-${slug}`,
|
|
101
|
+
'aria-controls': `drawer-${slug}`,
|
|
102
|
+
'aria-expanded': 'false',
|
|
103
|
+
'data-target-type': 'drawer',
|
|
104
|
+
'data-xref-id': id,
|
|
105
|
+
}, [label]);
|
|
106
|
+
const sentinel = new Tag('meta', {
|
|
107
|
+
'data-field': HOIST_DRAWER_SENTINEL,
|
|
108
|
+
'data-source': 'xref',
|
|
109
|
+
'data-target-id': slug,
|
|
110
|
+
'data-title': entityTitle,
|
|
111
|
+
'data-entity-id': id,
|
|
112
|
+
});
|
|
113
|
+
return [anchor, sentinel];
|
|
114
|
+
}
|
|
115
|
+
function findEntity(registry, id) {
|
|
116
|
+
const types = registry.getTypes?.() ?? [];
|
|
117
|
+
for (const type of types) {
|
|
118
|
+
const e = registry.getById(type, id);
|
|
119
|
+
if (e)
|
|
120
|
+
return e;
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
function entityDisplayLabel(entity) {
|
|
125
|
+
const data = entity.data;
|
|
126
|
+
return String(data.title ?? data.name ?? entity.id);
|
|
127
|
+
}
|
|
128
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
129
|
+
// Hoist builder for the `xref` source — looks up the entity, builds a
|
|
130
|
+
// drawer with an expand-pending body that `resolveExpands` resolves
|
|
131
|
+
// downstream, and a chrome footer linking to the entity's page URL.
|
|
132
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
133
|
+
function buildXrefHoist(payload, context) {
|
|
134
|
+
const entityId = payload['entity-id'] || payload['target-id'];
|
|
135
|
+
const targetId = payload['target-id'];
|
|
136
|
+
const title = payload.title || entityId;
|
|
137
|
+
if (!entityId || !targetId) {
|
|
138
|
+
context.ctx.warn(`xref hoist payload missing required entity-id or target-id`, context.pageUrl);
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const entity = context.registry ? findEntity(context.registry, entityId) : undefined;
|
|
142
|
+
// Header — title + close button (same shape author-declared drawers use).
|
|
143
|
+
const titleHeading = new Tag('h3', { 'data-name': 'title', class: 'rf-drawer__title' }, [title]);
|
|
144
|
+
const closeButton = new Tag('button', {
|
|
145
|
+
type: 'button',
|
|
146
|
+
'aria-label': 'Close',
|
|
147
|
+
hidden: true,
|
|
148
|
+
'data-name': 'close',
|
|
149
|
+
class: 'rf-drawer__close',
|
|
150
|
+
}, ['×']);
|
|
151
|
+
const header = new Tag('header', {
|
|
152
|
+
'data-name': 'header',
|
|
153
|
+
class: 'rf-drawer__header',
|
|
154
|
+
}, [titleHeading, closeButton]);
|
|
155
|
+
// Body — an expand-pending placeholder. `resolveExpands` runs after
|
|
156
|
+
// `hoistPreviewDrawers` in the pipeline and substitutes this with the
|
|
157
|
+
// entity's actual content, identical to a hand-authored
|
|
158
|
+
// `{% drawer %}{% expand "X" /%}{% /drawer %}` composition.
|
|
159
|
+
const expandPlaceholder = new Tag('div', {
|
|
160
|
+
'data-rune': EXPAND_PLACEHOLDER_MARKER,
|
|
161
|
+
'data-expand-id': entityId,
|
|
162
|
+
}, []);
|
|
163
|
+
const bodyChildren = [expandPlaceholder];
|
|
164
|
+
const body = new Tag('div', { 'data-name': 'body', class: 'rf-drawer__body' }, bodyChildren);
|
|
165
|
+
// Footer — link to the entity's page URL (when one resolves). Hides
|
|
166
|
+
// silently for entities without a sourceUrl (heading entities,
|
|
167
|
+
// drawer-target entities).
|
|
168
|
+
const footerHref = entity?.sourceUrl ?? '';
|
|
169
|
+
const footer = footerHref
|
|
170
|
+
? new Tag('footer', { 'data-name': 'footer', class: 'rf-drawer__footer' }, [
|
|
171
|
+
new Tag('a', { href: footerHref }, [`View full page →`]),
|
|
172
|
+
])
|
|
173
|
+
: null;
|
|
174
|
+
const drawerChildren = [header, body];
|
|
175
|
+
if (footer)
|
|
176
|
+
drawerChildren.push(footer);
|
|
177
|
+
return new Tag('section', {
|
|
178
|
+
id: `drawer-${targetId}`,
|
|
179
|
+
class: 'rf-drawer',
|
|
180
|
+
'data-rune': 'drawer',
|
|
181
|
+
'data-drawer-id': targetId,
|
|
182
|
+
'data-side': 'right',
|
|
183
|
+
'data-size': 'md',
|
|
184
|
+
}, drawerChildren);
|
|
185
|
+
}
|
|
186
|
+
// Register at module load.
|
|
187
|
+
registerHoistBuilder('xref', buildXrefHoist);
|
|
188
|
+
//# sourceMappingURL=xref-preview-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xref-preview-resolve.js","sourceRoot":"","sources":["../src/xref-preview-resolve.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/runes",
|
|
3
3
|
"description": "Semantic Markdoc runes for refrakt.md",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.17.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"build": "tsc"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@refrakt-md/types": "0.
|
|
33
|
-
"@refrakt-md/transform": "0.
|
|
32
|
+
"@refrakt-md/types": "0.17.0",
|
|
33
|
+
"@refrakt-md/transform": "0.17.0",
|
|
34
34
|
"@markdoc/markdoc": "0.4.0",
|
|
35
35
|
"reflect-metadata": "^0.2.0",
|
|
36
36
|
"fast-xml-parser": "4.5.1",
|