@refrakt-md/runes 0.1.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/attributes.d.ts +15 -0
- package/dist/attributes.d.ts.map +1 -0
- package/dist/attributes.js +46 -0
- package/dist/attributes.js.map +1 -0
- package/dist/documents/doc.d.ts +4 -0
- package/dist/documents/doc.d.ts.map +1 -0
- package/dist/documents/doc.js +4 -0
- package/dist/documents/doc.js.map +1 -0
- package/dist/documents/footer.d.ts +2 -0
- package/dist/documents/footer.d.ts.map +1 -0
- package/dist/documents/footer.js +60 -0
- package/dist/documents/footer.js.map +1 -0
- package/dist/documents/menu.d.ts +2 -0
- package/dist/documents/menu.d.ts.map +1 -0
- package/dist/documents/menu.js +40 -0
- package/dist/documents/menu.js.map +1 -0
- package/dist/documents/page.d.ts +10 -0
- package/dist/documents/page.d.ts.map +1 -0
- package/dist/documents/page.js +30 -0
- package/dist/documents/page.js.map +1 -0
- package/dist/documents/summary.d.ts +3 -0
- package/dist/documents/summary.d.ts.map +1 -0
- package/dist/documents/summary.js +63 -0
- package/dist/documents/summary.js.map +1 -0
- package/dist/hljs-markdoc.d.ts +3 -0
- package/dist/hljs-markdoc.d.ts.map +1 -0
- package/dist/hljs-markdoc.js +37 -0
- package/dist/hljs-markdoc.js.map +1 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +295 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.d.ts +44 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +11 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/layouts/grid.d.ts +23 -0
- package/dist/layouts/grid.d.ts.map +1 -0
- package/dist/layouts/grid.js +30 -0
- package/dist/layouts/grid.js.map +1 -0
- package/dist/layouts/index.d.ts +3 -0
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +3 -0
- package/dist/layouts/index.js.map +1 -0
- package/dist/layouts/split.d.ts +15 -0
- package/dist/layouts/split.d.ts.map +1 -0
- package/dist/layouts/split.js +26 -0
- package/dist/layouts/split.js.map +1 -0
- package/dist/lib/annotations/annotation.d.ts +11 -0
- package/dist/lib/annotations/annotation.d.ts.map +1 -0
- package/dist/lib/annotations/annotation.js +21 -0
- package/dist/lib/annotations/annotation.js.map +1 -0
- package/dist/lib/annotations/attribute.d.ts +12 -0
- package/dist/lib/annotations/attribute.d.ts.map +1 -0
- package/dist/lib/annotations/attribute.js +17 -0
- package/dist/lib/annotations/attribute.js.map +1 -0
- package/dist/lib/annotations/decoration.d.ts +10 -0
- package/dist/lib/annotations/decoration.d.ts.map +1 -0
- package/dist/lib/annotations/decoration.js +46 -0
- package/dist/lib/annotations/decoration.js.map +1 -0
- package/dist/lib/annotations/group.d.ts +24 -0
- package/dist/lib/annotations/group.d.ts.map +1 -0
- package/dist/lib/annotations/group.js +78 -0
- package/dist/lib/annotations/group.js.map +1 -0
- package/dist/lib/annotations/id.d.ts +19 -0
- package/dist/lib/annotations/id.d.ts.map +1 -0
- package/dist/lib/annotations/id.js +32 -0
- package/dist/lib/annotations/id.js.map +1 -0
- package/dist/lib/annotations/interfaces.d.ts +27 -0
- package/dist/lib/annotations/interfaces.d.ts.map +1 -0
- package/dist/lib/annotations/interfaces.js +2 -0
- package/dist/lib/annotations/interfaces.js.map +1 -0
- package/dist/lib/component.d.ts +26 -0
- package/dist/lib/component.d.ts.map +1 -0
- package/dist/lib/component.js +28 -0
- package/dist/lib/component.js.map +1 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +25 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/model.d.ts +13 -0
- package/dist/lib/model.d.ts.map +1 -0
- package/dist/lib/model.js +33 -0
- package/dist/lib/model.js.map +1 -0
- package/dist/lib/node.d.ts +18 -0
- package/dist/lib/node.d.ts.map +1 -0
- package/dist/lib/node.js +49 -0
- package/dist/lib/node.js.map +1 -0
- package/dist/lib/renderable.d.ts +22 -0
- package/dist/lib/renderable.d.ts.map +1 -0
- package/dist/lib/renderable.js +52 -0
- package/dist/lib/renderable.js.map +1 -0
- package/dist/lib/types.d.ts +8 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +14 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/nodes.d.ts +18 -0
- package/dist/nodes.d.ts.map +1 -0
- package/dist/nodes.js +181 -0
- package/dist/nodes.js.map +1 -0
- package/dist/registry.d.ts +47 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +60 -0
- package/dist/registry.js.map +1 -0
- package/dist/rune.d.ts +34 -0
- package/dist/rune.d.ts.map +1 -0
- package/dist/rune.js +29 -0
- package/dist/rune.js.map +1 -0
- package/dist/tags/accordion.d.ts +4 -0
- package/dist/tags/accordion.d.ts.map +1 -0
- package/dist/tags/accordion.js +98 -0
- package/dist/tags/accordion.js.map +1 -0
- package/dist/tags/breadcrumb.d.ts +3 -0
- package/dist/tags/breadcrumb.d.ts.map +1 -0
- package/dist/tags/breadcrumb.js +76 -0
- package/dist/tags/breadcrumb.js.map +1 -0
- package/dist/tags/changelog.d.ts +4 -0
- package/dist/tags/changelog.d.ts.map +1 -0
- package/dist/tags/changelog.js +124 -0
- package/dist/tags/changelog.js.map +1 -0
- package/dist/tags/codegroup.d.ts +2 -0
- package/dist/tags/codegroup.d.ts.map +1 -0
- package/dist/tags/codegroup.js +60 -0
- package/dist/tags/codegroup.js.map +1 -0
- package/dist/tags/common.d.ts +17 -0
- package/dist/tags/common.d.ts.map +1 -0
- package/dist/tags/common.js +61 -0
- package/dist/tags/common.js.map +1 -0
- package/dist/tags/compare.d.ts +3 -0
- package/dist/tags/compare.d.ts.map +1 -0
- package/dist/tags/compare.js +61 -0
- package/dist/tags/compare.js.map +1 -0
- package/dist/tags/cta.d.ts +3 -0
- package/dist/tags/cta.d.ts.map +1 -0
- package/dist/tags/cta.js +75 -0
- package/dist/tags/cta.js.map +1 -0
- package/dist/tags/details.d.ts +3 -0
- package/dist/tags/details.d.ts.map +1 -0
- package/dist/tags/details.js +55 -0
- package/dist/tags/details.js.map +1 -0
- package/dist/tags/embed.d.ts +3 -0
- package/dist/tags/embed.d.ts.map +1 -0
- package/dist/tags/embed.js +130 -0
- package/dist/tags/embed.js.map +1 -0
- package/dist/tags/error.d.ts +3 -0
- package/dist/tags/error.d.ts.map +1 -0
- package/dist/tags/error.js +50 -0
- package/dist/tags/error.js.map +1 -0
- package/dist/tags/feature.d.ts +16 -0
- package/dist/tags/feature.d.ts.map +1 -0
- package/dist/tags/feature.js +98 -0
- package/dist/tags/feature.js.map +1 -0
- package/dist/tags/figure.d.ts +3 -0
- package/dist/tags/figure.d.ts.map +1 -0
- package/dist/tags/figure.js +64 -0
- package/dist/tags/figure.js.map +1 -0
- package/dist/tags/grid.d.ts +2 -0
- package/dist/tags/grid.d.ts.map +1 -0
- package/dist/tags/grid.js +56 -0
- package/dist/tags/grid.js.map +1 -0
- package/dist/tags/hero.d.ts +3 -0
- package/dist/tags/hero.d.ts.map +1 -0
- package/dist/tags/hero.js +75 -0
- package/dist/tags/hero.js.map +1 -0
- package/dist/tags/hint.d.ts +3 -0
- package/dist/tags/hint.d.ts.map +1 -0
- package/dist/tags/hint.js +41 -0
- package/dist/tags/hint.js.map +1 -0
- package/dist/tags/layout.d.ts +3 -0
- package/dist/tags/layout.d.ts.map +1 -0
- package/dist/tags/layout.js +32 -0
- package/dist/tags/layout.js.map +1 -0
- package/dist/tags/music-playlist.d.ts +3 -0
- package/dist/tags/music-playlist.d.ts.map +1 -0
- package/dist/tags/music-playlist.js +80 -0
- package/dist/tags/music-playlist.js.map +1 -0
- package/dist/tags/music-recording.d.ts +17 -0
- package/dist/tags/music-recording.d.ts.map +1 -0
- package/dist/tags/music-recording.js +99 -0
- package/dist/tags/music-recording.js.map +1 -0
- package/dist/tags/nav.d.ts +3 -0
- package/dist/tags/nav.d.ts.map +1 -0
- package/dist/tags/nav.js +114 -0
- package/dist/tags/nav.js.map +1 -0
- package/dist/tags/pricing.d.ts +12 -0
- package/dist/tags/pricing.d.ts.map +1 -0
- package/dist/tags/pricing.js +78 -0
- package/dist/tags/pricing.js.map +1 -0
- package/dist/tags/region.d.ts +3 -0
- package/dist/tags/region.d.ts.map +1 -0
- package/dist/tags/region.js +37 -0
- package/dist/tags/region.js.map +1 -0
- package/dist/tags/steps.d.ts +4 -0
- package/dist/tags/steps.d.ts.map +1 -0
- package/dist/tags/steps.js +71 -0
- package/dist/tags/steps.js.map +1 -0
- package/dist/tags/tabs.d.ts +4 -0
- package/dist/tags/tabs.d.ts.map +1 -0
- package/dist/tags/tabs.js +119 -0
- package/dist/tags/tabs.js.map +1 -0
- package/dist/tags/testimonial.d.ts +3 -0
- package/dist/tags/testimonial.d.ts.map +1 -0
- package/dist/tags/testimonial.js +99 -0
- package/dist/tags/testimonial.js.map +1 -0
- package/dist/tags/timeline.d.ts +4 -0
- package/dist/tags/timeline.d.ts.map +1 -0
- package/dist/tags/timeline.js +125 -0
- package/dist/tags/timeline.js.map +1 -0
- package/dist/tags/toc.d.ts +3 -0
- package/dist/tags/toc.d.ts.map +1 -0
- package/dist/tags/toc.js +53 -0
- package/dist/tags/toc.js.map +1 -0
- package/dist/util.d.ts +21 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +99 -0
- package/dist/util.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
function metadata(name, target, initialState, propertyKey) {
|
|
3
|
+
const read = (inherit) => {
|
|
4
|
+
const reader = inherit ? Reflect.getMetadata : Reflect.getOwnMetadata;
|
|
5
|
+
return reader(name, target, propertyKey) || initialState;
|
|
6
|
+
};
|
|
7
|
+
return {
|
|
8
|
+
mutate: (fn) => {
|
|
9
|
+
const data = fn(read());
|
|
10
|
+
if (propertyKey) {
|
|
11
|
+
Reflect.defineMetadata(name, data, target, propertyKey);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
Reflect.defineMetadata(name, data, target);
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
read,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export const annotations = (target) => metadata('annotations', target, []);
|
|
21
|
+
export const propMetadata = (target) => metadata('propMetadata', target, {});
|
|
22
|
+
export const parameters = (target, propertyKey) => metadata('parameters', target, [], propertyKey);
|
|
23
|
+
function decorate(target, annotation) {
|
|
24
|
+
annotations(target).mutate(data => data.concat(annotation));
|
|
25
|
+
}
|
|
26
|
+
function decorateProperty(target, propertyKey, annotation) {
|
|
27
|
+
propMetadata(target.constructor).mutate(props => Object.assign(props, { [propertyKey]: (props[propertyKey] || []).concat(annotation) }));
|
|
28
|
+
decorate(target.constructor, annotation);
|
|
29
|
+
}
|
|
30
|
+
export function classDecorator(factory) {
|
|
31
|
+
return target => {
|
|
32
|
+
decorate(target, factory(target));
|
|
33
|
+
return target;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function methodDecorator(factory) {
|
|
37
|
+
return (target, propertyKey, descriptor) => decorateProperty(target, propertyKey, factory({ target, propertyKey, descriptor }));
|
|
38
|
+
}
|
|
39
|
+
export function propertyDecorator(factory) {
|
|
40
|
+
return (target, propertyKey) => decorateProperty(target, propertyKey, factory({ target, propertyKey }));
|
|
41
|
+
}
|
|
42
|
+
export function parameterDecorator(factory) {
|
|
43
|
+
return (target, propertyKey, parameterIndex) => parameters(target.constructor, propertyKey)
|
|
44
|
+
.mutate(p => p.concat(factory({ target, propertyKey, parameterIndex })));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=decoration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../../../src/lib/annotations/decoration.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAa1B,SAAS,QAAQ,CACf,IAAY,EAAE,MAAW,EAAE,YAAe,EAAE,WAA6B;IAEzE,MAAM,IAAI,GAAG,CAAC,OAAiB,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAqB,CAAA;QAC5E,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC3D,CAAC,CAAA;IAED,OAAO;QACL,MAAM,EAAE,CAAC,EAAkB,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,IAAI;KACU,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAW,EAAE,EAAE,CACzC,QAAQ,CAAQ,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAW,EAAE,EAAE,CAC1C,QAAQ,CAA+B,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAW,EAAE,WAA6B,EAAE,EAAE,CACvE,QAAQ,CAAQ,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;AAEzD,SAAS,QAAQ,CAAC,MAAW,EAAE,UAAe;IAC5C,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAe;IAC5E,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAsC;IAEtC,OAAO,MAAM,CAAC,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAA+C;IAE/C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CACzC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAiD;IAEjD,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAC7B,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAC,MAAM,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAkD;IAElD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,cAAsB,EAAE,EAAE,CAClE,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Config, Node, NodeType } from '@markdoc/markdoc';
|
|
2
|
+
import { Annotation } from './annotation.js';
|
|
3
|
+
import { Group } from '../../interfaces.js';
|
|
4
|
+
import { NodeStream } from '../node.js';
|
|
5
|
+
export type GroupAnnotationOptions = Omit<Group, 'name'>;
|
|
6
|
+
export declare class AbstractGroupAnnotation extends Annotation {
|
|
7
|
+
protected target: any;
|
|
8
|
+
protected propertyKey: string;
|
|
9
|
+
constructor(target: any, propertyKey: string);
|
|
10
|
+
create(nodes: Node[], index: number, config: Config): number;
|
|
11
|
+
}
|
|
12
|
+
export declare class GroupAnnotation extends AbstractGroupAnnotation {
|
|
13
|
+
private options;
|
|
14
|
+
constructor(target: any, propertyKey: string, options: GroupAnnotationOptions);
|
|
15
|
+
create(nodes: Node[], index: number, config: Config): number;
|
|
16
|
+
private includes;
|
|
17
|
+
}
|
|
18
|
+
interface GroupListOptions {
|
|
19
|
+
delimiter: NodeType;
|
|
20
|
+
}
|
|
21
|
+
export declare function group(options: GroupAnnotationOptions): import("./interfaces.js").PropertyDecorator<any>;
|
|
22
|
+
export declare function groupList(options: GroupListOptions): import("./interfaces.js").PropertyDecorator<NodeStream[]>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,UAAU;IAEnD,SAAS,CAAC,MAAM,EAAE,GAAG;IACrB,SAAS,CAAC,WAAW,EAAE,MAAM;gBADnB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM;IAK/B,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAGpD;AAED,qBAAa,eAAgB,SAAQ,uBAAuB;IAIxD,OAAO,CAAC,OAAO;gBAFf,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACX,OAAO,EAAE,sBAAsB;IAKlC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAsB1D,OAAO,CAAC,QAAQ;CAWjB;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAkCD,wBAAgB,KAAK,CAAC,OAAO,EAAE,sBAAsB,oDAEpD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,6DAElD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Annotation } from './annotation.js';
|
|
2
|
+
import { propertyDecorator } from './decoration.js';
|
|
3
|
+
import { isFilterMatching, NodeStream } from '../node.js';
|
|
4
|
+
export class AbstractGroupAnnotation extends Annotation {
|
|
5
|
+
constructor(target, propertyKey) {
|
|
6
|
+
super();
|
|
7
|
+
this.target = target;
|
|
8
|
+
this.propertyKey = propertyKey;
|
|
9
|
+
}
|
|
10
|
+
create(nodes, index, config) {
|
|
11
|
+
return index;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class GroupAnnotation extends AbstractGroupAnnotation {
|
|
15
|
+
constructor(target, propertyKey, options) {
|
|
16
|
+
super(target, propertyKey);
|
|
17
|
+
this.options = options;
|
|
18
|
+
}
|
|
19
|
+
create(nodes, index, config) {
|
|
20
|
+
let section = nodes.slice(0, index).filter(n => n.type === 'hr').length;
|
|
21
|
+
const group = new NodeStream([], config);
|
|
22
|
+
for (const n of nodes.slice(index)) {
|
|
23
|
+
if (n.type === 'hr') {
|
|
24
|
+
section++;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (this.includes(n, section) || n.type === 'comment') {
|
|
28
|
+
group.push(n);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
this.target[this.propertyKey] = group;
|
|
35
|
+
return index + group.length;
|
|
36
|
+
}
|
|
37
|
+
includes(node, section) {
|
|
38
|
+
const group = this.options;
|
|
39
|
+
if (group.section !== undefined && group.section !== section) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (group.include) {
|
|
43
|
+
return group.include.some(g => isFilterMatching(node, g));
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
class GroupListAnnotation extends AbstractGroupAnnotation {
|
|
49
|
+
constructor(target, propertyKey, options) {
|
|
50
|
+
super(target, propertyKey);
|
|
51
|
+
this.options = options;
|
|
52
|
+
}
|
|
53
|
+
create(nodes, index, config) {
|
|
54
|
+
const streams = [];
|
|
55
|
+
let current = new NodeStream([], config);
|
|
56
|
+
for (const n of nodes.slice(index)) {
|
|
57
|
+
if (n.type === this.options.delimiter && current.length > 0) {
|
|
58
|
+
streams.push(current);
|
|
59
|
+
current = new NodeStream([], config);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
current.push(n);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (current.length > 0) {
|
|
66
|
+
streams.push(current);
|
|
67
|
+
}
|
|
68
|
+
this.target[this.propertyKey] = streams;
|
|
69
|
+
return nodes.length - 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function group(options) {
|
|
73
|
+
return propertyDecorator(({ target, propertyKey }) => new GroupAnnotation(target, propertyKey, options));
|
|
74
|
+
}
|
|
75
|
+
export function groupList(options) {
|
|
76
|
+
return propertyDecorator(({ target, propertyKey }) => new GroupListAnnotation(target, propertyKey, options));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/lib/annotations/group.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Config, Node } from '@markdoc/markdoc';
|
|
2
|
+
import { Annotation } from './annotation.js';
|
|
3
|
+
export interface IdOptions {
|
|
4
|
+
generate: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class GeneratedAttributeAnnotation<T> extends Annotation {
|
|
7
|
+
private target;
|
|
8
|
+
propertyKey: string;
|
|
9
|
+
constructor(target: any, propertyKey: string);
|
|
10
|
+
create(node: Node, config: Config): void;
|
|
11
|
+
protected generate(node: Node, config: Config): T;
|
|
12
|
+
}
|
|
13
|
+
export declare class IdAnnotation extends GeneratedAttributeAnnotation<string> {
|
|
14
|
+
private options;
|
|
15
|
+
constructor(target: any, propertyKey: string, options: IdOptions);
|
|
16
|
+
generate(node: Node, config: Config): string;
|
|
17
|
+
}
|
|
18
|
+
export declare function id(options: IdOptions): import("./interfaces.js").PropertyDecorator<string>;
|
|
19
|
+
//# sourceMappingURL=id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,4BAA4B,CAAC,CAAC,CAAE,SAAQ,UAAU;IAE3D,OAAO,CAAC,MAAM;IACP,WAAW,EAAE,MAAM;gBADlB,MAAM,EAAE,GAAG,EACZ,WAAW,EAAE,MAAM;IAG5B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;CAGlD;AAED,qBAAa,YAAa,SAAQ,4BAA4B,CAAC,MAAM,CAAC;IAIlE,OAAO,CAAC,OAAO;gBAFf,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACX,OAAO,EAAE,SAAS;IAG5B,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAM7C;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,uDAEpC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Annotation } from './annotation.js';
|
|
2
|
+
import { propertyDecorator } from './decoration.js';
|
|
3
|
+
import { generateIdIfMissing } from '../../util.js';
|
|
4
|
+
export class GeneratedAttributeAnnotation extends Annotation {
|
|
5
|
+
constructor(target, propertyKey) {
|
|
6
|
+
super();
|
|
7
|
+
this.target = target;
|
|
8
|
+
this.propertyKey = propertyKey;
|
|
9
|
+
}
|
|
10
|
+
create(node, config) {
|
|
11
|
+
this.target[this.propertyKey] = this.generate(node, config);
|
|
12
|
+
}
|
|
13
|
+
generate(node, config) {
|
|
14
|
+
throw Error('generate method not implemented');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class IdAnnotation extends GeneratedAttributeAnnotation {
|
|
18
|
+
constructor(target, propertyKey, options) {
|
|
19
|
+
super(target, propertyKey);
|
|
20
|
+
this.options = options;
|
|
21
|
+
}
|
|
22
|
+
generate(node, config) {
|
|
23
|
+
if (this.options.generate) {
|
|
24
|
+
generateIdIfMissing(node, config);
|
|
25
|
+
}
|
|
26
|
+
return node.attributes.id;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function id(options) {
|
|
30
|
+
return propertyDecorator(({ target, propertyKey }) => new IdAnnotation(target, propertyKey, options));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/lib/annotations/id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMpD,MAAM,OAAO,4BAAgC,SAAQ,UAAU;IAC7D,YACU,MAAW,EACZ,WAAmB;QACxB,KAAK,EAAE,CAAC;QAFF,WAAM,GAAN,MAAM,CAAK;QACZ,gBAAW,GAAX,WAAW,CAAQ;IACf,CAAC;IAEd,MAAM,CAAC,IAAU,EAAE,MAAc;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAES,QAAQ,CAAC,IAAU,EAAE,MAAc;QAC3C,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,4BAAoC;IACpE,YACE,MAAW,EACX,WAAmB,EACX,OAAkB;QACxB,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QADrB,YAAO,GAAP,OAAO,CAAW;IACI,CAAC;IAEjC,QAAQ,CAAC,IAAU,EAAE,MAAc;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,EAAE,CAAC,OAAkB;IACnC,OAAO,iBAAiB,CAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAChH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Newable } from '@refrakt-md/types';
|
|
2
|
+
export { Newable };
|
|
3
|
+
export interface Abstract<T> {
|
|
4
|
+
prototype: T;
|
|
5
|
+
}
|
|
6
|
+
export interface Constructor<T> extends Newable<T> {
|
|
7
|
+
name?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Metadata<T> {
|
|
10
|
+
mutate(fn: (data: T) => T): void;
|
|
11
|
+
read(inherit?: boolean): T;
|
|
12
|
+
}
|
|
13
|
+
export type ClassDecorator<T> = <C extends Newable<T>>(target: C) => C;
|
|
14
|
+
export type PropertyDecorator<T> = <K extends string, C extends Record<K, T>>(target: C, propertyKey: K) => void;
|
|
15
|
+
export type MethodDecorator<T> = <K extends string, C extends Record<K, T>>(target: C, propertyKey: K, descriptor: PropertyDescriptor) => void;
|
|
16
|
+
export type ParameterDecorator = (target: any, propertyKey: string, parameterIndex: number) => void;
|
|
17
|
+
export interface PropertyDecoratorConfig {
|
|
18
|
+
target: any;
|
|
19
|
+
propertyKey: string;
|
|
20
|
+
}
|
|
21
|
+
export interface MethodDecoratorConfig extends PropertyDecoratorConfig {
|
|
22
|
+
descriptor: PropertyDescriptor;
|
|
23
|
+
}
|
|
24
|
+
export interface ParameterDecoratorConfig extends PropertyDecoratorConfig {
|
|
25
|
+
parameterIndex: number;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/annotations/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAEjC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1E,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC;AAErC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACxE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpG,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/lib/annotations/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentType, Type } from '@refrakt-md/types';
|
|
2
|
+
import Markdoc from '@markdoc/markdoc';
|
|
3
|
+
import type { Tag, RenderableTreeNodes } from '@markdoc/markdoc';
|
|
4
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
5
|
+
export type PropertyInput<TSchema, T extends ComponentType<TSchema>> = {
|
|
6
|
+
[P in keyof T["properties"]]: RenderableNodeCursor<Tag<T["properties"][P]>> | Tag<T["properties"][P]> | Tag<T["properties"][P]>[];
|
|
7
|
+
};
|
|
8
|
+
export type RefInput<TSchema, T extends ComponentType<TSchema>> = {
|
|
9
|
+
[P in keyof T["refs"]]: RenderableNodeCursor<Tag<T["refs"][P]>> | Tag<T["refs"][P]> | Tag<T["refs"][P]>[];
|
|
10
|
+
};
|
|
11
|
+
export interface TransformResult<TSchema, T extends ComponentType<TSchema>> {
|
|
12
|
+
tag: T["tag"];
|
|
13
|
+
id?: string;
|
|
14
|
+
class?: string;
|
|
15
|
+
property?: string;
|
|
16
|
+
properties: Partial<PropertyInput<TSchema, T>>;
|
|
17
|
+
refs?: Partial<RefInput<TSchema, T>>;
|
|
18
|
+
children: RenderableTreeNodes;
|
|
19
|
+
}
|
|
20
|
+
export declare function createComponentRenderable<TOutput extends ComponentType<object>>(type: Type<TOutput>, result: TransformResult<TOutput["schema"], TOutput>): Markdoc.Tag<TOutput["tag"], {
|
|
21
|
+
id: string | undefined;
|
|
22
|
+
property: string | undefined;
|
|
23
|
+
typeof: string;
|
|
24
|
+
class: string | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/lib/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI;KACpE,CAAC,IAAI,MAAM,CAAC,CAAC,YAAY,CAAC,GACzB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7C,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GACvB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,GACnB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CACtB,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC;IACxE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7E,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EACnB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;;;;;GA8BpD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
3
|
+
export function createComponentRenderable(type, result) {
|
|
4
|
+
for (const [k, v] of Object.entries(result.properties)) {
|
|
5
|
+
const tags = v instanceof RenderableNodeCursor ? v.nodes : Array.isArray(v) ? v : [v];
|
|
6
|
+
tags.forEach(n => {
|
|
7
|
+
if (Markdoc.Tag.isTag(n)) {
|
|
8
|
+
n.attributes.property = k;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
for (const [k, v] of Object.entries(result.refs || {})) {
|
|
13
|
+
const tags = v instanceof RenderableNodeCursor ? v.nodes : Array.isArray(v) ? v : [v];
|
|
14
|
+
tags.forEach(n => {
|
|
15
|
+
if (Markdoc.Tag.isTag(n)) {
|
|
16
|
+
n.attributes['data-name'] = k;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const tag = new Markdoc.Tag(result.tag, {
|
|
21
|
+
id: result.id,
|
|
22
|
+
property: result.property,
|
|
23
|
+
typeof: type.name,
|
|
24
|
+
class: result.class
|
|
25
|
+
}, Array.isArray(result.children) ? result.children : [result.children]);
|
|
26
|
+
return tag;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/lib/component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA0BvD,MAAM,UAAU,yBAAyB,CACvC,IAAmB,EACnB,MAAmD;IAEnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAU,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAU,CAAC,YAAY,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACtC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Newable } from '@refrakt-md/types';
|
|
2
|
+
import type { Schema } from '@markdoc/markdoc';
|
|
3
|
+
import { Model } from './model.js';
|
|
4
|
+
export { createComponentRenderable } from './component.js';
|
|
5
|
+
export { attribute } from './annotations/attribute.js';
|
|
6
|
+
export { group, groupList } from './annotations/group.js';
|
|
7
|
+
export { id } from './annotations/id.js';
|
|
8
|
+
export { Model } from './model.js';
|
|
9
|
+
export declare function createSchema<TInput extends Model>(ModelCtr: Newable<TInput>): Schema;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wBAAgB,YAAY,CAAC,MAAM,SAAS,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAqBpF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AttributeAnnotation } from './annotations/attribute.js';
|
|
2
|
+
export { createComponentRenderable } from './component.js';
|
|
3
|
+
export { attribute } from './annotations/attribute.js';
|
|
4
|
+
export { group, groupList } from './annotations/group.js';
|
|
5
|
+
export { id } from './annotations/id.js';
|
|
6
|
+
export { Model } from './model.js';
|
|
7
|
+
export function createSchema(ModelCtr) {
|
|
8
|
+
const attributes = {};
|
|
9
|
+
for (const attr of AttributeAnnotation.onClass(ModelCtr, true)) {
|
|
10
|
+
attributes[attr.propertyKey] = attr.schema;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
attributes,
|
|
14
|
+
transform: (node, config) => {
|
|
15
|
+
const model = new ModelCtr(node, config);
|
|
16
|
+
const attr = node.transformAttributes(config);
|
|
17
|
+
for (const k of Object.keys(attr)) {
|
|
18
|
+
model[k] = attr[k];
|
|
19
|
+
}
|
|
20
|
+
model.node.children = model.processChildren(node.children);
|
|
21
|
+
return model.transform();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,UAAU,YAAY,CAAuB,QAAyB;IAC1E,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,UAAU;QACV,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAE1B,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3D,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import type { Config, Node, NodeType, RenderableTreeNodes, Schema } from '@markdoc/markdoc';
|
|
3
|
+
import { NodeType as RenderableNodeType } from '@refrakt-md/types';
|
|
4
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
5
|
+
export declare class Model {
|
|
6
|
+
readonly node: Node;
|
|
7
|
+
readonly config: Config;
|
|
8
|
+
constructor(node: Node, config: Config);
|
|
9
|
+
processChildren(nodes: Node[]): Markdoc.Node[];
|
|
10
|
+
transform(): RenderableTreeNodes;
|
|
11
|
+
transformChildren(nodes?: Partial<Record<NodeType, Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)>>): RenderableNodeCursor;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKvD,qBAAa,KAAK;aAEE,IAAI,EAAE,IAAI;aACV,MAAM,EAAE,MAAM;gBADd,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM;IAOhC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE;IAS7B,SAAS,IAAI,mBAAmB;IAIhC,iBAAiB,CACf,KAAK,GAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAM,GACzH,oBAAoB;CAQxB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
3
|
+
import { makeSchema } from './node.js';
|
|
4
|
+
import { GeneratedAttributeAnnotation } from './annotations/id.js';
|
|
5
|
+
import { AbstractGroupAnnotation } from './annotations/group.js';
|
|
6
|
+
export class Model {
|
|
7
|
+
constructor(node, config) {
|
|
8
|
+
this.node = node;
|
|
9
|
+
this.config = config;
|
|
10
|
+
for (const annotation of GeneratedAttributeAnnotation.onClass(this.constructor, true)) {
|
|
11
|
+
annotation.create(node, config);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
processChildren(nodes) {
|
|
15
|
+
let index = 0;
|
|
16
|
+
for (const annotation of AbstractGroupAnnotation.onClass(this.constructor, true)) {
|
|
17
|
+
index = annotation.create(nodes, index, this.config);
|
|
18
|
+
}
|
|
19
|
+
return nodes;
|
|
20
|
+
}
|
|
21
|
+
transform() {
|
|
22
|
+
return this.transformChildren({}).nodes;
|
|
23
|
+
}
|
|
24
|
+
transformChildren(nodes = {}) {
|
|
25
|
+
const extraNodes = {};
|
|
26
|
+
for (const [name, t] of Object.entries(nodes)) {
|
|
27
|
+
extraNodes[name] = makeSchema(t);
|
|
28
|
+
}
|
|
29
|
+
const config = { ...this.config, nodes: { ...this.config.nodes, ...extraNodes } };
|
|
30
|
+
return new RenderableNodeCursor(Markdoc.transform(this.node.children, config));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/lib/model.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,KAAK;IAChB,YACkB,IAAU,EACV,MAAc;QADd,SAAI,GAAJ,IAAI,CAAM;QACV,WAAM,GAAN,MAAM,CAAQ;QAE9B,KAAK,MAAM,UAAU,IAAI,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YACtF,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,UAAU,IAAI,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YACjF,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,iBAAiB,CACf,QAAwH,EAAE;QAE1H,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC;QAClF,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Config, Node, NodeType, RenderableTreeNodes, Schema } from '@markdoc/markdoc';
|
|
2
|
+
import { NodeType as RenderableNodeType } from '@refrakt-md/types';
|
|
3
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
4
|
+
import { NodeFilter } from '../interfaces.js';
|
|
5
|
+
export declare const makeSchema: (tr: any) => any;
|
|
6
|
+
export declare class NodeStream {
|
|
7
|
+
private nodes;
|
|
8
|
+
readonly config: Config;
|
|
9
|
+
constructor(nodes: Node[], config: Config);
|
|
10
|
+
push(node: Node): void;
|
|
11
|
+
get length(): number;
|
|
12
|
+
wrapTag(tag: string, attributes: Record<string, any>): NodeStream;
|
|
13
|
+
useNode<T extends NodeType>(node: T, transform: Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)): NodeStream;
|
|
14
|
+
useTag<T extends string>(tag: T, transform: Schema | RenderableNodeType | ((node: Node, config: Config) => RenderableTreeNodes)): NodeStream;
|
|
15
|
+
transform(): RenderableNodeCursor;
|
|
16
|
+
}
|
|
17
|
+
export declare function isFilterMatching(n: Node, match: NodeFilter): boolean;
|
|
18
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AAEjE,eAAO,MAAM,UAAU,GAAI,IAAI,GAAG,QAOjC,CAAA;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;aAA0B,MAAM,EAAE,MAAM;gBAA7C,KAAK,EAAE,IAAI,EAAE,EAAkB,MAAM,EAAE,MAAM;IAEjE,IAAI,CAAC,IAAI,EAAE,IAAI;IAIf,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIpD,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAInI,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAI/H,SAAS,IAAI,oBAAoB;CAGlC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,WAa1D"}
|
package/dist/lib/node.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
const { Ast } = Markdoc;
|
|
3
|
+
import { RenderableNodeCursor } from './renderable.js';
|
|
4
|
+
export const makeSchema = (tr) => {
|
|
5
|
+
switch (typeof tr) {
|
|
6
|
+
case 'string': return { render: tr };
|
|
7
|
+
case 'object': return tr;
|
|
8
|
+
default:
|
|
9
|
+
return { transform(node, config) { return tr(node, config); } };
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export class NodeStream {
|
|
13
|
+
constructor(nodes, config) {
|
|
14
|
+
this.nodes = nodes;
|
|
15
|
+
this.config = config;
|
|
16
|
+
}
|
|
17
|
+
push(node) {
|
|
18
|
+
this.nodes.push(node);
|
|
19
|
+
}
|
|
20
|
+
get length() {
|
|
21
|
+
return this.nodes.length;
|
|
22
|
+
}
|
|
23
|
+
wrapTag(tag, attributes) {
|
|
24
|
+
return new NodeStream([new Ast.Node('tag', attributes, this.nodes, tag)], this.config);
|
|
25
|
+
}
|
|
26
|
+
useNode(node, transform) {
|
|
27
|
+
return new NodeStream(this.nodes, { ...this.config, nodes: { ...this.config.nodes, [node]: makeSchema(transform) } });
|
|
28
|
+
}
|
|
29
|
+
useTag(tag, transform) {
|
|
30
|
+
return new NodeStream(this.nodes, { ...this.config, tags: { ...this.config.tags, [tag]: makeSchema(transform) } });
|
|
31
|
+
}
|
|
32
|
+
transform() {
|
|
33
|
+
return new RenderableNodeCursor(Markdoc.transform(this.nodes, this.config));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function isFilterMatching(n, match) {
|
|
37
|
+
if (typeof match === 'function') {
|
|
38
|
+
return match(n);
|
|
39
|
+
}
|
|
40
|
+
const filter = typeof match === 'string' ? { node: match } : match;
|
|
41
|
+
if (filter.node && n.type !== filter.node) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
if (filter.descendant && !Array.from(n.walk()).some(n => n.type === filter.descendant)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/lib/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import type { Tag, RenderableTreeNode } from '@markdoc/markdoc';
|
|
3
|
+
import { NodeType } from '@refrakt-md/types';
|
|
4
|
+
export declare class RenderableNodeCursor<T extends RenderableTreeNode = RenderableTreeNode> {
|
|
5
|
+
readonly nodes: T[];
|
|
6
|
+
private offset;
|
|
7
|
+
constructor(nodes: T[]);
|
|
8
|
+
static fromData<TagName extends NodeType>(data: any, tag: TagName): RenderableNodeCursor<Markdoc.Tag<TagName, {}>>;
|
|
9
|
+
wrap<TagName extends string>(tag: TagName, attributes?: Record<string, any>): RenderableNodeCursor<Tag<TagName>>;
|
|
10
|
+
tag<TagName extends NodeType>(tag: TagName): RenderableNodeCursor<Tag<TagName>>;
|
|
11
|
+
tags<TagNames extends NodeType[]>(...tags: TagNames): RenderableNodeCursor<Tag<TagNames[number]>>;
|
|
12
|
+
headings(): RenderableNodeCursor<Markdoc.Tag<"h1" | "h2" | "h3" | "h4" | "h5" | "h6", Record<string, any>>>;
|
|
13
|
+
typeof(type: string): RenderableNodeCursor<T>;
|
|
14
|
+
concat(...other: (RenderableTreeNode | RenderableNodeCursor)[]): RenderableNodeCursor<Markdoc.RenderableTreeNode>;
|
|
15
|
+
flatten(): RenderableNodeCursor<Markdoc.RenderableTreeNode | (T extends readonly (infer InnerArr)[] ? InnerArr : T)>;
|
|
16
|
+
limit(count: number): RenderableNodeCursor<T>;
|
|
17
|
+
slice(start: number, end?: number): RenderableNodeCursor<T>;
|
|
18
|
+
toArray(): T[];
|
|
19
|
+
count(): number;
|
|
20
|
+
next(): T;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=renderable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../src/lib/renderable.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,qBAAa,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;aAGrD,KAAK,EAAE,CAAC,EAAE;IAFtC,OAAO,CAAC,MAAM,CAAK;gBAES,KAAK,EAAE,CAAC,EAAE;IAEtC,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO;IAIjE,IAAI,CAAC,OAAO,SAAS,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAIpH,GAAG,CAAC,OAAO,SAAS,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAK/E,IAAI,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAKjG,QAAQ;IAIR,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAI7C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,kBAAkB,GAAG,oBAAoB,CAAC,EAAE;IAK9D,OAAO;IAKP,KAAK,CAAC,KAAK,EAAE,MAAM;IAInB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAIjC,OAAO,IAAI,CAAC,EAAE;IAId,KAAK,IAAI,MAAM;IAIf,IAAI,IAAI,CAAC;CAGV"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
import { walkTag } from '../util.js';
|
|
3
|
+
export class RenderableNodeCursor {
|
|
4
|
+
constructor(nodes) {
|
|
5
|
+
this.nodes = nodes;
|
|
6
|
+
this.offset = 0;
|
|
7
|
+
}
|
|
8
|
+
static fromData(data, tag) {
|
|
9
|
+
return new RenderableNodeCursor([new Markdoc.Tag(tag, {}, [data])]);
|
|
10
|
+
}
|
|
11
|
+
wrap(tag, attributes = {}) {
|
|
12
|
+
return new RenderableNodeCursor([new Markdoc.Tag(tag, attributes, this.nodes)]);
|
|
13
|
+
}
|
|
14
|
+
tag(tag) {
|
|
15
|
+
const nodes = this.nodes.filter(n => Markdoc.Tag.isTag(n) && n.name === tag);
|
|
16
|
+
return new RenderableNodeCursor(nodes);
|
|
17
|
+
}
|
|
18
|
+
tags(...tags) {
|
|
19
|
+
const nodes = this.nodes.filter(n => Markdoc.Tag.isTag(n) && tags.includes(n.name));
|
|
20
|
+
return new RenderableNodeCursor(nodes);
|
|
21
|
+
}
|
|
22
|
+
headings() {
|
|
23
|
+
return this.tags('h1', 'h2', 'h3', 'h4', 'h5', 'h6');
|
|
24
|
+
}
|
|
25
|
+
typeof(type) {
|
|
26
|
+
return new RenderableNodeCursor(this.nodes.filter(n => Markdoc.Tag.isTag(n) && n.attributes.typeof === type));
|
|
27
|
+
}
|
|
28
|
+
concat(...other) {
|
|
29
|
+
const nodes = other.map(o => o instanceof RenderableNodeCursor ? o.nodes : o).flat();
|
|
30
|
+
return new RenderableNodeCursor([...this.nodes, ...nodes]);
|
|
31
|
+
}
|
|
32
|
+
flatten() {
|
|
33
|
+
const nodes = this.nodes.map(t => Markdoc.Tag.isTag(t) ? Array.from(walkTag(t)) : t).flat();
|
|
34
|
+
return new RenderableNodeCursor(nodes);
|
|
35
|
+
}
|
|
36
|
+
limit(count) {
|
|
37
|
+
return new RenderableNodeCursor(this.nodes.slice(0, count));
|
|
38
|
+
}
|
|
39
|
+
slice(start, end) {
|
|
40
|
+
return new RenderableNodeCursor(this.nodes.slice(start, end));
|
|
41
|
+
}
|
|
42
|
+
toArray() {
|
|
43
|
+
return this.nodes;
|
|
44
|
+
}
|
|
45
|
+
count() {
|
|
46
|
+
return this.nodes.length;
|
|
47
|
+
}
|
|
48
|
+
next() {
|
|
49
|
+
return this.nodes[this.offset++];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=renderable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderable.js","sourceRoot":"","sources":["../../src/lib/renderable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AbstractElementWrapper } from '@refract-md/types';
|
|
2
|
+
import { Tag } from '@markdoc/markdoc';
|
|
3
|
+
export declare class TagWrapper extends AbstractElementWrapper<Tag> {
|
|
4
|
+
get children(): AbstractElementWrapper<Tag>[];
|
|
5
|
+
get attributes(): Record<string, any>;
|
|
6
|
+
get text(): string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,qBAAa,UAAW,SAAQ,sBAAsB,CAAC,GAAG,CAAC;IACzD,IAAI,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAE5C;IAED,IAAI,UAAU,wBAEb;IAED,IAAI,IAAI,WAEP;CACF"}
|