@refrakt-md/runes 0.8.5 → 0.9.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.map +1 -1
- package/dist/config.js +201 -29
- package/dist/config.js.map +1 -1
- package/dist/fence-escape.d.ts +19 -0
- package/dist/fence-escape.d.ts.map +1 -0
- package/dist/fence-escape.js +53 -0
- package/dist/fence-escape.js.map +1 -0
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -50
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +0 -4
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/lib/component.d.ts +16 -10
- package/dist/lib/component.d.ts.map +1 -1
- package/dist/lib/component.js +11 -3
- package/dist/lib/component.js.map +1 -1
- package/dist/lib/index.d.ts +11 -16
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -164
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/node.d.ts +1 -15
- package/dist/lib/node.d.ts.map +1 -1
- package/dist/lib/node.js +0 -35
- package/dist/lib/node.js.map +1 -1
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +2 -1
- package/dist/nodes.js.map +1 -1
- package/dist/packages.js +1 -1
- package/dist/packages.js.map +1 -1
- package/dist/rune.d.ts +6 -4
- package/dist/rune.d.ts.map +1 -1
- package/dist/rune.js +2 -1
- package/dist/rune.js.map +1 -1
- package/dist/sandbox-sources.d.ts +34 -0
- package/dist/sandbox-sources.d.ts.map +1 -0
- package/dist/sandbox-sources.js +204 -0
- package/dist/sandbox-sources.js.map +1 -0
- package/dist/tags/accordion.d.ts.map +1 -1
- package/dist/tags/accordion.js +21 -38
- package/dist/tags/accordion.js.map +1 -1
- package/dist/tags/annotate.d.ts.map +1 -1
- package/dist/tags/annotate.js +2 -3
- package/dist/tags/annotate.js.map +1 -1
- package/dist/tags/blog.d.ts.map +1 -1
- package/dist/tags/blog.js +1 -2
- package/dist/tags/blog.js.map +1 -1
- package/dist/tags/breadcrumb.d.ts.map +1 -1
- package/dist/tags/breadcrumb.js +4 -5
- package/dist/tags/breadcrumb.js.map +1 -1
- package/dist/tags/budget.d.ts.map +1 -1
- package/dist/tags/budget.js +77 -90
- package/dist/tags/budget.js.map +1 -1
- package/dist/tags/chart.d.ts.map +1 -1
- package/dist/tags/chart.js +1 -2
- package/dist/tags/chart.js.map +1 -1
- package/dist/tags/codegroup.d.ts.map +1 -1
- package/dist/tags/codegroup.js +1 -2
- package/dist/tags/codegroup.js.map +1 -1
- package/dist/tags/common.d.ts +46 -15
- package/dist/tags/common.d.ts.map +1 -1
- package/dist/tags/common.js +115 -65
- package/dist/tags/common.js.map +1 -1
- package/dist/tags/compare.d.ts.map +1 -1
- package/dist/tags/compare.js +1 -2
- package/dist/tags/compare.js.map +1 -1
- package/dist/tags/conversation.d.ts.map +1 -1
- package/dist/tags/conversation.js +20 -34
- package/dist/tags/conversation.js.map +1 -1
- package/dist/tags/datatable.d.ts.map +1 -1
- package/dist/tags/datatable.js +1 -2
- package/dist/tags/datatable.js.map +1 -1
- package/dist/tags/details.d.ts.map +1 -1
- package/dist/tags/details.js +1 -2
- package/dist/tags/details.js.map +1 -1
- package/dist/tags/diagram.d.ts.map +1 -1
- package/dist/tags/diagram.js +1 -2
- package/dist/tags/diagram.js.map +1 -1
- package/dist/tags/diff.d.ts.map +1 -1
- package/dist/tags/diff.js +1 -2
- package/dist/tags/diff.js.map +1 -1
- package/dist/tags/embed.d.ts.map +1 -1
- package/dist/tags/embed.js +1 -2
- package/dist/tags/embed.js.map +1 -1
- package/dist/tags/error.d.ts.map +1 -1
- package/dist/tags/error.js +1 -2
- package/dist/tags/error.js.map +1 -1
- package/dist/tags/figure.d.ts.map +1 -1
- package/dist/tags/figure.js +1 -2
- package/dist/tags/figure.js.map +1 -1
- package/dist/tags/form.d.ts +2 -1
- package/dist/tags/form.d.ts.map +1 -1
- package/dist/tags/form.js +49 -72
- package/dist/tags/form.js.map +1 -1
- package/dist/tags/gallery.d.ts.map +1 -1
- package/dist/tags/gallery.js +1 -2
- package/dist/tags/gallery.js.map +1 -1
- package/dist/tags/grid.d.ts.map +1 -1
- package/dist/tags/grid.js +1 -2
- package/dist/tags/grid.js.map +1 -1
- package/dist/tags/hint.d.ts.map +1 -1
- package/dist/tags/hint.js +1 -2
- package/dist/tags/hint.js.map +1 -1
- package/dist/tags/juxtapose.d.ts.map +1 -1
- package/dist/tags/juxtapose.js +4 -4
- package/dist/tags/juxtapose.js.map +1 -1
- package/dist/tags/mediatext.d.ts.map +1 -1
- package/dist/tags/mediatext.js +1 -2
- package/dist/tags/mediatext.js.map +1 -1
- package/dist/tags/nav.d.ts.map +1 -1
- package/dist/tags/nav.js +29 -19
- package/dist/tags/nav.js.map +1 -1
- package/dist/tags/pullquote.d.ts.map +1 -1
- package/dist/tags/pullquote.js +1 -2
- package/dist/tags/pullquote.js.map +1 -1
- package/dist/tags/reveal.d.ts.map +1 -1
- package/dist/tags/reveal.js +18 -24
- package/dist/tags/reveal.js.map +1 -1
- package/dist/tags/sandbox.d.ts.map +1 -1
- package/dist/tags/sandbox.js +82 -60
- package/dist/tags/sandbox.js.map +1 -1
- package/dist/tags/showcase.d.ts.map +1 -1
- package/dist/tags/showcase.js +1 -2
- package/dist/tags/showcase.js.map +1 -1
- package/dist/tags/sidenote.d.ts.map +1 -1
- package/dist/tags/sidenote.js +1 -2
- package/dist/tags/sidenote.js.map +1 -1
- package/dist/tags/tabs.d.ts.map +1 -1
- package/dist/tags/tabs.js +26 -35
- package/dist/tags/tabs.js.map +1 -1
- package/dist/tags/textblock.d.ts.map +1 -1
- package/dist/tags/textblock.js +1 -2
- package/dist/tags/textblock.js.map +1 -1
- package/dist/tags/toc.d.ts.map +1 -1
- package/dist/tags/toc.js +1 -2
- package/dist/tags/toc.js.map +1 -1
- package/dist/tags/xref.d.ts +18 -0
- package/dist/tags/xref.d.ts.map +1 -0
- package/dist/tags/xref.js +54 -0
- package/dist/tags/xref.js.map +1 -0
- package/package.json +3 -3
- package/dist/lib/annotations/annotation.d.ts +0 -11
- package/dist/lib/annotations/annotation.d.ts.map +0 -1
- package/dist/lib/annotations/annotation.js +0 -39
- package/dist/lib/annotations/annotation.js.map +0 -1
- package/dist/lib/annotations/attribute.d.ts +0 -12
- package/dist/lib/annotations/attribute.d.ts.map +0 -1
- package/dist/lib/annotations/attribute.js +0 -17
- package/dist/lib/annotations/attribute.js.map +0 -1
- package/dist/lib/annotations/decoration.d.ts +0 -10
- package/dist/lib/annotations/decoration.d.ts.map +0 -1
- package/dist/lib/annotations/decoration.js +0 -46
- package/dist/lib/annotations/decoration.js.map +0 -1
- package/dist/lib/annotations/group.d.ts +0 -24
- package/dist/lib/annotations/group.d.ts.map +0 -1
- package/dist/lib/annotations/group.js +0 -78
- package/dist/lib/annotations/group.js.map +0 -1
- package/dist/lib/annotations/id.d.ts +0 -19
- package/dist/lib/annotations/id.d.ts.map +0 -1
- package/dist/lib/annotations/id.js +0 -32
- package/dist/lib/annotations/id.js.map +0 -1
- package/dist/lib/annotations/interfaces.d.ts +0 -27
- package/dist/lib/annotations/interfaces.d.ts.map +0 -1
- package/dist/lib/annotations/interfaces.js +0 -2
- package/dist/lib/annotations/interfaces.js.map +0 -1
- package/dist/lib/model.d.ts +0 -17
- package/dist/lib/model.d.ts.map +0 -1
- package/dist/lib/model.js +0 -50
- package/dist/lib/model.js.map +0 -1
- package/dist/registry.d.ts +0 -94
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -94
- package/dist/registry.js.map +0 -1
- package/dist/schema/accordion.d.ts +0 -8
- package/dist/schema/accordion.d.ts.map +0 -1
- package/dist/schema/accordion.js +0 -13
- package/dist/schema/accordion.js.map +0 -1
- package/dist/schema/annotate.d.ts +0 -6
- package/dist/schema/annotate.d.ts.map +0 -1
- package/dist/schema/annotate.js +0 -8
- package/dist/schema/annotate.js.map +0 -1
- package/dist/schema/bg.d.ts +0 -11
- package/dist/schema/bg.d.ts.map +0 -1
- package/dist/schema/bg.js +0 -13
- package/dist/schema/bg.js.map +0 -1
- package/dist/schema/blog.d.ts +0 -16
- package/dist/schema/blog.d.ts.map +0 -1
- package/dist/schema/blog.js +0 -21
- package/dist/schema/blog.js.map +0 -1
- package/dist/schema/breadcrumb.d.ts +0 -8
- package/dist/schema/breadcrumb.d.ts.map +0 -1
- package/dist/schema/breadcrumb.js +0 -12
- package/dist/schema/breadcrumb.js.map +0 -1
- package/dist/schema/budget.d.ts +0 -21
- package/dist/schema/budget.d.ts.map +0 -1
- package/dist/schema/budget.js +0 -27
- package/dist/schema/budget.js.map +0 -1
- package/dist/schema/chart.d.ts +0 -6
- package/dist/schema/chart.d.ts.map +0 -1
- package/dist/schema/chart.js +0 -8
- package/dist/schema/chart.js.map +0 -1
- package/dist/schema/codegroup.d.ts +0 -7
- package/dist/schema/codegroup.d.ts.map +0 -1
- package/dist/schema/codegroup.js +0 -8
- package/dist/schema/codegroup.js.map +0 -1
- package/dist/schema/compare.d.ts +0 -4
- package/dist/schema/compare.d.ts.map +0 -1
- package/dist/schema/compare.js +0 -6
- package/dist/schema/compare.js.map +0 -1
- package/dist/schema/conversation.d.ts +0 -8
- package/dist/schema/conversation.d.ts.map +0 -1
- package/dist/schema/conversation.js +0 -12
- package/dist/schema/conversation.js.map +0 -1
- package/dist/schema/datatable.d.ts +0 -7
- package/dist/schema/datatable.d.ts.map +0 -1
- package/dist/schema/datatable.js +0 -9
- package/dist/schema/datatable.js.map +0 -1
- package/dist/schema/details.d.ts +0 -4
- package/dist/schema/details.d.ts.map +0 -1
- package/dist/schema/details.js +0 -6
- package/dist/schema/details.js.map +0 -1
- package/dist/schema/diagram.d.ts +0 -5
- package/dist/schema/diagram.d.ts.map +0 -1
- package/dist/schema/diagram.js +0 -7
- package/dist/schema/diagram.js.map +0 -1
- package/dist/schema/diff.d.ts +0 -5
- package/dist/schema/diff.d.ts.map +0 -1
- package/dist/schema/diff.js +0 -7
- package/dist/schema/diff.js.map +0 -1
- package/dist/schema/docpage.d.ts +0 -11
- package/dist/schema/docpage.d.ts.map +0 -1
- package/dist/schema/docpage.js +0 -15
- package/dist/schema/docpage.js.map +0 -1
- package/dist/schema/embed.d.ts +0 -9
- package/dist/schema/embed.d.ts.map +0 -1
- package/dist/schema/embed.js +0 -11
- package/dist/schema/embed.js.map +0 -1
- package/dist/schema/error.d.ts +0 -10
- package/dist/schema/error.d.ts.map +0 -1
- package/dist/schema/error.js +0 -14
- package/dist/schema/error.js.map +0 -1
- package/dist/schema/figure.d.ts +0 -6
- package/dist/schema/figure.d.ts.map +0 -1
- package/dist/schema/figure.js +0 -8
- package/dist/schema/figure.js.map +0 -1
- package/dist/schema/form.d.ts +0 -13
- package/dist/schema/form.d.ts.map +0 -1
- package/dist/schema/form.js +0 -17
- package/dist/schema/form.js.map +0 -1
- package/dist/schema/gallery.d.ts +0 -8
- package/dist/schema/gallery.d.ts.map +0 -1
- package/dist/schema/gallery.js +0 -10
- package/dist/schema/gallery.js.map +0 -1
- package/dist/schema/grid.d.ts +0 -3
- package/dist/schema/grid.d.ts.map +0 -1
- package/dist/schema/grid.js +0 -3
- package/dist/schema/grid.js.map +0 -1
- package/dist/schema/hint.d.ts +0 -4
- package/dist/schema/hint.d.ts.map +0 -1
- package/dist/schema/hint.js +0 -6
- package/dist/schema/hint.js.map +0 -1
- package/dist/schema/juxtapose.d.ts +0 -7
- package/dist/schema/juxtapose.d.ts.map +0 -1
- package/dist/schema/juxtapose.js +0 -11
- package/dist/schema/juxtapose.js.map +0 -1
- package/dist/schema/mediatext.d.ts +0 -6
- package/dist/schema/mediatext.d.ts.map +0 -1
- package/dist/schema/mediatext.js +0 -8
- package/dist/schema/mediatext.js.map +0 -1
- package/dist/schema/nav.d.ts +0 -13
- package/dist/schema/nav.d.ts.map +0 -1
- package/dist/schema/nav.js +0 -19
- package/dist/schema/nav.js.map +0 -1
- package/dist/schema/pagination.d.ts +0 -5
- package/dist/schema/pagination.d.ts.map +0 -1
- package/dist/schema/pagination.js +0 -7
- package/dist/schema/pagination.js.map +0 -1
- package/dist/schema/pullquote.d.ts +0 -5
- package/dist/schema/pullquote.d.ts.map +0 -1
- package/dist/schema/pullquote.js +0 -7
- package/dist/schema/pullquote.js.map +0 -1
- package/dist/schema/reveal.d.ts +0 -8
- package/dist/schema/reveal.d.ts.map +0 -1
- package/dist/schema/reveal.js +0 -13
- package/dist/schema/reveal.js.map +0 -1
- package/dist/schema/sandbox.d.ts +0 -9
- package/dist/schema/sandbox.d.ts.map +0 -1
- package/dist/schema/sandbox.js +0 -11
- package/dist/schema/sandbox.js.map +0 -1
- package/dist/schema/showcase.d.ts +0 -8
- package/dist/schema/showcase.d.ts.map +0 -1
- package/dist/schema/showcase.js +0 -10
- package/dist/schema/showcase.js.map +0 -1
- package/dist/schema/sidenote.d.ts +0 -4
- package/dist/schema/sidenote.d.ts.map +0 -1
- package/dist/schema/sidenote.js +0 -6
- package/dist/schema/sidenote.js.map +0 -1
- package/dist/schema/tabs.d.ts +0 -12
- package/dist/schema/tabs.d.ts.map +0 -1
- package/dist/schema/tabs.js +0 -17
- package/dist/schema/tabs.js.map +0 -1
- package/dist/schema/textblock.d.ts +0 -7
- package/dist/schema/textblock.d.ts.map +0 -1
- package/dist/schema/textblock.js +0 -9
- package/dist/schema/textblock.js.map +0 -1
- package/dist/schema/tint.d.ts +0 -5
- package/dist/schema/tint.d.ts.map +0 -1
- package/dist/schema/tint.js +0 -7
- package/dist/schema/tint.js.map +0 -1
- package/dist/schema/toc.d.ts +0 -5
- package/dist/schema/toc.d.ts.map +0 -1
- package/dist/schema/toc.js +0 -7
- package/dist/schema/toc.js.map +0 -1
package/dist/tags/budget.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
1
|
import Markdoc from '@markdoc/markdoc';
|
|
11
2
|
const { Ast, Tag } = Markdoc;
|
|
12
3
|
import { headingsToList } from '../util.js';
|
|
13
|
-
import {
|
|
14
|
-
import { attribute, Model, createComponentRenderable, createContentModelSchema, createSchema, asNodes } from '../lib/index.js';
|
|
4
|
+
import { createComponentRenderable, createContentModelSchema, asNodes } from '../lib/index.js';
|
|
15
5
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
16
6
|
// ─── Amount parsing ───
|
|
17
7
|
const DESCRIPTION_AMOUNT_PATTERN = /^(.+)\s*:\s*([€$£¥]?\s*[\d].*)$/;
|
|
@@ -55,16 +45,19 @@ function parseEstimate(heading) {
|
|
|
55
45
|
return { label: text, estimate: false };
|
|
56
46
|
}
|
|
57
47
|
// ─── BudgetLineItem ───
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
48
|
+
export const budgetLineItem = createContentModelSchema({
|
|
49
|
+
attributes: {
|
|
50
|
+
description: { type: String, required: false, description: 'Line item description' },
|
|
51
|
+
amount: { type: String, required: false, description: 'Line item amount' },
|
|
52
|
+
},
|
|
53
|
+
contentModel: {
|
|
54
|
+
type: 'sequence',
|
|
55
|
+
fields: [],
|
|
56
|
+
},
|
|
57
|
+
transform(resolved, attrs) {
|
|
58
|
+
const descTag = new Tag('span', {}, [attrs.description ?? '']);
|
|
59
|
+
const amountTag = new Tag('span', {}, [attrs.amount ?? '']);
|
|
60
|
+
return createComponentRenderable({ rune: 'budget-line-item',
|
|
68
61
|
tag: 'li',
|
|
69
62
|
properties: {
|
|
70
63
|
description: descTag,
|
|
@@ -72,70 +65,74 @@ class BudgetLineItemModel extends Model {
|
|
|
72
65
|
},
|
|
73
66
|
children: [descTag, amountTag],
|
|
74
67
|
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
__decorate([
|
|
78
|
-
attribute({ type: String, required: false }),
|
|
79
|
-
__metadata("design:type", String)
|
|
80
|
-
], BudgetLineItemModel.prototype, "description", void 0);
|
|
81
|
-
__decorate([
|
|
82
|
-
attribute({ type: String, required: false }),
|
|
83
|
-
__metadata("design:type", String)
|
|
84
|
-
], BudgetLineItemModel.prototype, "amount", void 0);
|
|
68
|
+
},
|
|
69
|
+
});
|
|
85
70
|
// ─── BudgetCategory ───
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const converted = [];
|
|
97
|
-
this._subtotal = 0;
|
|
98
|
-
for (const node of nodes) {
|
|
99
|
-
if (node.type === 'list') {
|
|
100
|
-
for (const item of node.children) {
|
|
101
|
-
const textParts = [];
|
|
102
|
-
for (const child of item.walk()) {
|
|
103
|
-
if (child.type === 'text' && child.attributes.content) {
|
|
104
|
-
textParts.push(child.attributes.content);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const text = textParts.join(' ').trim();
|
|
108
|
-
const match = text.match(DESCRIPTION_AMOUNT_PATTERN);
|
|
109
|
-
if (match) {
|
|
110
|
-
const amount = match[2].trim();
|
|
111
|
-
this._subtotal += parseAmount(amount);
|
|
112
|
-
converted.push(new Ast.Node('tag', {
|
|
113
|
-
description: match[1].trim(),
|
|
114
|
-
amount,
|
|
115
|
-
}, [], 'budget-line-item'));
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
converted.push(new Ast.Node('tag', {
|
|
119
|
-
description: text,
|
|
120
|
-
amount: '',
|
|
121
|
-
}, [], 'budget-line-item'));
|
|
71
|
+
// Convert list items into budget-line-item tags and compute subtotal
|
|
72
|
+
function convertCategoryChildren(nodes) {
|
|
73
|
+
const converted = [];
|
|
74
|
+
for (const node of nodes) {
|
|
75
|
+
if (node.type === 'list') {
|
|
76
|
+
for (const item of node.children) {
|
|
77
|
+
const textParts = [];
|
|
78
|
+
for (const child of item.walk()) {
|
|
79
|
+
if (child.type === 'text' && child.attributes.content) {
|
|
80
|
+
textParts.push(child.attributes.content);
|
|
122
81
|
}
|
|
123
82
|
}
|
|
83
|
+
const text = textParts.join(' ').trim();
|
|
84
|
+
const match = text.match(DESCRIPTION_AMOUNT_PATTERN);
|
|
85
|
+
if (match) {
|
|
86
|
+
converted.push(new Ast.Node('tag', {
|
|
87
|
+
description: match[1].trim(),
|
|
88
|
+
amount: match[2].trim(),
|
|
89
|
+
}, [], 'budget-line-item'));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
converted.push(new Ast.Node('tag', {
|
|
93
|
+
description: text,
|
|
94
|
+
amount: '',
|
|
95
|
+
}, [], 'budget-line-item'));
|
|
96
|
+
}
|
|
124
97
|
}
|
|
125
|
-
else {
|
|
126
|
-
converted.push(node);
|
|
127
|
-
}
|
|
128
98
|
}
|
|
129
|
-
|
|
99
|
+
else {
|
|
100
|
+
converted.push(node);
|
|
101
|
+
}
|
|
130
102
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
103
|
+
return converted;
|
|
104
|
+
}
|
|
105
|
+
/** Compute subtotal from budget-line-item tag nodes. */
|
|
106
|
+
function computeSubtotal(nodes) {
|
|
107
|
+
let subtotal = 0;
|
|
108
|
+
for (const node of nodes) {
|
|
109
|
+
if (node.type === 'tag' && node.tag === 'budget-line-item' && node.attributes.amount) {
|
|
110
|
+
subtotal += parseAmount(node.attributes.amount);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return subtotal;
|
|
114
|
+
}
|
|
115
|
+
export const budgetCategory = createContentModelSchema({
|
|
116
|
+
attributes: {
|
|
117
|
+
label: { type: String, required: true },
|
|
118
|
+
estimate: { type: Boolean, required: false },
|
|
119
|
+
},
|
|
120
|
+
contentModel: {
|
|
121
|
+
type: 'custom',
|
|
122
|
+
processChildren: convertCategoryChildren,
|
|
123
|
+
description: 'Converts list items into budget-line-item tags with "Description: $Amount" pattern.',
|
|
124
|
+
},
|
|
125
|
+
transform(resolved, attrs, config) {
|
|
126
|
+
// Compute subtotal from the raw children before transforming
|
|
127
|
+
const allChildren = asNodes(resolved.children);
|
|
128
|
+
const subtotal = computeSubtotal(allChildren);
|
|
129
|
+
const body = new RenderableNodeCursor(Markdoc.transform(allChildren, config));
|
|
130
|
+
const labelTag = new Tag('meta', { content: attrs.label ?? '' });
|
|
131
|
+
const estimateMeta = new Tag('meta', { content: String(attrs.estimate ?? false) });
|
|
132
|
+
const subtotalTag = new Tag('meta', { content: String(subtotal) });
|
|
136
133
|
const items = body.tag('li').typeof('BudgetLineItem');
|
|
137
134
|
const itemsList = new Tag('ul', {}, items.toArray());
|
|
138
|
-
return createComponentRenderable(
|
|
135
|
+
return createComponentRenderable({ rune: 'budget-category',
|
|
139
136
|
tag: 'div',
|
|
140
137
|
properties: {
|
|
141
138
|
label: labelTag,
|
|
@@ -148,16 +145,8 @@ class BudgetCategoryModel extends Model {
|
|
|
148
145
|
},
|
|
149
146
|
children: [labelTag, estimateMeta, subtotalTag, itemsList],
|
|
150
147
|
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
__decorate([
|
|
154
|
-
attribute({ type: String, required: true }),
|
|
155
|
-
__metadata("design:type", String)
|
|
156
|
-
], BudgetCategoryModel.prototype, "label", void 0);
|
|
157
|
-
__decorate([
|
|
158
|
-
attribute({ type: Boolean, required: false }),
|
|
159
|
-
__metadata("design:type", Boolean)
|
|
160
|
-
], BudgetCategoryModel.prototype, "estimate", void 0);
|
|
148
|
+
},
|
|
149
|
+
});
|
|
161
150
|
// ─── Budget (parent) ───
|
|
162
151
|
const variantType = ['detailed', 'summary'];
|
|
163
152
|
// Convert headings into budget-category tags
|
|
@@ -174,8 +163,6 @@ function convertBudgetChildren(nodes) {
|
|
|
174
163
|
converted.splice(n, 1, ...tags);
|
|
175
164
|
return converted;
|
|
176
165
|
}
|
|
177
|
-
export const budgetLineItem = createSchema(BudgetLineItemModel);
|
|
178
|
-
export const budgetCategory = createSchema(BudgetCategoryModel);
|
|
179
166
|
export const budget = createContentModelSchema({
|
|
180
167
|
attributes: {
|
|
181
168
|
title: { type: String, required: false, description: 'Title for the budget breakdown' },
|
|
@@ -224,7 +211,7 @@ export const budget = createContentModelSchema({
|
|
|
224
211
|
children.push(header.wrap('div').next());
|
|
225
212
|
}
|
|
226
213
|
children.push(categoriesDiv);
|
|
227
|
-
return createComponentRenderable(
|
|
214
|
+
return createComponentRenderable({ rune: 'budget', schemaOrgType: 'ItemList',
|
|
228
215
|
tag: 'section',
|
|
229
216
|
properties: {
|
|
230
217
|
title: titleMeta,
|
package/dist/tags/budget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/tags/budget.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/tags/budget.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/tags/chart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/tags/chart.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA2DvC,eAAO,MAAM,KAAK,gBAoChB,CAAC"}
|
package/dist/tags/chart.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
|
-
import { schema } from '../registry.js';
|
|
4
3
|
import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
|
|
5
4
|
import { walkTag } from '../util.js';
|
|
6
5
|
const chartType = ['bar', 'line', 'pie', 'area'];
|
|
@@ -73,7 +72,7 @@ export const chart = createContentModelSchema({
|
|
|
73
72
|
// Extract table data and serialize as JSON
|
|
74
73
|
const tableData = extractTableData(children);
|
|
75
74
|
const dataMeta = new Tag('meta', { content: JSON.stringify(tableData) });
|
|
76
|
-
return createComponentRenderable(
|
|
75
|
+
return createComponentRenderable({ rune: 'chart',
|
|
77
76
|
tag: 'figure',
|
|
78
77
|
properties: {
|
|
79
78
|
type: typeMeta,
|
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,
|
|
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;
|
|
1
|
+
{"version":3,"file":"codegroup.d.ts","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAqBvC,eAAO,MAAM,SAAS,gBA2DpB,CAAC"}
|
package/dist/tags/codegroup.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
|
-
import { schema } from '../registry.js';
|
|
4
3
|
import { createContentModelSchema, createComponentRenderable, asNodes } from '../lib/index.js';
|
|
5
4
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
6
5
|
const languageNames = {
|
|
@@ -58,7 +57,7 @@ export const codegroup = createContentModelSchema({
|
|
|
58
57
|
children.push(overflowMeta);
|
|
59
58
|
}
|
|
60
59
|
children.push(tabList.next(), panelList.next());
|
|
61
|
-
return createComponentRenderable(
|
|
60
|
+
return createComponentRenderable({ rune: 'code-group',
|
|
62
61
|
tag: 'section',
|
|
63
62
|
properties,
|
|
64
63
|
refs: { tabs: tabList, panels: panelList, panel: panelsCursor },
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"codegroup.js","sourceRoot":"","sources":["../../src/tags/codegroup.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/common.d.ts
CHANGED
|
@@ -1,23 +1,54 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
|
-
import type { Tag } from '@markdoc/markdoc';
|
|
3
|
-
import { Model } from '../lib/index.js';
|
|
2
|
+
import type { Tag, RenderableTreeNode, SchemaAttribute } from '@markdoc/markdoc';
|
|
4
3
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
5
|
-
/** @deprecated
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
valign: 'top' | 'center' | 'bottom';
|
|
15
|
-
gap: string;
|
|
16
|
-
collapse: string | undefined;
|
|
17
|
-
}
|
|
4
|
+
/** @deprecated Split layout attributes are now provided by splitLayoutAttributes */
|
|
5
|
+
export declare const SplitablePageSectionModel: undefined;
|
|
6
|
+
/** Split layout attribute definitions for runes with split/stacked layouts. */
|
|
7
|
+
export declare const splitLayoutAttributes: Record<string, SchemaAttribute>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use `splitLayoutAttributes` instead.
|
|
10
|
+
* Kept as a re-export for backwards compatibility with `base: SplitLayoutModel`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const SplitLayoutModel: Record<string, Markdoc.SchemaAttribute>;
|
|
18
13
|
export declare const linkItem: Markdoc.Schema;
|
|
19
14
|
export declare function name(cursor: RenderableNodeCursor): RenderableNodeCursor<Markdoc.Tag<"h1" | "h2" | "h3" | "h4" | "h5" | "h6", Record<string, any>>>;
|
|
20
15
|
export declare function description(cursor: RenderableNodeCursor): RenderableNodeCursor<Markdoc.Tag<"p", Record<string, any>>>;
|
|
16
|
+
export interface LayoutMetas {
|
|
17
|
+
layout: Tag;
|
|
18
|
+
ratio: Tag | undefined;
|
|
19
|
+
valign: Tag | undefined;
|
|
20
|
+
gap: Tag | undefined;
|
|
21
|
+
collapse: Tag | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the five layout meta tags shared by all split-layout runes.
|
|
25
|
+
* Accepts the attrs object from a `SplitLayoutModel`-based schema and returns
|
|
26
|
+
* the meta Tag instances plus a convenience array of the non-undefined tags
|
|
27
|
+
* suitable for spreading into a children array.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildLayoutMetas(attrs: Record<string, any>): {
|
|
30
|
+
metas: LayoutMetas;
|
|
31
|
+
children: Tag[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Extract a bare `<img>` tag from rendered media nodes.
|
|
35
|
+
*
|
|
36
|
+
* Markdoc wraps inline images in `<p><img .../></p>`. This utility walks
|
|
37
|
+
* the top-level nodes looking for either a bare `<img>` or an `<img>` nested
|
|
38
|
+
* inside a `<p>`, and returns the unwrapped tag.
|
|
39
|
+
*
|
|
40
|
+
* @returns The first `<img>` Tag found, or `undefined` if none exists.
|
|
41
|
+
*/
|
|
42
|
+
export declare function extractMediaImage(cursor: RenderableNodeCursor): Tag | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Unwrap paragraph-wrapped images in-place.
|
|
45
|
+
*
|
|
46
|
+
* Walks the node list and replaces any `<p>` containing only an `<img>`
|
|
47
|
+
* with the bare `<img>`. All other nodes pass through unchanged.
|
|
48
|
+
* Unlike `extractMediaImage()` which extracts a single image,
|
|
49
|
+
* this preserves the full node list for mixed-content zones.
|
|
50
|
+
*/
|
|
51
|
+
export declare function unwrapParagraphImages(nodes: RenderableTreeNode[]): RenderableTreeNode[];
|
|
21
52
|
export declare function pageSectionProperties(cursor: RenderableNodeCursor): {
|
|
22
53
|
eyebrow: Tag | undefined;
|
|
23
54
|
headline: Tag | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/tags/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAQ,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,WAAY,CAAC;AAEnD,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAMjE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,yCAAwB,CAAC;AAEtD,eAAO,MAAM,QAAQ,gBA6BnB,CAAC;AAEH,wBAAgB,IAAI,CAAC,MAAM,EAAE,oBAAoB,mGAEhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,+DAEvD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC;IACvB,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC;IACxB,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC;IACrB,QAAQ,EAAE,GAAG,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAC5D,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC;CACjB,CAuBA;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,GAAG,SAAS,CAa/E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAavF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,oBAAoB;aAUtC,GAAG,GAAG,SAAS;cACd,GAAG,GAAG,SAAS;;WAEZ,GAAG,GAAG,SAAS;EAkC9C"}
|
package/dist/tags/common.js
CHANGED
|
@@ -1,76 +1,126 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
1
|
import Markdoc from '@markdoc/markdoc';
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
__decorate([
|
|
52
|
-
attribute({ type: String, required: false, matches: ['none', 'tight', 'default', 'loose'], description: 'Space between columns in split layout' }),
|
|
53
|
-
__metadata("design:type", String)
|
|
54
|
-
], SplitLayoutModel.prototype, "gap", void 0);
|
|
55
|
-
__decorate([
|
|
56
|
-
attribute({ type: String, required: false, matches: ['sm', 'md', 'lg', 'never'], description: 'Breakpoint at which split layout collapses to stacked' }),
|
|
57
|
-
__metadata("design:type", Object)
|
|
58
|
-
], SplitLayoutModel.prototype, "collapse", void 0);
|
|
59
|
-
class LinkItemModel extends Model {
|
|
60
|
-
transform() {
|
|
61
|
-
const output = this.transformChildren({
|
|
62
|
-
text: node => new Markdoc.Tag('span', {}, [node.attributes.content])
|
|
63
|
-
});
|
|
2
|
+
import { createContentModelSchema } from '../lib/index.js';
|
|
3
|
+
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
4
|
+
/** @deprecated Split layout attributes are now provided by splitLayoutAttributes */
|
|
5
|
+
export const SplitablePageSectionModel = undefined;
|
|
6
|
+
/** Split layout attribute definitions for runes with split/stacked layouts. */
|
|
7
|
+
export const splitLayoutAttributes = {
|
|
8
|
+
layout: { type: String, required: false, matches: ['stacked', 'split', 'split-reverse'], description: 'Display mode: stacked vertically, or split side-by-side' },
|
|
9
|
+
ratio: { type: String, required: false, description: 'Column width ratio in split layout (e.g. "2 1")' },
|
|
10
|
+
valign: { type: String, required: false, matches: ['top', 'center', 'bottom'], description: 'Vertical alignment of columns in split layout' },
|
|
11
|
+
gap: { type: String, required: false, matches: ['none', 'tight', 'default', 'loose'], description: 'Space between columns in split layout' },
|
|
12
|
+
collapse: { type: String, required: false, matches: ['sm', 'md', 'lg', 'never'], description: 'Breakpoint at which split layout collapses to stacked' },
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use `splitLayoutAttributes` instead.
|
|
16
|
+
* Kept as a re-export for backwards compatibility with `base: SplitLayoutModel`.
|
|
17
|
+
*/
|
|
18
|
+
export const SplitLayoutModel = splitLayoutAttributes;
|
|
19
|
+
export const linkItem = createContentModelSchema({
|
|
20
|
+
contentModel: {
|
|
21
|
+
type: 'sequence',
|
|
22
|
+
fields: [
|
|
23
|
+
{ name: 'body', match: 'any', optional: true, greedy: true },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
transform(resolved, attrs, config) {
|
|
27
|
+
const bodyNodes = resolved.body
|
|
28
|
+
? (Array.isArray(resolved.body) ? resolved.body : [resolved.body])
|
|
29
|
+
: [];
|
|
30
|
+
// Transform children with text → span override
|
|
31
|
+
const output = new RenderableNodeCursor(Markdoc.transform(bodyNodes, {
|
|
32
|
+
...config,
|
|
33
|
+
nodes: {
|
|
34
|
+
...config.nodes,
|
|
35
|
+
text: {
|
|
36
|
+
transform(node) {
|
|
37
|
+
return new Markdoc.Tag('span', {}, [node.attributes.content]);
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}));
|
|
64
42
|
return new Markdoc.Tag('li', {}, output.toArray());
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
export const linkItem = createSchema(LinkItemModel);
|
|
43
|
+
},
|
|
44
|
+
});
|
|
68
45
|
export function name(cursor) {
|
|
69
46
|
return cursor.tags('h1', 'h2', 'h3', 'h4', 'h5', 'h6').limit(1);
|
|
70
47
|
}
|
|
71
48
|
export function description(cursor) {
|
|
72
49
|
return cursor.tag('p').limit(1);
|
|
73
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Build the five layout meta tags shared by all split-layout runes.
|
|
53
|
+
* Accepts the attrs object from a `SplitLayoutModel`-based schema and returns
|
|
54
|
+
* the meta Tag instances plus a convenience array of the non-undefined tags
|
|
55
|
+
* suitable for spreading into a children array.
|
|
56
|
+
*/
|
|
57
|
+
export function buildLayoutMetas(attrs) {
|
|
58
|
+
const layout = attrs.layout || 'stacked';
|
|
59
|
+
const ratio = attrs.ratio || '1 1';
|
|
60
|
+
const valign = attrs.valign || 'top';
|
|
61
|
+
const gap = attrs.gap || 'default';
|
|
62
|
+
const collapse = attrs.collapse;
|
|
63
|
+
const layoutMeta = new Markdoc.Tag('meta', { content: layout });
|
|
64
|
+
const ratioMeta = layout !== 'stacked' ? new Markdoc.Tag('meta', { content: ratio }) : undefined;
|
|
65
|
+
const valignMeta = layout !== 'stacked' ? new Markdoc.Tag('meta', { content: valign }) : undefined;
|
|
66
|
+
const gapMeta = gap !== 'default' ? new Markdoc.Tag('meta', { content: gap }) : undefined;
|
|
67
|
+
const collapseMeta = collapse ? new Markdoc.Tag('meta', { content: collapse }) : undefined;
|
|
68
|
+
const children = [layoutMeta];
|
|
69
|
+
if (ratioMeta)
|
|
70
|
+
children.push(ratioMeta);
|
|
71
|
+
if (valignMeta)
|
|
72
|
+
children.push(valignMeta);
|
|
73
|
+
if (gapMeta)
|
|
74
|
+
children.push(gapMeta);
|
|
75
|
+
if (collapseMeta)
|
|
76
|
+
children.push(collapseMeta);
|
|
77
|
+
return {
|
|
78
|
+
metas: { layout: layoutMeta, ratio: ratioMeta, valign: valignMeta, gap: gapMeta, collapse: collapseMeta },
|
|
79
|
+
children,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract a bare `<img>` tag from rendered media nodes.
|
|
84
|
+
*
|
|
85
|
+
* Markdoc wraps inline images in `<p><img .../></p>`. This utility walks
|
|
86
|
+
* the top-level nodes looking for either a bare `<img>` or an `<img>` nested
|
|
87
|
+
* inside a `<p>`, and returns the unwrapped tag.
|
|
88
|
+
*
|
|
89
|
+
* @returns The first `<img>` Tag found, or `undefined` if none exists.
|
|
90
|
+
*/
|
|
91
|
+
export function extractMediaImage(cursor) {
|
|
92
|
+
for (const node of cursor.toArray()) {
|
|
93
|
+
if (Markdoc.Tag.isTag(node) && node.name === 'img') {
|
|
94
|
+
return node;
|
|
95
|
+
}
|
|
96
|
+
if (Markdoc.Tag.isTag(node) && node.name === 'p') {
|
|
97
|
+
const img = node.children.find((c) => Markdoc.Tag.isTag(c) && c.name === 'img');
|
|
98
|
+
if (img)
|
|
99
|
+
return img;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Unwrap paragraph-wrapped images in-place.
|
|
106
|
+
*
|
|
107
|
+
* Walks the node list and replaces any `<p>` containing only an `<img>`
|
|
108
|
+
* with the bare `<img>`. All other nodes pass through unchanged.
|
|
109
|
+
* Unlike `extractMediaImage()` which extracts a single image,
|
|
110
|
+
* this preserves the full node list for mixed-content zones.
|
|
111
|
+
*/
|
|
112
|
+
export function unwrapParagraphImages(nodes) {
|
|
113
|
+
return nodes.map((node) => {
|
|
114
|
+
if (Markdoc.Tag.isTag(node) &&
|
|
115
|
+
node.name === 'p' &&
|
|
116
|
+
node.children.length === 1 &&
|
|
117
|
+
Markdoc.Tag.isTag(node.children[0]) &&
|
|
118
|
+
node.children[0].name === 'img') {
|
|
119
|
+
return node.children[0];
|
|
120
|
+
}
|
|
121
|
+
return node;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
74
124
|
export function pageSectionProperties(cursor) {
|
|
75
125
|
const nodes = cursor.nodes;
|
|
76
126
|
const isH = (n) => Markdoc.Tag.isTag(n) && /^h[1-6]$/.test(n.name);
|