@refrakt-md/runes 0.16.0 → 0.16.1
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 +32 -4
- 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 +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -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/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +37 -1
- package/dist/tags/codegroup.js.map +1 -1
- 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/diff.js
CHANGED
|
@@ -99,29 +99,46 @@ function getUnifiedLines(hunks) {
|
|
|
99
99
|
* before-num for an add line) takes the place of the old `+`/`-` prefix as
|
|
100
100
|
* the directional cue: combined with the change-tinted number colour and
|
|
101
101
|
* the line's left-edge border, the absence/presence pattern says which way
|
|
102
|
-
* the change goes without a dedicated prefix column.
|
|
103
|
-
|
|
102
|
+
* the change goes without a dedicated prefix column.
|
|
103
|
+
*
|
|
104
|
+
* WORK-304 — line spans carry `data-line-status` (was `data-type`) to
|
|
105
|
+
* share the row primitive with code-block line highlighting and any
|
|
106
|
+
* future per-line state. Values: `equal | add | remove`. */
|
|
107
|
+
function buildUnifiedRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0) {
|
|
104
108
|
const lines = getUnifiedLines(hunks);
|
|
105
109
|
const lineNodes = lines.map(({ hunk, beforeNum, afterNum }) => {
|
|
106
|
-
return new Tag('span', { 'data-name': 'line', 'data-
|
|
107
|
-
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [beforeNum != null ? String(beforeNum) : '']),
|
|
108
|
-
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'after' }, [afterNum != null ? String(afterNum) : '']),
|
|
110
|
+
return new Tag('span', { 'data-name': 'line', 'data-line-status': hunk.type }, [
|
|
111
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'before' }, [beforeNum != null ? String(beforeNum + beforeOffset) : '']),
|
|
112
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': 'after' }, [afterNum != null ? String(afterNum + afterOffset) : '']),
|
|
109
113
|
new Tag('span', { 'data-name': 'line-content', ...(lang ? { 'data-language': lang } : {}) }, [hunk.text]),
|
|
110
114
|
]);
|
|
111
115
|
});
|
|
112
|
-
return [new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' },
|
|
116
|
+
return [new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
|
|
117
|
+
// WORK-304 — inner wrapper hosts the `display: grid; min-width:
|
|
118
|
+
// max-content` row-width sizing so the row tint (+/-/highlight)
|
|
119
|
+
// extends across the full horizontal scroll region. Mirrors the
|
|
120
|
+
// `<pre><code>` pattern the standalone codeblock uses for the
|
|
121
|
+
// same reason: putting the sizing on the pre itself defeats
|
|
122
|
+
// `overflow-x: auto`. CSS hook: `.rf-diff__rows`.
|
|
123
|
+
new Tag('div', { 'data-name': 'rows' }, lineNodes),
|
|
124
|
+
])];
|
|
113
125
|
}
|
|
114
126
|
/** Build split diff renderable — side-by-side panels with one numbered
|
|
115
127
|
* gutter per panel. Placeholder rows (where the matching side has the
|
|
116
128
|
* add/remove) render an empty gutter + empty content; the fixed gutter
|
|
117
|
-
* width keeps the column rigid so rows align across panels.
|
|
118
|
-
|
|
129
|
+
* width keeps the column rigid so rows align across panels.
|
|
130
|
+
*
|
|
131
|
+
* WORK-304 — same `data-line-status` rename + per-side offset support
|
|
132
|
+
* as the unified renderable. `beforeOffset` / `afterOffset` are the
|
|
133
|
+
* `lines=` start minus one, so a fence with `lines="50-100"` adds 49
|
|
134
|
+
* to its 1-indexed `num` to produce gutter values starting at 50. */
|
|
135
|
+
function buildSplitRenderable(hunks, lang, beforeOffset = 0, afterOffset = 0) {
|
|
119
136
|
const { before, after } = getSplitLines(hunks);
|
|
120
|
-
function buildPanelLines(lines, side) {
|
|
137
|
+
function buildPanelLines(lines, side, offset) {
|
|
121
138
|
return lines.map(line => {
|
|
122
139
|
const type = line ? line.hunk.type : 'empty';
|
|
123
|
-
return new Tag('span', { 'data-name': 'line', 'data-
|
|
124
|
-
new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [line ? String(line.num) : '']),
|
|
140
|
+
return new Tag('span', { 'data-name': 'line', 'data-line-status': type }, [
|
|
141
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [line ? String(line.num + offset) : '']),
|
|
125
142
|
new Tag('span', { 'data-name': 'line-content', ...(line && lang ? { 'data-language': lang } : {}) }, [
|
|
126
143
|
line ? line.hunk.text : '',
|
|
127
144
|
]),
|
|
@@ -130,13 +147,48 @@ function buildSplitRenderable(hunks, lang) {
|
|
|
130
147
|
}
|
|
131
148
|
return [new Tag('div', { 'data-name': 'split-container' }, [
|
|
132
149
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
133
|
-
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' },
|
|
150
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
|
|
151
|
+
new Tag('div', { 'data-name': 'rows' }, buildPanelLines(before, 'before', beforeOffset)),
|
|
152
|
+
]),
|
|
134
153
|
]),
|
|
135
154
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
136
|
-
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' },
|
|
155
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, [
|
|
156
|
+
new Tag('div', { 'data-name': 'rows' }, buildPanelLines(after, 'after', afterOffset)),
|
|
157
|
+
]),
|
|
137
158
|
]),
|
|
138
159
|
])];
|
|
139
160
|
}
|
|
161
|
+
/** Parse the leading integer of a `lines="N-M"` (or `"N"`) annotation and
|
|
162
|
+
* return `N - 1` as the gutter offset, or 0 when the annotation is
|
|
163
|
+
* missing / malformed. Diff uses this per side so each panel's gutter
|
|
164
|
+
* reflects the file's actual coordinates rather than always starting at 1. */
|
|
165
|
+
function gutterOffsetFromLines(linesAttr) {
|
|
166
|
+
if (typeof linesAttr !== 'string' || linesAttr.length === 0)
|
|
167
|
+
return 0;
|
|
168
|
+
const m = /^(\d+)/.exec(linesAttr.trim());
|
|
169
|
+
if (!m)
|
|
170
|
+
return 0;
|
|
171
|
+
const n = Number(m[1]);
|
|
172
|
+
return Number.isFinite(n) && n > 0 ? n - 1 : 0;
|
|
173
|
+
}
|
|
174
|
+
/** Build the diff header: explicit `title` attribute wins, otherwise the
|
|
175
|
+
* fence `source` annotations form the header. When both sides share a
|
|
176
|
+
* source they collapse to a single label; differing sources render as
|
|
177
|
+
* `before → after`. Falls back to no header when nothing is set. */
|
|
178
|
+
function deriveHeader(title, beforeSource, afterSource) {
|
|
179
|
+
if (title)
|
|
180
|
+
return [new Tag('div', { 'data-name': 'header' }, [title])];
|
|
181
|
+
if (beforeSource && afterSource) {
|
|
182
|
+
if (beforeSource === afterSource) {
|
|
183
|
+
return [new Tag('div', { 'data-name': 'header' }, [beforeSource])];
|
|
184
|
+
}
|
|
185
|
+
return [new Tag('div', { 'data-name': 'header' }, [`${beforeSource} → ${afterSource}`])];
|
|
186
|
+
}
|
|
187
|
+
const single = beforeSource || afterSource;
|
|
188
|
+
if (single)
|
|
189
|
+
return [new Tag('div', { 'data-name': 'header' }, [single])];
|
|
190
|
+
return [];
|
|
191
|
+
}
|
|
140
192
|
export const diff = createContentModelSchema({
|
|
141
193
|
attributes: {
|
|
142
194
|
mode: { type: String, required: false, matches: modeType.slice(), description: 'Diff display style: unified, split, or inline' },
|
|
@@ -160,15 +212,30 @@ export const diff = createContentModelSchema({
|
|
|
160
212
|
const beforeSource = fences.length > 0 ? (fences[0].attributes.content || '').replace(/\n$/, '') : '';
|
|
161
213
|
const afterSource = fences.length > 1 ? (fences[1].attributes.content || '').replace(/\n$/, '') : '';
|
|
162
214
|
const lang = language || (fences.length > 0 ? fences[0].attributes.language || '' : '');
|
|
215
|
+
// WORK-304 — per-fence annotations:
|
|
216
|
+
// - `source` populates the diff header (and collapses to a single
|
|
217
|
+
// label when both sides share it; renders `before → after`
|
|
218
|
+
// otherwise).
|
|
219
|
+
// - `lines` derives per-side gutter offsets so each panel's
|
|
220
|
+
// line numbers reflect the file's real coordinates.
|
|
221
|
+
// - `highlight` is intentionally ignored — diff's add/remove
|
|
222
|
+
// status IS the primary line-level signal, and emphasis on
|
|
223
|
+
// top would muddy the +/- channel. Silent no-op; no warning.
|
|
224
|
+
const beforeFenceSource = fences.length > 0 && typeof fences[0].attributes.source === 'string'
|
|
225
|
+
? fences[0].attributes.source
|
|
226
|
+
: undefined;
|
|
227
|
+
const afterFenceSource = fences.length > 1 && typeof fences[1].attributes.source === 'string'
|
|
228
|
+
? fences[1].attributes.source
|
|
229
|
+
: undefined;
|
|
230
|
+
const beforeOffset = fences.length > 0 ? gutterOffsetFromLines(fences[0].attributes.lines) : 0;
|
|
231
|
+
const afterOffset = fences.length > 1 ? gutterOffsetFromLines(fences[1].attributes.lines) : 0;
|
|
163
232
|
// Compute line-level diff (highlighting deferred to highlight transform)
|
|
164
233
|
const hunks = computeLineDiff(beforeSource, afterSource);
|
|
165
234
|
// Build expanded renderable AST
|
|
166
235
|
const expanded = mode === 'split'
|
|
167
|
-
? buildSplitRenderable(hunks, lang)
|
|
168
|
-
: buildUnifiedRenderable(hunks, lang);
|
|
169
|
-
const header = title
|
|
170
|
-
? [new Tag('div', { 'data-name': 'header' }, [title])]
|
|
171
|
-
: [];
|
|
236
|
+
? buildSplitRenderable(hunks, lang, beforeOffset, afterOffset)
|
|
237
|
+
: buildUnifiedRenderable(hunks, lang, beforeOffset, afterOffset);
|
|
238
|
+
const header = deriveHeader(title, beforeFenceSource, afterFenceSource);
|
|
172
239
|
const renderable = createComponentRenderable({ rune: 'diff',
|
|
173
240
|
tag: 'div',
|
|
174
241
|
properties: {
|
package/dist/tags/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/tags/diff.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/F,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAOzD;;;;GAIG;AACH,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5B,kBAAkB;IAClB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC,EAAE,CAAC;QACL,CAAC;IACF,CAAC;IAED,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,OAAO,KAAK,CAAC;AACd,CAAC;AAID,4EAA4E;AAC5E,SAAS,aAAa,CAAC,KAAiB;IACvC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAe,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC,EAAE,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC,EAAE,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3E,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,iDAAiD;AACjD,SAAS,eAAe,CAAC,KAAiB;IACzC,MAAM,KAAK,GAA4E,EAAE,CAAC;IAC1F,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC;QACR,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC;QACR,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;6DAS6D;AAC7D,SAAS,sBAAsB,CAAC,KAAiB,EAAE,IAAY,EAAE,YAAY,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC;IACjG,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7D,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YAC9E,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9H,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzG,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,EAAE;YACnG,gEAAgE;YAChE,gEAAgE;YAChE,gEAAgE;YAChE,8DAA8D;YAC9D,4DAA4D;YAC5D,kDAAkD;YAClD,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;SAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;sEAQsE;AACtE,SAAS,oBAAoB,CAAC,KAAiB,EAAE,IAAY,EAAE,YAAY,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC;IAC/F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAE/C,SAAS,eAAe,CAAC,KAAkB,EAAE,IAAwB,EAAE,MAAc;QACpF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE;gBACzE,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1G,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACpG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;iBAC1B,CAAC;aACF,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE;YAC1D,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;gBACxC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,EAAE;oBAC3F,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;iBACxF,CAAC;aACF,CAAC;YACF,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;gBACxC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,EAAE;oBAC3F,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;iBACrF,CAAC;aACF,CAAC;SACF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;+EAG+E;AAC/E,SAAS,qBAAqB,CAAC,SAAkB;IAChD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;qEAGqE;AACrE,SAAS,YAAY,CACpB,KAAa,EACb,YAAgC,EAChC,WAA+B;IAE/B,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,YAAY,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,IAAI,WAAW,CAAC;IAC3C,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,wBAAwB,CAAC;IAC5C,UAAU,EAAE;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE;QAChI,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,8CAA8C,EAAE;QACxG,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qDAAqD,EAAE;KAC5G;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;SAChD;KACD;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5D,sDAAsD;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAExF,oCAAoC;QACpC,oEAAoE;QACpE,+DAA+D;QAC/D,kBAAkB;QAClB,8DAA8D;QAC9D,wDAAwD;QACxD,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ;YAC7F,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAgB;YACvC,CAAC,CAAC,SAAS,CAAC;QACb,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ;YAC5F,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAgB;YACvC,CAAC,CAAC,SAAS,CAAC;QACb,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9F,yEAAyE;QACzE,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEzD,gCAAgC;QAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO;YAChC,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC;YAC9D,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,yBAAyB,CAAC,EAAE,IAAI,EAAE,MAAM;YAC1D,GAAG,EAAE,KAAK;YACV,UAAU,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,YAAY;aACtB;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC;SAC1D,CAAC,CAAC;QACH,wEAAwE;QACxE,uEAAuE;QACvE,qDAAqD;QACrD,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC/C,OAAO,UAAU,CAAC;IACnB,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC;qFACqF;AACrF,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/tags/drawer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC;qFACqF;AACrF,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAoBjE,eAAO,MAAM,MAAM,gBAiIjB,CAAC"}
|
package/dist/tags/drawer.js
CHANGED
|
@@ -27,6 +27,21 @@ import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
|
27
27
|
export const DRAWER_TITLE_AUTO_MARKER = 'data-drawer-title-auto';
|
|
28
28
|
const drawerSides = ['right', 'left', 'top', 'bottom'];
|
|
29
29
|
const drawerSizes = ['sm', 'md', 'lg'];
|
|
30
|
+
/** Split a drawer body's node list on the **first** top-level `hr` into body
|
|
31
|
+
* + footer zones. 1 zone → `{ body: nodes, footer: null }`; 2+ zones →
|
|
32
|
+
* `{ body: before-hr, footer: after-hr }` where any subsequent hrs in the
|
|
33
|
+
* footer render as ordinary horizontal rules within the footer. Matches the
|
|
34
|
+
* body-zone convention `{% card %}` uses (positional, count-driven), scaled
|
|
35
|
+
* down to the two-zone case the drawer needs. */
|
|
36
|
+
function splitDrawerBodyZones(nodes) {
|
|
37
|
+
const hrIndex = nodes.findIndex(n => n.type === 'hr');
|
|
38
|
+
if (hrIndex < 0)
|
|
39
|
+
return { body: nodes, footer: null };
|
|
40
|
+
return {
|
|
41
|
+
body: nodes.slice(0, hrIndex),
|
|
42
|
+
footer: nodes.slice(hrIndex + 1),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
30
45
|
export const drawer = createContentModelSchema({
|
|
31
46
|
attributes: {
|
|
32
47
|
id: {
|
|
@@ -96,7 +111,16 @@ export const drawer = createContentModelSchema({
|
|
|
96
111
|
headerChildren.push(titleTag);
|
|
97
112
|
headerChildren.push(closeButton);
|
|
98
113
|
const header = new Tag('header', {}, headerChildren);
|
|
99
|
-
|
|
114
|
+
// Split the body on the first top-level `hr` into body + footer zones
|
|
115
|
+
// (SPEC-078). 1 zone → all body; 2+ zones → body + footer. The footer
|
|
116
|
+
// zone shows up as `<footer data-name="footer" class="rf-drawer__footer">`
|
|
117
|
+
// alongside the body so the hoist mechanism for `preview="drawer"` and
|
|
118
|
+
// author-written standalone drawers populate the same slot.
|
|
119
|
+
const zones = splitDrawerBodyZones(asNodes(resolved.body));
|
|
120
|
+
const body = new RenderableNodeCursor(Markdoc.transform(zones.body, config)).wrap('div');
|
|
121
|
+
const footer = zones.footer !== null
|
|
122
|
+
? new RenderableNodeCursor(Markdoc.transform(zones.footer, config)).wrap('footer')
|
|
123
|
+
: null;
|
|
100
124
|
// Property meta tags drive engine modifier-from-meta + data-attribute
|
|
101
125
|
// derivation. We always emit `side` and `size` so the engine applies
|
|
102
126
|
// the BEM modifier even when the author didn't specify them (the
|
|
@@ -120,8 +144,14 @@ export const drawer = createContentModelSchema({
|
|
|
120
144
|
...(titleTag ? { title: titleTag } : {}),
|
|
121
145
|
close: closeButton,
|
|
122
146
|
body: body.tag('div'),
|
|
147
|
+
...(footer ? { footer: footer.tag('footer') } : {}),
|
|
123
148
|
},
|
|
124
|
-
children: [
|
|
149
|
+
children: [
|
|
150
|
+
...Object.values(properties),
|
|
151
|
+
header,
|
|
152
|
+
body.next(),
|
|
153
|
+
...(footer ? [footer.next()] : []),
|
|
154
|
+
],
|
|
125
155
|
});
|
|
126
156
|
// `data-drawer-id` carries the author-supplied id (before the
|
|
127
157
|
// `drawer-` prefix) for register-hook consumption. The register
|
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":"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"}
|
|
@@ -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"}
|