@refrakt-md/runes 0.12.0 → 0.14.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 +36 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +603 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/tags/compare.d.ts.map +1 -1
- package/dist/tags/compare.js +11 -2
- package/dist/tags/compare.js.map +1 -1
- package/dist/tags/diff.d.ts.map +1 -1
- package/dist/tags/diff.js +36 -21
- package/dist/tags/diff.js.map +1 -1
- package/dist/tags/nav.d.ts +2 -0
- package/dist/tags/nav.d.ts.map +1 -1
- package/dist/tags/nav.js +45 -9
- package/dist/tags/nav.js.map +1 -1
- package/dist/tags/pagination.d.ts +5 -0
- package/dist/tags/pagination.d.ts.map +1 -0
- package/dist/tags/pagination.js +62 -0
- package/dist/tags/pagination.js.map +1 -0
- package/package.json +3 -3
package/dist/tags/diff.js
CHANGED
|
@@ -41,15 +41,16 @@ function computeLineDiff(before, after) {
|
|
|
41
41
|
stack.reverse();
|
|
42
42
|
return stack;
|
|
43
43
|
}
|
|
44
|
-
/** Align hunks into paired split lines (before/after) */
|
|
44
|
+
/** Align hunks into paired split lines (before/after) with line numbers. */
|
|
45
45
|
function getSplitLines(hunks) {
|
|
46
46
|
const before = [];
|
|
47
47
|
const after = [];
|
|
48
|
+
let bNum = 1, aNum = 1;
|
|
48
49
|
let i = 0;
|
|
49
50
|
while (i < hunks.length) {
|
|
50
51
|
if (hunks[i].type === 'equal') {
|
|
51
|
-
before.push(hunks[i]);
|
|
52
|
-
after.push(hunks[i]);
|
|
52
|
+
before.push({ hunk: hunks[i], num: bNum++ });
|
|
53
|
+
after.push({ hunk: hunks[i], num: aNum++ });
|
|
53
54
|
i++;
|
|
54
55
|
}
|
|
55
56
|
else {
|
|
@@ -65,8 +66,8 @@ function getSplitLines(hunks) {
|
|
|
65
66
|
}
|
|
66
67
|
const maxLen = Math.max(removes.length, adds.length);
|
|
67
68
|
for (let j = 0; j < maxLen; j++) {
|
|
68
|
-
before.push(j < removes.length ? removes[j] : null);
|
|
69
|
-
after.push(j < adds.length ? adds[j] : null);
|
|
69
|
+
before.push(j < removes.length ? { hunk: removes[j], num: bNum++ } : null);
|
|
70
|
+
after.push(j < adds.length ? { hunk: adds[j], num: aNum++ } : null);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
}
|
|
@@ -93,42 +94,46 @@ function getUnifiedLines(hunks) {
|
|
|
93
94
|
}
|
|
94
95
|
return lines;
|
|
95
96
|
}
|
|
96
|
-
/** Build unified diff renderable — pre with line spans
|
|
97
|
+
/** Build unified diff renderable — pre with line spans + before/after gutters.
|
|
98
|
+
* The "missing" gutter number on the off-side (after-num for a remove line,
|
|
99
|
+
* before-num for an add line) takes the place of the old `+`/`-` prefix as
|
|
100
|
+
* the directional cue: combined with the change-tinted number colour and
|
|
101
|
+
* the line's left-edge border, the absence/presence pattern says which way
|
|
102
|
+
* the change goes without a dedicated prefix column. */
|
|
97
103
|
function buildUnifiedRenderable(hunks, lang) {
|
|
98
104
|
const lines = getUnifiedLines(hunks);
|
|
99
105
|
const lineNodes = lines.map(({ hunk, beforeNum, afterNum }) => {
|
|
100
|
-
const prefix = hunk.type === 'remove' ? '-' : hunk.type === 'add' ? '+' : ' ';
|
|
101
106
|
return new Tag('span', { 'data-name': 'line', 'data-type': hunk.type }, [
|
|
102
|
-
new Tag('span', { 'data-name': 'gutter-num' }, [beforeNum != null ? String(beforeNum) : '
|
|
103
|
-
new Tag('span', { 'data-name': 'gutter-num' }, [afterNum != null ? String(afterNum) : '
|
|
104
|
-
new Tag('span', { 'data-name': 'gutter-prefix' }, [prefix]),
|
|
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) : '']),
|
|
105
109
|
new Tag('span', { 'data-name': 'line-content', ...(lang ? { 'data-language': lang } : {}) }, [hunk.text]),
|
|
106
110
|
]);
|
|
107
111
|
});
|
|
108
112
|
return [new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, lineNodes)];
|
|
109
113
|
}
|
|
110
|
-
/** Build split diff renderable — side-by-side panels with
|
|
114
|
+
/** Build split diff renderable — side-by-side panels with one numbered
|
|
115
|
+
* gutter per panel. Placeholder rows (where the matching side has the
|
|
116
|
+
* add/remove) render an empty gutter + empty content; the fixed gutter
|
|
117
|
+
* width keeps the column rigid so rows align across panels. */
|
|
111
118
|
function buildSplitRenderable(hunks, lang) {
|
|
112
119
|
const { before, after } = getSplitLines(hunks);
|
|
113
|
-
function buildPanelLines(lines) {
|
|
120
|
+
function buildPanelLines(lines, side) {
|
|
114
121
|
return lines.map(line => {
|
|
115
|
-
const type = line ? line.type : 'empty';
|
|
122
|
+
const type = line ? line.hunk.type : 'empty';
|
|
116
123
|
return new Tag('span', { 'data-name': 'line', 'data-type': type }, [
|
|
117
|
-
new Tag('span', { 'data-name': 'gutter' }, [line ?
|
|
124
|
+
new Tag('span', { 'data-name': 'gutter-num', 'data-side': side }, [line ? String(line.num) : '']),
|
|
118
125
|
new Tag('span', { 'data-name': 'line-content', ...(line && lang ? { 'data-language': lang } : {}) }, [
|
|
119
|
-
line ? line.text : '
|
|
126
|
+
line ? line.hunk.text : '',
|
|
120
127
|
]),
|
|
121
128
|
]);
|
|
122
129
|
});
|
|
123
130
|
}
|
|
124
131
|
return [new Tag('div', { 'data-name': 'split-container' }, [
|
|
125
132
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
126
|
-
new Tag('
|
|
127
|
-
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(before)),
|
|
133
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(before, 'before')),
|
|
128
134
|
]),
|
|
129
135
|
new Tag('div', { 'data-name': 'panel' }, [
|
|
130
|
-
new Tag('
|
|
131
|
-
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(after)),
|
|
136
|
+
new Tag('pre', { 'data-name': 'code', 'data-copy-selector': '[data-name="line-content"]' }, buildPanelLines(after, 'after')),
|
|
132
137
|
]),
|
|
133
138
|
])];
|
|
134
139
|
}
|
|
@@ -136,6 +141,7 @@ export const diff = createContentModelSchema({
|
|
|
136
141
|
attributes: {
|
|
137
142
|
mode: { type: String, required: false, matches: modeType.slice(), description: 'Diff display style: unified, split, or inline' },
|
|
138
143
|
language: { type: String, required: false, description: 'Programming language for syntax highlighting' },
|
|
144
|
+
title: { type: String, required: false, description: 'Optional title or filename displayed above the diff' },
|
|
139
145
|
},
|
|
140
146
|
contentModel: {
|
|
141
147
|
type: 'sequence',
|
|
@@ -146,6 +152,7 @@ export const diff = createContentModelSchema({
|
|
|
146
152
|
transform(resolved, attrs) {
|
|
147
153
|
const mode = attrs.mode ?? 'unified';
|
|
148
154
|
const language = attrs.language ?? '';
|
|
155
|
+
const title = attrs.title ?? '';
|
|
149
156
|
const modeMeta = new Tag('meta', { content: mode });
|
|
150
157
|
const languageMeta = new Tag('meta', { content: language });
|
|
151
158
|
// Extract raw source directly from resolved AST nodes
|
|
@@ -159,14 +166,22 @@ export const diff = createContentModelSchema({
|
|
|
159
166
|
const expanded = mode === 'split'
|
|
160
167
|
? buildSplitRenderable(hunks, lang)
|
|
161
168
|
: buildUnifiedRenderable(hunks, lang);
|
|
162
|
-
|
|
169
|
+
const header = title
|
|
170
|
+
? [new Tag('div', { 'data-name': 'header' }, [title])]
|
|
171
|
+
: [];
|
|
172
|
+
const renderable = createComponentRenderable({ rune: 'diff',
|
|
163
173
|
tag: 'div',
|
|
164
174
|
properties: {
|
|
165
175
|
mode: modeMeta,
|
|
166
176
|
language: languageMeta,
|
|
167
177
|
},
|
|
168
|
-
children: [modeMeta, languageMeta, ...expanded],
|
|
178
|
+
children: [modeMeta, languageMeta, ...header, ...expanded],
|
|
169
179
|
});
|
|
180
|
+
// Opt in to the highlight transform's `theme.code.colorScheme` cascade:
|
|
181
|
+
// the override stamps `data-color-scheme` on `data-code-host` wrappers
|
|
182
|
+
// so the entire diff (chrome + code) flips together.
|
|
183
|
+
renderable.attributes['data-code-host'] = true;
|
|
184
|
+
return renderable;
|
|
170
185
|
},
|
|
171
186
|
});
|
|
172
187
|
//# sourceMappingURL=diff.js.map
|
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":"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"}
|
package/dist/tags/nav.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
/** Sentinel meta property written by nav auto mode; consumed by corePipelineHooks.postProcess */
|
|
3
3
|
export declare const NAV_AUTO_SENTINEL = "__nav-auto";
|
|
4
|
+
/** Marker attribute placed on each NavGroup of a collapsible nav; resolved during postProcess */
|
|
5
|
+
export declare const NAV_COLLAPSED_AUTO = "auto";
|
|
4
6
|
export declare const nav: Markdoc.Schema;
|
|
5
7
|
//# sourceMappingURL=nav.d.ts.map
|
package/dist/tags/nav.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../src/tags/nav.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAOvC,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../src/tags/nav.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAOvC,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,iGAAiG;AACjG,eAAO,MAAM,kBAAkB,SAAS,CAAC;AA6FzC,eAAO,MAAM,GAAG,gBAoHd,CAAC"}
|
package/dist/tags/nav.js
CHANGED
|
@@ -5,6 +5,8 @@ import { createComponentRenderable } from '../lib/index.js';
|
|
|
5
5
|
import { RenderableNodeCursor } from '../lib/renderable.js';
|
|
6
6
|
/** Sentinel meta property written by nav auto mode; consumed by corePipelineHooks.postProcess */
|
|
7
7
|
export const NAV_AUTO_SENTINEL = '__nav-auto';
|
|
8
|
+
/** Marker attribute placed on each NavGroup of a collapsible nav; resolved during postProcess */
|
|
9
|
+
export const NAV_COLLAPSED_AUTO = 'auto';
|
|
8
10
|
const navItem = createContentModelSchema({
|
|
9
11
|
contentModel: {
|
|
10
12
|
type: 'sequence',
|
|
@@ -89,6 +91,9 @@ export const nav = createContentModelSchema({
|
|
|
89
91
|
attributes: {
|
|
90
92
|
ordered: { type: Boolean, required: false, description: 'Use numbered list for navigation items' },
|
|
91
93
|
auto: { type: Boolean, required: false, description: 'Automatically generate from child pages' },
|
|
94
|
+
layout: { type: String, required: false, matches: ['vertical', 'menubar', 'columns', 'cards'], description: 'Presentation layout: sidebar (vertical), horizontal menubar (header), column grid (footer), or cards (section landing). Defaults to vertical.' },
|
|
95
|
+
collapsible: { type: Boolean, required: false, description: 'Make each group collapsible. The group containing the current page auto-expands; others start collapsed. Only meaningful for vertical layout.' },
|
|
96
|
+
defaultOpen: { type: String, required: false, description: 'Comma-separated group titles to expand by default, overriding the URL-driven auto-open behaviour.' },
|
|
92
97
|
},
|
|
93
98
|
contentModel: {
|
|
94
99
|
type: 'custom',
|
|
@@ -96,18 +101,44 @@ export const nav = createContentModelSchema({
|
|
|
96
101
|
description: 'Top-level (#) headings become nav groups; the list directly under each heading becomes the group\'s items. Items are page slugs — wrap in markdown links to set custom labels, or use plain text to resolve the page title. Without headings, a single list becomes a flat nav.',
|
|
97
102
|
},
|
|
98
103
|
transform(resolved, attrs, config) {
|
|
104
|
+
const collapsible = Boolean(attrs.collapsible);
|
|
105
|
+
const forwardLayout = (tag) => {
|
|
106
|
+
if (attrs.layout)
|
|
107
|
+
tag.attributes.layout = attrs.layout;
|
|
108
|
+
if (collapsible) {
|
|
109
|
+
tag.attributes['data-collapsible'] = 'true';
|
|
110
|
+
const existing = tag.attributes.class ?? '';
|
|
111
|
+
tag.attributes.class = [existing, 'rf-nav--collapsible'].filter(Boolean).join(' ');
|
|
112
|
+
if (typeof attrs.defaultOpen === 'string' && attrs.defaultOpen.trim()) {
|
|
113
|
+
tag.attributes['data-default-open'] = attrs.defaultOpen.trim();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return tag;
|
|
117
|
+
};
|
|
118
|
+
const maybeWithTrigger = (children) => {
|
|
119
|
+
if (attrs.layout === 'menubar') {
|
|
120
|
+
const trigger = new Markdoc.Tag('button', {
|
|
121
|
+
'data-name': 'trigger',
|
|
122
|
+
type: 'button',
|
|
123
|
+
'aria-label': 'Toggle navigation',
|
|
124
|
+
'aria-expanded': 'false',
|
|
125
|
+
}, []);
|
|
126
|
+
return [trigger, ...children];
|
|
127
|
+
}
|
|
128
|
+
return children;
|
|
129
|
+
};
|
|
99
130
|
if (attrs.auto) {
|
|
100
131
|
// Emit a placeholder with an empty nav and a sentinel meta tag.
|
|
101
132
|
// The core post-process hook will replace this with resolved child page items.
|
|
102
133
|
const sentinelMeta = new Markdoc.Tag('meta', { 'data-field': NAV_AUTO_SENTINEL, content: 'true' });
|
|
103
|
-
return createComponentRenderable({ rune: 'nav',
|
|
134
|
+
return forwardLayout(createComponentRenderable({ rune: 'nav',
|
|
104
135
|
tag: 'nav',
|
|
105
136
|
properties: {
|
|
106
137
|
group: [],
|
|
107
138
|
item: [],
|
|
108
139
|
},
|
|
109
|
-
children: [sentinelMeta],
|
|
110
|
-
});
|
|
140
|
+
children: maybeWithTrigger([sentinelMeta]),
|
|
141
|
+
}));
|
|
111
142
|
}
|
|
112
143
|
const children = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.children), {
|
|
113
144
|
...config,
|
|
@@ -124,32 +155,37 @@ export const nav = createContentModelSchema({
|
|
|
124
155
|
const hasGroups = children.headings().count() > 0;
|
|
125
156
|
if (hasGroups) {
|
|
126
157
|
const { topLevel, groups } = buildGroups(children.toArray());
|
|
158
|
+
if (collapsible) {
|
|
159
|
+
for (const group of groups) {
|
|
160
|
+
group.attributes['data-collapsed'] = NAV_COLLAPSED_AUTO;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
127
163
|
const topLevelContainer = topLevel.length > 0
|
|
128
164
|
? new Markdoc.Tag('div', { 'data-name': 'top-level' }, [new Markdoc.Tag('ul', {}, topLevel)])
|
|
129
165
|
: null;
|
|
130
166
|
const allGroupItems = groups.flatMap(g => g.children.filter((c) => Markdoc.Tag.isTag(c) && c.name === 'ul')
|
|
131
167
|
.flatMap(ul => ul.children.filter((c) => Markdoc.Tag.isTag(c) && c.name === 'li')));
|
|
132
|
-
return createComponentRenderable({ rune: 'nav',
|
|
168
|
+
return forwardLayout(createComponentRenderable({ rune: 'nav',
|
|
133
169
|
tag: 'nav',
|
|
134
170
|
class: attrs.ordered ? 'ordered' : undefined,
|
|
135
171
|
properties: {
|
|
136
172
|
group: groups,
|
|
137
173
|
item: [...topLevel, ...allGroupItems],
|
|
138
174
|
},
|
|
139
|
-
children: topLevelContainer ? [topLevelContainer, ...groups] : groups,
|
|
140
|
-
});
|
|
175
|
+
children: maybeWithTrigger(topLevelContainer ? [topLevelContainer, ...groups] : groups),
|
|
176
|
+
}));
|
|
141
177
|
}
|
|
142
178
|
// Flat list (no groups)
|
|
143
179
|
const allItems = children.flatten().tag('li');
|
|
144
|
-
return createComponentRenderable({ rune: 'nav',
|
|
180
|
+
return forwardLayout(createComponentRenderable({ rune: 'nav',
|
|
145
181
|
tag: 'nav',
|
|
146
182
|
class: attrs.ordered ? 'ordered' : undefined,
|
|
147
183
|
properties: {
|
|
148
184
|
group: [],
|
|
149
185
|
item: allItems,
|
|
150
186
|
},
|
|
151
|
-
children: children.toArray(),
|
|
152
|
-
});
|
|
187
|
+
children: maybeWithTrigger(children.toArray()),
|
|
188
|
+
}));
|
|
153
189
|
},
|
|
154
190
|
});
|
|
155
191
|
//# sourceMappingURL=nav.js.map
|
package/dist/tags/nav.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.js","sourceRoot":"","sources":["../../src/tags/nav.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nav.js","sourceRoot":"","sources":["../../src/tags/nav.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
/** Sentinel meta property written by pagination auto mode; consumed by corePipelineHooks.postProcess */
|
|
3
|
+
export declare const PAGINATION_AUTO_SENTINEL = "__pagination-auto";
|
|
4
|
+
export declare const pagination: Markdoc.Schema;
|
|
5
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/tags/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAIvC,wGAAwG;AACxG,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAE5D,eAAO,MAAM,UAAU,gBA+DrB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
const { Tag } = Markdoc;
|
|
3
|
+
import { createContentModelSchema, createComponentRenderable } from '../lib/index.js';
|
|
4
|
+
/** Sentinel meta property written by pagination auto mode; consumed by corePipelineHooks.postProcess */
|
|
5
|
+
export const PAGINATION_AUTO_SENTINEL = '__pagination-auto';
|
|
6
|
+
export const pagination = createContentModelSchema({
|
|
7
|
+
attributes: {
|
|
8
|
+
auto: { type: Boolean, required: false, default: false, description: 'Derive prev/next from sibling page order' },
|
|
9
|
+
prev: { type: String, required: false, description: 'Explicit previous page (slug or URL)' },
|
|
10
|
+
next: { type: String, required: false, description: 'Explicit next page (slug or URL)' },
|
|
11
|
+
scope: { type: String, required: false, matches: ['siblings', 'section'], default: 'siblings', description: 'Auto-mode scope: direct siblings, or all pages in the current top-level section' },
|
|
12
|
+
'prev-label': { type: String, required: false, description: 'Override label for the previous link' },
|
|
13
|
+
'next-label': { type: String, required: false, description: 'Override label for the next link' },
|
|
14
|
+
},
|
|
15
|
+
contentModel: { type: 'sequence', fields: [] },
|
|
16
|
+
selfClosing: true,
|
|
17
|
+
transform(_resolved, attrs, _config) {
|
|
18
|
+
if (attrs.auto) {
|
|
19
|
+
const sentinelMeta = new Tag('meta', { 'data-field': PAGINATION_AUTO_SENTINEL, content: 'true' });
|
|
20
|
+
const scopeMeta = attrs.scope
|
|
21
|
+
? new Tag('meta', { 'data-field': 'scope', content: String(attrs.scope) })
|
|
22
|
+
: null;
|
|
23
|
+
const prevLabelMeta = attrs['prev-label']
|
|
24
|
+
? new Tag('meta', { 'data-field': 'prev-label', content: String(attrs['prev-label']) })
|
|
25
|
+
: null;
|
|
26
|
+
const nextLabelMeta = attrs['next-label']
|
|
27
|
+
? new Tag('meta', { 'data-field': 'next-label', content: String(attrs['next-label']) })
|
|
28
|
+
: null;
|
|
29
|
+
const metas = [sentinelMeta, scopeMeta, prevLabelMeta, nextLabelMeta].filter(Boolean);
|
|
30
|
+
return createComponentRenderable({
|
|
31
|
+
rune: 'pagination',
|
|
32
|
+
tag: 'nav',
|
|
33
|
+
children: metas,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const links = [];
|
|
37
|
+
if (attrs.prev) {
|
|
38
|
+
const isUrl = String(attrs.prev).startsWith('/') || /^[a-z]+:\/\//i.test(String(attrs.prev));
|
|
39
|
+
const href = isUrl ? String(attrs.prev) : `__slug:${attrs.prev}`;
|
|
40
|
+
const label = attrs['prev-label'] ?? String(attrs.prev);
|
|
41
|
+
links.push(new Tag('a', { href, 'data-direction': 'prev', 'data-name': 'prev' }, [
|
|
42
|
+
new Tag('span', { 'data-name': 'marker' }, ['←']),
|
|
43
|
+
new Tag('span', { 'data-name': 'label' }, [label]),
|
|
44
|
+
]));
|
|
45
|
+
}
|
|
46
|
+
if (attrs.next) {
|
|
47
|
+
const isUrl = String(attrs.next).startsWith('/') || /^[a-z]+:\/\//i.test(String(attrs.next));
|
|
48
|
+
const href = isUrl ? String(attrs.next) : `__slug:${attrs.next}`;
|
|
49
|
+
const label = attrs['next-label'] ?? String(attrs.next);
|
|
50
|
+
links.push(new Tag('a', { href, 'data-direction': 'next', 'data-name': 'next' }, [
|
|
51
|
+
new Tag('span', { 'data-name': 'label' }, [label]),
|
|
52
|
+
new Tag('span', { 'data-name': 'marker' }, ['→']),
|
|
53
|
+
]));
|
|
54
|
+
}
|
|
55
|
+
return createComponentRenderable({
|
|
56
|
+
rune: 'pagination',
|
|
57
|
+
tag: 'nav',
|
|
58
|
+
children: links,
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/tags/pagination.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/runes",
|
|
3
3
|
"description": "Semantic Markdoc runes for refrakt.md",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.14.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"build": "tsc"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@refrakt-md/types": "0.
|
|
33
|
-
"@refrakt-md/transform": "0.
|
|
32
|
+
"@refrakt-md/types": "0.14.1",
|
|
33
|
+
"@refrakt-md/transform": "0.14.1",
|
|
34
34
|
"@markdoc/markdoc": "0.4.0",
|
|
35
35
|
"reflect-metadata": "^0.2.0",
|
|
36
36
|
"fast-xml-parser": "4.5.1",
|