@refrakt-md/runes 0.16.1 → 0.18.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.map +1 -1
- package/dist/config.js +74 -377
- package/dist/config.js.map +1 -1
- package/dist/drawer-pipeline.d.ts.map +1 -1
- package/dist/drawer-pipeline.js +7 -22
- package/dist/drawer-pipeline.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/component.d.ts.map +1 -1
- package/dist/lib/component.js +50 -3
- package/dist/lib/component.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/budget.d.ts.map +1 -1
- package/dist/tags/budget.js +99 -9
- package/dist/tags/budget.js.map +1 -1
- package/dist/tags/chart.d.ts.map +1 -1
- package/dist/tags/chart.js +31 -64
- package/dist/tags/chart.js.map +1 -1
- package/dist/tags/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +4 -1
- 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/diagram.d.ts.map +1 -1
- package/dist/tags/diagram.js +33 -7
- package/dist/tags/diagram.js.map +1 -1
- package/dist/tags/embed.d.ts.map +1 -1
- package/dist/tags/embed.js +28 -10
- package/dist/tags/embed.js.map +1 -1
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +32 -50
- package/dist/tags/sandbox.js.map +1 -1
- package/package.json +3 -3
package/dist/tags/chart.js
CHANGED
|
@@ -1,63 +1,21 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
3
|
import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
|
|
4
|
-
import { walkTag } from '../util.js';
|
|
5
4
|
const chartType = ['bar', 'line', 'pie', 'area'];
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
function extractTableData(children) {
|
|
11
|
-
const headers = [];
|
|
12
|
-
const rows = [];
|
|
13
|
-
for (const child of children) {
|
|
14
|
-
if (!Markdoc.Tag.isTag(child))
|
|
5
|
+
/** Find the rendered data `<table>` (possibly inside a table wrapper). */
|
|
6
|
+
function findTable(nodes) {
|
|
7
|
+
for (const n of nodes) {
|
|
8
|
+
if (!Markdoc.Tag.isTag(n))
|
|
15
9
|
continue;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
const inner =
|
|
10
|
+
if (n.name === 'table')
|
|
11
|
+
return n;
|
|
12
|
+
if (n.name === 'div') {
|
|
13
|
+
const inner = n.children.find(c => Markdoc.Tag.isTag(c) && c.name === 'table');
|
|
20
14
|
if (inner && Markdoc.Tag.isTag(inner))
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
if (tableNode.name === 'table') {
|
|
24
|
-
for (const tableChild of tableNode.children) {
|
|
25
|
-
if (!Markdoc.Tag.isTag(tableChild))
|
|
26
|
-
continue;
|
|
27
|
-
if (tableChild.name === 'thead') {
|
|
28
|
-
for (const tr of tableChild.children) {
|
|
29
|
-
if (!Markdoc.Tag.isTag(tr) || tr.name !== 'tr')
|
|
30
|
-
continue;
|
|
31
|
-
for (const th of tr.children) {
|
|
32
|
-
if (Markdoc.Tag.isTag(th)) {
|
|
33
|
-
const text = Array.from(walkTag(th))
|
|
34
|
-
.filter(n => typeof n === 'string')
|
|
35
|
-
.join('');
|
|
36
|
-
headers.push(text.trim());
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (tableChild.name === 'tbody') {
|
|
42
|
-
for (const tr of tableChild.children) {
|
|
43
|
-
if (!Markdoc.Tag.isTag(tr) || tr.name !== 'tr')
|
|
44
|
-
continue;
|
|
45
|
-
const row = [];
|
|
46
|
-
for (const td of tr.children) {
|
|
47
|
-
if (Markdoc.Tag.isTag(td)) {
|
|
48
|
-
const text = Array.from(walkTag(td))
|
|
49
|
-
.filter(n => typeof n === 'string')
|
|
50
|
-
.join('');
|
|
51
|
-
row.push(text.trim());
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
rows.push(row);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
15
|
+
return inner;
|
|
58
16
|
}
|
|
59
17
|
}
|
|
60
|
-
return
|
|
18
|
+
return undefined;
|
|
61
19
|
}
|
|
62
20
|
export const chart = createContentModelSchema({
|
|
63
21
|
attributes: {
|
|
@@ -73,24 +31,33 @@ export const chart = createContentModelSchema({
|
|
|
73
31
|
},
|
|
74
32
|
transform(resolved, attrs, config) {
|
|
75
33
|
const children = Markdoc.transform(asNodes(resolved.body), config);
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
|
|
34
|
+
const type = attrs.type ?? 'bar';
|
|
35
|
+
const title = attrs.title ?? '';
|
|
36
|
+
const stacked = attrs.stacked ?? false;
|
|
37
|
+
// SPEC-083: the authored `<table>` is the single source of truth — the no-JS
|
|
38
|
+
// fallback AND the data the rf-chart web component parses. No JSON-in-meta.
|
|
39
|
+
const table = findTable(children);
|
|
40
|
+
const emitted = table ? [table] : children;
|
|
41
|
+
if (table) {
|
|
42
|
+
table.attributes['data-name'] = 'data';
|
|
43
|
+
if (title)
|
|
44
|
+
table.children = [new Tag('caption', {}, [title]), ...table.children];
|
|
45
|
+
}
|
|
46
|
+
// type / stacked ride the bag (→ data-type / data-stacked for the client);
|
|
47
|
+
// title lives in the table's <caption>, not a field-meta.
|
|
48
|
+
const typeMeta = new Tag('meta', { content: type });
|
|
49
|
+
const stackedMeta = new Tag('meta', { content: String(stacked) });
|
|
50
|
+
const node = createComponentRenderable({ rune: 'chart',
|
|
83
51
|
tag: 'figure',
|
|
84
52
|
properties: {
|
|
85
53
|
type: typeMeta,
|
|
86
|
-
title: titleMeta,
|
|
87
54
|
stacked: stackedMeta,
|
|
88
55
|
},
|
|
89
|
-
|
|
90
|
-
data: dataMeta,
|
|
91
|
-
},
|
|
92
|
-
children: [typeMeta, titleMeta, stackedMeta, dataMeta],
|
|
56
|
+
children: emitted,
|
|
93
57
|
});
|
|
58
|
+
// Emit as the rf-chart custom element; the web component enhances the table.
|
|
59
|
+
node.name = 'rf-chart';
|
|
60
|
+
return node;
|
|
94
61
|
},
|
|
95
62
|
});
|
|
96
63
|
//# sourceMappingURL=chart.js.map
|
package/dist/tags/chart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../src/tags/chart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../src/tags/chart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegroup.d.ts","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAyCvC,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"codegroup.d.ts","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAyCvC,eAAO,MAAM,SAAS,gBA+FpB,CAAC"}
|
package/dist/tags/codegroup.js
CHANGED
|
@@ -51,7 +51,10 @@ export const codegroup = createContentModelSchema({
|
|
|
51
51
|
const customLabels = attrs.labels?.split(',').map(l => l.trim()) ?? [];
|
|
52
52
|
const properties = {};
|
|
53
53
|
const children = [];
|
|
54
|
-
|
|
54
|
+
// Emit the title meta whenever the attribute is *present* — even an
|
|
55
|
+
// empty string. `title=""` opts into the window chrome (stoplights)
|
|
56
|
+
// without a filename; an absent `title` renders no topbar at all.
|
|
57
|
+
if (attrs.title !== undefined) {
|
|
55
58
|
const titleMeta = new Tag('meta', { content: attrs.title });
|
|
56
59
|
properties.title = titleMeta;
|
|
57
60
|
children.push(titleMeta);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegroup.js","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,aAAa,GAA2B;IAC5C,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ;IAChD,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO;IAC7C,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;IACxC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IACpD,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;IACtD,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK;CACzC,CAAC;AAEF,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;oEACoE;AACpE,SAAS,QAAQ,CAAC,IAAY;IAC5B,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;AACzD,CAAC;AAED;;;sDAGsD;AACtD,SAAS,eAAe,CAAC,MAA0B,EAAE,KAAyB;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,wBAAwB,CAAC;IACjD,UAAU,EAAE;QACX,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,sCAAsC,EAAE;QAC7F,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC3F,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;KAC5H;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,EAAE,MAAM;QAChC,MAAM,YAAY,GAAI,KAAK,CAAC,MAA6B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAE/F,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"codegroup.js","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
/**
|
|
3
|
+
* Deflist rune — block-level wrapper that renders the SPEC-079
|
|
4
|
+
* `definition-list` layout primitive over an author-written markdown
|
|
5
|
+
* list. Each list item starting with `**Term:**` produces a `<dt>` +
|
|
6
|
+
* `<dd>` pair; items without that prefix get an empty `<dt>` plus the
|
|
7
|
+
* full content in `<dd>` (plus a build-time warning naming the line).
|
|
8
|
+
*
|
|
9
|
+
* Composable inside any container rune; same DOM as a projected
|
|
10
|
+
* metadata zone using the `definition-list` layout.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* {% deflist %}
|
|
14
|
+
* - **Priority:** {% badge sentiment="caution" %}high{% /badge %}
|
|
15
|
+
* - **Complexity:** moderate
|
|
16
|
+
* - **Assignee:** @alice
|
|
17
|
+
* {% /deflist %}
|
|
18
|
+
*/
|
|
19
|
+
export declare const deflist: Markdoc.Schema;
|
|
20
|
+
//# sourceMappingURL=deflist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflist.d.ts","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAyFvC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO,gBAmDlB,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
const { Ast, Tag } = Markdoc;
|
|
3
|
+
import { createContentModelSchema, asNodes } from '../lib/index.js';
|
|
4
|
+
/** Parse a list item's first paragraph node to look for a `**Term:**`
|
|
5
|
+
* prefix. Returns `{ term, rest }` where `term` is the bold-text
|
|
6
|
+
* content (without the trailing `:`) and `rest` is the remaining
|
|
7
|
+
* inline content of the paragraph + subsequent block children. If no
|
|
8
|
+
* bold prefix is found, returns `null` — the deflist rune falls back
|
|
9
|
+
* to an empty `<dt>` + the item's full content in `<dd>`. */
|
|
10
|
+
function extractTermPrefix(itemNode) {
|
|
11
|
+
const children = itemNode.children ?? [];
|
|
12
|
+
if (children.length === 0)
|
|
13
|
+
return null;
|
|
14
|
+
// Markdoc list items hold their content as either:
|
|
15
|
+
// - a tight `inline` node directly under `item` (simple one-line item)
|
|
16
|
+
// - a `paragraph` wrapping an `inline` node (loose / multi-block item)
|
|
17
|
+
// Handle both shapes — extract the inline node either way.
|
|
18
|
+
let inlineNode;
|
|
19
|
+
let restBlockChildren;
|
|
20
|
+
const first = children[0];
|
|
21
|
+
if (first?.type === 'inline') {
|
|
22
|
+
inlineNode = first;
|
|
23
|
+
restBlockChildren = children.slice(1);
|
|
24
|
+
}
|
|
25
|
+
else if (first?.type === 'paragraph') {
|
|
26
|
+
inlineNode = first.children?.[0];
|
|
27
|
+
restBlockChildren = children.slice(1);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
if (!inlineNode || inlineNode.type !== 'inline')
|
|
33
|
+
return null;
|
|
34
|
+
const inlineKids = inlineNode.children ?? [];
|
|
35
|
+
if (inlineKids.length === 0)
|
|
36
|
+
return null;
|
|
37
|
+
const head = inlineKids[0];
|
|
38
|
+
if (!head || head.type !== 'strong')
|
|
39
|
+
return null;
|
|
40
|
+
// Extract the bold text content; require it to end with `:`.
|
|
41
|
+
const strongChildren = head.children ?? [];
|
|
42
|
+
let strongText = '';
|
|
43
|
+
for (const c of strongChildren) {
|
|
44
|
+
if (c.type === 'text' && typeof c.attributes?.content === 'string') {
|
|
45
|
+
strongText += c.attributes.content;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!strongText.endsWith(':'))
|
|
49
|
+
return null;
|
|
50
|
+
// Remove the trailing `:` from the term — common-case "Priority:" → "Priority".
|
|
51
|
+
const termText = strongText.slice(0, -1);
|
|
52
|
+
const termNodes = [
|
|
53
|
+
// Build a fresh text node with the cleaned term so the dt content
|
|
54
|
+
// is just the term name, no trailing colon.
|
|
55
|
+
new Ast.Node('text', { content: termText }),
|
|
56
|
+
];
|
|
57
|
+
// Build the rest of the inline content: drop the leading strong, and
|
|
58
|
+
// strip ONE leading whitespace text node if present (the space after
|
|
59
|
+
// `**Term:**` in markdown).
|
|
60
|
+
const remainingInline = inlineKids.slice(1);
|
|
61
|
+
const trimmed = (() => {
|
|
62
|
+
const first = remainingInline[0];
|
|
63
|
+
if (first?.type === 'text' && typeof first.attributes?.content === 'string') {
|
|
64
|
+
const stripped = first.attributes.content.replace(/^\s+/, '');
|
|
65
|
+
if (stripped === '')
|
|
66
|
+
return remainingInline.slice(1);
|
|
67
|
+
const clone = new Ast.Node('text', { content: stripped });
|
|
68
|
+
return [clone, ...remainingInline.slice(1)];
|
|
69
|
+
}
|
|
70
|
+
return remainingInline;
|
|
71
|
+
})();
|
|
72
|
+
const restInline = trimmed.length > 0
|
|
73
|
+
? [new Ast.Node('inline', {}, trimmed)]
|
|
74
|
+
: [];
|
|
75
|
+
const restParagraph = restInline.length > 0
|
|
76
|
+
? [new Ast.Node('paragraph', {}, restInline)]
|
|
77
|
+
: [];
|
|
78
|
+
return {
|
|
79
|
+
term: termNodes,
|
|
80
|
+
rest: restInline,
|
|
81
|
+
restBlocks: [...restParagraph, ...restBlockChildren],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Deflist rune — block-level wrapper that renders the SPEC-079
|
|
86
|
+
* `definition-list` layout primitive over an author-written markdown
|
|
87
|
+
* list. Each list item starting with `**Term:**` produces a `<dt>` +
|
|
88
|
+
* `<dd>` pair; items without that prefix get an empty `<dt>` plus the
|
|
89
|
+
* full content in `<dd>` (plus a build-time warning naming the line).
|
|
90
|
+
*
|
|
91
|
+
* Composable inside any container rune; same DOM as a projected
|
|
92
|
+
* metadata zone using the `definition-list` layout.
|
|
93
|
+
*
|
|
94
|
+
* Usage:
|
|
95
|
+
* {% deflist %}
|
|
96
|
+
* - **Priority:** {% badge sentiment="caution" %}high{% /badge %}
|
|
97
|
+
* - **Complexity:** moderate
|
|
98
|
+
* - **Assignee:** @alice
|
|
99
|
+
* {% /deflist %}
|
|
100
|
+
*/
|
|
101
|
+
export const deflist = createContentModelSchema({
|
|
102
|
+
attributes: {},
|
|
103
|
+
contentModel: {
|
|
104
|
+
type: 'sequence',
|
|
105
|
+
fields: [
|
|
106
|
+
{ name: 'list', match: 'list', optional: false },
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
transform(resolved, _attrs, config) {
|
|
110
|
+
const listNodes = asNodes(resolved.list);
|
|
111
|
+
const listNode = listNodes.find(n => n.type === 'list');
|
|
112
|
+
if (!listNode) {
|
|
113
|
+
// Fallback when the content model didn't capture a list — render
|
|
114
|
+
// an empty dl so DOM stays valid; the content-model resolver
|
|
115
|
+
// already emits its own diagnostic.
|
|
116
|
+
return new Tag('dl', {
|
|
117
|
+
'data-rune': 'deflist',
|
|
118
|
+
'data-zone-layout': 'definition-list',
|
|
119
|
+
}, []);
|
|
120
|
+
}
|
|
121
|
+
const items = (listNode.children ?? []).filter(c => c.type === 'item');
|
|
122
|
+
const rows = [];
|
|
123
|
+
for (const item of items) {
|
|
124
|
+
const extracted = extractTermPrefix(item);
|
|
125
|
+
let dt;
|
|
126
|
+
let dd;
|
|
127
|
+
if (extracted) {
|
|
128
|
+
const termRendered = Markdoc.transform(extracted.term, config);
|
|
129
|
+
const valueRendered = Markdoc.transform(extracted.restBlocks, config);
|
|
130
|
+
dt = new Tag('dt', { 'data-meta-label': '' }, termRendered);
|
|
131
|
+
dd = new Tag('dd', {}, unwrapSingleParagraph(valueRendered));
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Fallback: empty <dt> + full item content in <dd>. Warn once
|
|
135
|
+
// per process so authors find the unparsed item.
|
|
136
|
+
const fullRendered = Markdoc.transform(item.children ?? [], config);
|
|
137
|
+
dt = new Tag('dt', { 'data-meta-label': '' }, []);
|
|
138
|
+
dd = new Tag('dd', {}, unwrapSingleParagraph(fullRendered));
|
|
139
|
+
warnDeflistUnparsedItem(item);
|
|
140
|
+
}
|
|
141
|
+
rows.push(new Tag('div', { 'data-name': 'row' }, [dt, dd]));
|
|
142
|
+
}
|
|
143
|
+
return new Tag('dl', {
|
|
144
|
+
'data-rune': 'deflist',
|
|
145
|
+
'data-zone-layout': 'definition-list',
|
|
146
|
+
}, rows);
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
/** When the dd's content is a single `<p>` (the typical case for a
|
|
150
|
+
* short inline value), unwrap it so the dd renders as `<dd>value</dd>`
|
|
151
|
+
* instead of `<dd><p>value</p></dd>`. Multi-paragraph dd content stays
|
|
152
|
+
* wrapped. */
|
|
153
|
+
function unwrapSingleParagraph(nodes) {
|
|
154
|
+
if (nodes.length !== 1)
|
|
155
|
+
return nodes;
|
|
156
|
+
const only = nodes[0];
|
|
157
|
+
if (!Markdoc.Tag.isTag(only) || only.name !== 'p')
|
|
158
|
+
return nodes;
|
|
159
|
+
return only.children;
|
|
160
|
+
}
|
|
161
|
+
const DEFLIST_WARNED = new Set();
|
|
162
|
+
function warnDeflistUnparsedItem(item) {
|
|
163
|
+
const loc = item.location ?? null;
|
|
164
|
+
const key = loc ? `${loc.start?.line ?? '?'}:${loc.start?.character ?? '?'}` : 'unknown';
|
|
165
|
+
if (DEFLIST_WARNED.has(key))
|
|
166
|
+
return;
|
|
167
|
+
DEFLIST_WARNED.add(key);
|
|
168
|
+
// eslint-disable-next-line no-console
|
|
169
|
+
console.warn(`[refrakt] {% deflist %} item at line ${loc?.start?.line ?? '?'} lacks ` +
|
|
170
|
+
`a \`**Term:**\` prefix — rendered with empty <dt>. Prefix the item ` +
|
|
171
|
+
`with bold term text ending in \`:\` to label it.`);
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=deflist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflist.js","sourceRoot":"","sources":["../../src/tags/deflist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAMvC,eAAO,MAAM,OAAO,gBAkElB,CAAC"}
|
package/dist/tags/diagram.js
CHANGED
|
@@ -16,24 +16,50 @@ export const diagram = createContentModelSchema({
|
|
|
16
16
|
transform(resolved, attrs) {
|
|
17
17
|
const language = attrs.language ?? 'mermaid';
|
|
18
18
|
const title = attrs.title ?? '';
|
|
19
|
-
const languageMeta = new Tag('meta', { content: language });
|
|
20
|
-
const titleMeta = new Tag('meta', { content: title });
|
|
21
19
|
// Extract source directly from resolved AST node
|
|
22
20
|
// to avoid hljs failing on unknown languages like mermaid
|
|
23
21
|
const sourceNode = asNodes(resolved.source)[0];
|
|
24
22
|
const source = sourceNode?.attributes?.content || '';
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
// `language` rides the bag only (→ `data-language` via the modifier).
|
|
24
|
+
const languageMeta = new Tag('meta', { content: language });
|
|
25
|
+
// SPEC-081: build the SSR fallback structure here (deterministic from
|
|
26
|
+
// authored data) and emit the `rf-diagram` custom element; the behaviors
|
|
27
|
+
// web component hydrates it. No postTransform.
|
|
28
|
+
const children = [];
|
|
29
|
+
let titleEl;
|
|
30
|
+
if (title) {
|
|
31
|
+
titleEl = new Tag('figcaption', {}, [title]);
|
|
32
|
+
children.push(titleEl);
|
|
33
|
+
}
|
|
34
|
+
let sourcePre;
|
|
35
|
+
const containerChildren = [];
|
|
36
|
+
if (source) {
|
|
37
|
+
sourcePre = new Tag('pre', {}, [new Tag('code', {}, [source])]);
|
|
38
|
+
containerChildren.push(sourcePre);
|
|
39
|
+
}
|
|
40
|
+
const containerDiv = new Tag('div', {}, containerChildren);
|
|
41
|
+
children.push(containerDiv);
|
|
42
|
+
// Canonical source for the web component to read. A `<template>` is inert
|
|
43
|
+
// (never rendered, never highlighted/decorated), keeping the renderer's
|
|
44
|
+
// data channel cleanly separate from the presentational `<pre>` fallback.
|
|
45
|
+
if (source) {
|
|
46
|
+
children.push(new Tag('template', { 'data-content': 'source' }, [source]));
|
|
47
|
+
}
|
|
48
|
+
const node = createComponentRenderable({ rune: 'diagram',
|
|
27
49
|
tag: 'figure',
|
|
28
50
|
properties: {
|
|
29
51
|
language: languageMeta,
|
|
30
|
-
title: titleMeta,
|
|
31
52
|
},
|
|
32
53
|
refs: {
|
|
33
|
-
|
|
54
|
+
...(titleEl ? { title: titleEl } : {}),
|
|
55
|
+
container: containerDiv,
|
|
56
|
+
...(sourcePre ? { source: sourcePre } : {}),
|
|
34
57
|
},
|
|
35
|
-
children
|
|
58
|
+
children,
|
|
36
59
|
});
|
|
60
|
+
// Emit as the `rf-diagram` custom element (the web component upgrades it).
|
|
61
|
+
node.name = 'rf-diagram';
|
|
62
|
+
return node;
|
|
37
63
|
},
|
|
38
64
|
});
|
|
39
65
|
//# sourceMappingURL=diagram.js.map
|
package/dist/tags/diagram.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../src/tags/diagram.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,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAU,CAAC;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,wBAAwB,CAAC;IAC/C,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE;QACxI,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mCAAmC,EAAE;KAC1F;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;SAClC;KACD;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,
|
|
1
|
+
{"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../src/tags/diagram.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/tags/embed.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAmFvC,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/tags/embed.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAmFvC,eAAO,MAAM,KAAK,gBAuEhB,CAAC"}
|
package/dist/tags/embed.js
CHANGED
|
@@ -83,33 +83,51 @@ export const embed = createContentModelSchema({
|
|
|
83
83
|
transform(resolved, attrs, config) {
|
|
84
84
|
const url = attrs.url ?? '';
|
|
85
85
|
const detected = detectProvider(url);
|
|
86
|
-
const
|
|
86
|
+
const aspect = attrs.aspect ?? '16:9';
|
|
87
|
+
const iframeTitle = attrs.title || 'Embedded content';
|
|
88
|
+
// SPEC-081: build the structure here (it is deterministic from authored
|
|
89
|
+
// data — provider/embed-url are derived above), not in a postTransform.
|
|
90
|
+
const [w, h] = aspect.split(':').map(Number);
|
|
91
|
+
const paddingPercent = h && w ? (h / w) * 100 : 56.25;
|
|
92
|
+
// SEO carriers (schema channel — render inline as RDFa, empties dropped).
|
|
87
93
|
const urlMeta = new Tag('meta', { content: url });
|
|
88
|
-
const typeMeta = new Tag('meta', { content: resolvedType });
|
|
89
|
-
const aspectMeta = new Tag('meta', { content: attrs.aspect ?? '16:9' });
|
|
90
94
|
const titleMeta = new Tag('meta', { content: attrs.title ?? '' });
|
|
91
95
|
const embedUrlMeta = new Tag('meta', { content: detected.embedUrl });
|
|
96
|
+
// `provider` rides the bag only (→ `data-provider` via the modifier);
|
|
97
|
+
// no field-meta is emitted.
|
|
92
98
|
const providerMeta = new Tag('meta', { content: detected.provider });
|
|
93
99
|
const fallback = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.fallback), config)).wrap('div');
|
|
100
|
+
const fallbackDiv = fallback.tag('div');
|
|
101
|
+
const children = [urlMeta, titleMeta, embedUrlMeta];
|
|
102
|
+
let wrapperDiv;
|
|
103
|
+
if (detected.embedUrl) {
|
|
104
|
+
const iframe = new Tag('iframe', {
|
|
105
|
+
src: detected.embedUrl,
|
|
106
|
+
title: iframeTitle,
|
|
107
|
+
frameborder: '0',
|
|
108
|
+
allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',
|
|
109
|
+
allowfullscreen: '',
|
|
110
|
+
loading: 'lazy',
|
|
111
|
+
}, []);
|
|
112
|
+
wrapperDiv = new Tag('div', { style: `padding-bottom: ${paddingPercent}%` }, [iframe]);
|
|
113
|
+
children.push(wrapperDiv);
|
|
114
|
+
}
|
|
115
|
+
children.push(fallback.next());
|
|
94
116
|
return createComponentRenderable({ rune: 'embed', schemaOrgType: 'VideoObject',
|
|
95
117
|
tag: 'figure',
|
|
96
118
|
properties: {
|
|
97
|
-
url: urlMeta,
|
|
98
|
-
type: typeMeta,
|
|
99
|
-
aspect: aspectMeta,
|
|
100
|
-
title: titleMeta,
|
|
101
|
-
embedUrl: embedUrlMeta,
|
|
102
119
|
provider: providerMeta,
|
|
103
120
|
},
|
|
104
121
|
refs: {
|
|
105
|
-
|
|
122
|
+
...(wrapperDiv ? { wrapper: wrapperDiv } : {}),
|
|
123
|
+
fallback: fallbackDiv,
|
|
106
124
|
},
|
|
107
125
|
schema: {
|
|
108
126
|
name: titleMeta,
|
|
109
127
|
contentUrl: urlMeta,
|
|
110
128
|
embedUrl: embedUrlMeta,
|
|
111
129
|
},
|
|
112
|
-
children
|
|
130
|
+
children,
|
|
113
131
|
});
|
|
114
132
|
},
|
|
115
133
|
});
|
package/dist/tags/embed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/tags/embed.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/tags/embed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAqDvC,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/tags/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAqDvC,eAAO,MAAM,OAAO,gBAgHlB,CAAC"}
|