@platecms/delta-cast-util-to-hast 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/README.md +142 -0
- package/package.json +30 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/lib/elements/blockquote.d.ts +4 -0
- package/src/lib/elements/blockquote.js +13 -0
- package/src/lib/elements/blockquote.js.map +1 -0
- package/src/lib/elements/bold.d.ts +4 -0
- package/src/lib/elements/bold.js +13 -0
- package/src/lib/elements/bold.js.map +1 -0
- package/src/lib/elements/code.d.ts +4 -0
- package/src/lib/elements/code.js +13 -0
- package/src/lib/elements/code.js.map +1 -0
- package/src/lib/elements/contentValue.d.ts +4 -0
- package/src/lib/elements/contentValue.js +14 -0
- package/src/lib/elements/contentValue.js.map +1 -0
- package/src/lib/elements/heading.d.ts +4 -0
- package/src/lib/elements/heading.js +13 -0
- package/src/lib/elements/heading.js.map +1 -0
- package/src/lib/elements/index.d.ts +12 -0
- package/src/lib/elements/index.js +27 -0
- package/src/lib/elements/index.js.map +1 -0
- package/src/lib/elements/italic.d.ts +4 -0
- package/src/lib/elements/italic.js +13 -0
- package/src/lib/elements/italic.js.map +1 -0
- package/src/lib/elements/lists.d.ts +5 -0
- package/src/lib/elements/lists.js +22 -0
- package/src/lib/elements/lists.js.map +1 -0
- package/src/lib/elements/paragraph.d.ts +4 -0
- package/src/lib/elements/paragraph.js +13 -0
- package/src/lib/elements/paragraph.js.map +1 -0
- package/src/lib/elements/strikehrough.d.ts +4 -0
- package/src/lib/elements/strikehrough.js +13 -0
- package/src/lib/elements/strikehrough.js.map +1 -0
- package/src/lib/elements/text.d.ts +3 -0
- package/src/lib/elements/text.js +10 -0
- package/src/lib/elements/text.js.map +1 -0
- package/src/lib/elements/underline.d.ts +4 -0
- package/src/lib/elements/underline.js +13 -0
- package/src/lib/elements/underline.js.map +1 -0
- package/src/lib/index.d.ts +5 -0
- package/src/lib/index.js +55 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/transformers/index.d.ts +5 -0
- package/src/lib/transformers/index.js +22 -0
- package/src/lib/transformers/index.js.map +1 -0
- package/src/lib/utils/index.d.ts +3 -0
- package/src/lib/utils/index.js +17 -0
- package/src/lib/utils/index.js.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# cast-util-to-hast
|
|
2
|
+
|
|
3
|
+
This library is part of the [CAST]() abstract syntax tree utilities.
|
|
4
|
+
It provides a utility to convert a [CAST]() abstract syntax tree to a [Hast]() abstract syntax tree.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
Using the utility `cast` to `hast` looks as follows:
|
|
9
|
+
```ts
|
|
10
|
+
/**
|
|
11
|
+
* @import {Root} from 'cast'
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import {toHast} from '@platecms/delta-cast-util-to-hast'
|
|
15
|
+
|
|
16
|
+
/** @type {Root} */
|
|
17
|
+
const tree = {
|
|
18
|
+
type: 'root',
|
|
19
|
+
children: [
|
|
20
|
+
{
|
|
21
|
+
type: 'paragraph',
|
|
22
|
+
children: [
|
|
23
|
+
{ type: 'text', value: 'Hello, world!' }
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
console.info(toHast(tree))
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
yields:
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"type": "root",
|
|
36
|
+
"children": [
|
|
37
|
+
{
|
|
38
|
+
"type": "element",
|
|
39
|
+
"tagName": "p",
|
|
40
|
+
"properties": {},
|
|
41
|
+
"children": [
|
|
42
|
+
{
|
|
43
|
+
"type": "text",
|
|
44
|
+
"value": "Hello, world!"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Transformers
|
|
53
|
+
|
|
54
|
+
The utility provides a set of transformers that can be used to transform the cast tree before it is converted to hast.
|
|
55
|
+
By default the `contentValue` transformer removes the first block element if it has exactly one child.
|
|
56
|
+
This enables inline rendering of content values when they are used as a single value inside another value.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
/**
|
|
60
|
+
* @import {Root} from 'cast'
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
import {toHast} from '@platecms/delta-cast-util-to-hast'
|
|
64
|
+
|
|
65
|
+
/** @type {Root} */
|
|
66
|
+
const cast: Root = {
|
|
67
|
+
type: "root",
|
|
68
|
+
children: [
|
|
69
|
+
{
|
|
70
|
+
type: "paragraph",
|
|
71
|
+
children: [
|
|
72
|
+
{
|
|
73
|
+
type: "text",
|
|
74
|
+
value: "My first "
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: "contentValue",
|
|
78
|
+
value: {
|
|
79
|
+
type: "root",
|
|
80
|
+
children: [
|
|
81
|
+
{
|
|
82
|
+
type: "paragraph",
|
|
83
|
+
children: [
|
|
84
|
+
{
|
|
85
|
+
type: "text",
|
|
86
|
+
value: "content"
|
|
87
|
+
},
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
prn: "prn:plate-dev:a7734468-b894-4191-83b1-7d218f8c9922:cxc:content-value:b2119c94-24e6-4358-b557-c705dcd19d1d"
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
};
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
yields (hast):
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"type": "root",
|
|
104
|
+
"children": [
|
|
105
|
+
{
|
|
106
|
+
"type": "element",
|
|
107
|
+
"tagName": "p",
|
|
108
|
+
"properties": {},
|
|
109
|
+
"children": [
|
|
110
|
+
{
|
|
111
|
+
"type": "text",
|
|
112
|
+
"value": "My first "
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"type": "element",
|
|
116
|
+
"tagName": "span",
|
|
117
|
+
"properties": {},
|
|
118
|
+
"children": [
|
|
119
|
+
{
|
|
120
|
+
"type": "text",
|
|
121
|
+
"value": "content"
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
or yields (html):
|
|
132
|
+
```html
|
|
133
|
+
<p>My first <span>content</span></p>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Building
|
|
137
|
+
|
|
138
|
+
Run `nx build cast-util-to-hast` to build the library.
|
|
139
|
+
|
|
140
|
+
## Running unit tests
|
|
141
|
+
|
|
142
|
+
Run `nx test cast-util-to-hast` to execute the unit tests via [Vitest](https://vitest.dev/).
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@platecms/delta-cast-util-to-hast",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Utility to convert CAST to HAST syntax tree.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://bitbucket.org/startmetplate/delta.git"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://bitbucket.org/startmetplate/delta/src/dev/packages/cast-util-to-hast",
|
|
14
|
+
"main": "./src/index.js",
|
|
15
|
+
"types": "./src/index.d.ts",
|
|
16
|
+
"files": [
|
|
17
|
+
"src/**/*"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@platecms/delta-cast": "0.4.8",
|
|
21
|
+
"@platecms/delta-plate-resource-notation": "1.4.1",
|
|
22
|
+
"class-transformer": "0.5.1",
|
|
23
|
+
"hast": "1.0.0",
|
|
24
|
+
"reflect-metadata": "0.2.2",
|
|
25
|
+
"tslib": "2.8.1",
|
|
26
|
+
"zwitch": "2.0.4",
|
|
27
|
+
"lodash": "4.17.21"
|
|
28
|
+
},
|
|
29
|
+
"type": "commonjs"
|
|
30
|
+
}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toHast = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
var lib_1 = require("./lib");
|
|
6
|
+
Object.defineProperty(exports, "toHast", { enumerable: true, get: function () { return lib_1.toHast; } });
|
|
7
|
+
tslib_1.__exportStar(require("./lib/utils"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./lib/transformers"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/cast-util-to-hast/src/index.ts"],"names":[],"mappings":";;;;AAAA,6BAA+B;AAAtB,6FAAA,MAAM,OAAA;AAEf,sDAA4B;AAC5B,6DAAmC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blockquote = blockquote;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function blockquote(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "blockquote",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=blockquote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockquote.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/blockquote.ts"],"names":[],"mappings":";;AAKA,gCAOC;AAVD,0BAAyB;AAGzB,SAAgB,UAAU,CAAC,IAAgB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC/F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bold = bold;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function bold(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "strong",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=bold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bold.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/bold.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAVD,0BAAyB;AAGzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.code = code;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function code(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "code",
|
|
9
|
+
properties: { lang: node.lang },
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/code.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAZD,0BAAyB;AAKzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAC/B,QAAQ,EAAE,IAAA,OAAG,EAAE,IAAoC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAChF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InterpolatedContentValue } from "@platecms/delta-cast";
|
|
2
|
+
import { Element as HastElement } from "hast";
|
|
3
|
+
import { NodeTransformers } from "../transformers";
|
|
4
|
+
export declare function contentValue(node: InterpolatedContentValue, state: object, transform: NodeTransformers): HastElement;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.contentValue = contentValue;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function contentValue(node, state, transform) {
|
|
6
|
+
const transformedNode = transform.contentValue ? transform.contentValue(node) : node;
|
|
7
|
+
return {
|
|
8
|
+
type: "element",
|
|
9
|
+
tagName: "span",
|
|
10
|
+
properties: {},
|
|
11
|
+
children: transformedNode.value ? (0, __1.all)(transformedNode.value.children, state, transform) : [],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=contentValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentValue.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/contentValue.ts"],"names":[],"mappings":";;AAKA,oCASC;AAZD,0BAAyB;AAGzB,SAAgB,YAAY,CAAC,IAA8B,EAAE,KAAa,EAAE,SAA2B;IACrG,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,OAAG,EAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.heading = heading;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function heading(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: `h${node.level}`,
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=heading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/heading.ts"],"names":[],"mappings":";;AAKA,0BAOC;AAXD,0BAAyB;AAIzB,SAAgB,OAAO,CAAC,IAAa,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACzF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;QACzB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { heading } from "./heading";
|
|
2
|
+
import { list, listItem } from "./lists";
|
|
3
|
+
import { code } from "./code";
|
|
4
|
+
import { contentValue } from "./contentValue";
|
|
5
|
+
import { paragraph } from "./paragraph";
|
|
6
|
+
import { bold } from "./bold";
|
|
7
|
+
import { italic } from "./italic";
|
|
8
|
+
import { underline } from "./underline";
|
|
9
|
+
import { strikehrough } from "./strikehrough";
|
|
10
|
+
import { text } from "./text";
|
|
11
|
+
import { blockquote } from "./blockquote";
|
|
12
|
+
export { heading, list, listItem, code, contentValue, paragraph, bold, italic, underline, strikehrough, text, blockquote, };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.blockquote = exports.text = exports.strikehrough = exports.underline = exports.italic = exports.bold = exports.paragraph = exports.contentValue = exports.code = exports.listItem = exports.list = exports.heading = void 0;
|
|
4
|
+
const heading_1 = require("./heading");
|
|
5
|
+
Object.defineProperty(exports, "heading", { enumerable: true, get: function () { return heading_1.heading; } });
|
|
6
|
+
const lists_1 = require("./lists");
|
|
7
|
+
Object.defineProperty(exports, "list", { enumerable: true, get: function () { return lists_1.list; } });
|
|
8
|
+
Object.defineProperty(exports, "listItem", { enumerable: true, get: function () { return lists_1.listItem; } });
|
|
9
|
+
const code_1 = require("./code");
|
|
10
|
+
Object.defineProperty(exports, "code", { enumerable: true, get: function () { return code_1.code; } });
|
|
11
|
+
const contentValue_1 = require("./contentValue");
|
|
12
|
+
Object.defineProperty(exports, "contentValue", { enumerable: true, get: function () { return contentValue_1.contentValue; } });
|
|
13
|
+
const paragraph_1 = require("./paragraph");
|
|
14
|
+
Object.defineProperty(exports, "paragraph", { enumerable: true, get: function () { return paragraph_1.paragraph; } });
|
|
15
|
+
const bold_1 = require("./bold");
|
|
16
|
+
Object.defineProperty(exports, "bold", { enumerable: true, get: function () { return bold_1.bold; } });
|
|
17
|
+
const italic_1 = require("./italic");
|
|
18
|
+
Object.defineProperty(exports, "italic", { enumerable: true, get: function () { return italic_1.italic; } });
|
|
19
|
+
const underline_1 = require("./underline");
|
|
20
|
+
Object.defineProperty(exports, "underline", { enumerable: true, get: function () { return underline_1.underline; } });
|
|
21
|
+
const strikehrough_1 = require("./strikehrough");
|
|
22
|
+
Object.defineProperty(exports, "strikehrough", { enumerable: true, get: function () { return strikehrough_1.strikehrough; } });
|
|
23
|
+
const text_1 = require("./text");
|
|
24
|
+
Object.defineProperty(exports, "text", { enumerable: true, get: function () { return text_1.text; } });
|
|
25
|
+
const blockquote_1 = require("./blockquote");
|
|
26
|
+
Object.defineProperty(exports, "blockquote", { enumerable: true, get: function () { return blockquote_1.blockquote; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/index.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAalC,wFAbO,iBAAO,OAaP;AAZT,mCAAyC;AAavC,qFAbO,YAAI,OAaP;AACJ,yFAda,gBAAQ,OAcb;AAbV,iCAA8B;AAc5B,qFAdO,WAAI,OAcP;AAbN,iDAA8C;AAc5C,6FAdO,2BAAY,OAcP;AAbd,2CAAwC;AActC,0FAdO,qBAAS,OAcP;AAbX,iCAA8B;AAc5B,qFAdO,WAAI,OAcP;AAbN,qCAAkC;AAchC,uFAdO,eAAM,OAcP;AAbR,2CAAwC;AActC,0FAdO,qBAAS,OAcP;AAbX,iDAA8C;AAc5C,6FAdO,2BAAY,OAcP;AAbd,iCAA8B;AAc5B,qFAdO,WAAI,OAcP;AAbN,6CAA0C;AAcxC,2FAdO,uBAAU,OAcP"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.italic = italic;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function italic(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "em",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=italic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"italic.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/italic.ts"],"names":[],"mappings":";;AAKA,wBAOC;AAVD,0BAAyB;AAGzB,SAAgB,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACvF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { List, ListItem } from "@platecms/delta-cast";
|
|
2
|
+
import { Element as HastElement } from "hast";
|
|
3
|
+
import { NodeTransformers } from "../transformers";
|
|
4
|
+
export declare function list(node: List, state?: object, transform?: NodeTransformers): HastElement;
|
|
5
|
+
export declare function listItem(node: ListItem, state?: object, transform?: NodeTransformers): HastElement;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.list = list;
|
|
4
|
+
exports.listItem = listItem;
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
function list(node, state = {}, transform = {}) {
|
|
7
|
+
return {
|
|
8
|
+
type: "element",
|
|
9
|
+
tagName: node.ordered ? "ol" : "ul",
|
|
10
|
+
properties: {},
|
|
11
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function listItem(node, state = {}, transform = {}) {
|
|
15
|
+
return {
|
|
16
|
+
type: "element",
|
|
17
|
+
tagName: "li",
|
|
18
|
+
properties: {},
|
|
19
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/lists.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAED,4BAOC;AAnBD,0BAAyB;AAGzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACnC,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAc,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC3F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.paragraph = paragraph;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function paragraph(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "p",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=paragraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/paragraph.ts"],"names":[],"mappings":";;AAKA,8BAOC;AAVD,0BAAyB;AAGzB,SAAgB,SAAS,CAAC,IAAe,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Strikethrough } from "@platecms/delta-cast";
|
|
2
|
+
import { Element as HastElement } from "hast";
|
|
3
|
+
import { NodeTransformers } from "../transformers";
|
|
4
|
+
export declare function strikehrough(node: Strikethrough, state?: object, transform?: NodeTransformers): HastElement;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.strikehrough = strikehrough;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function strikehrough(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "s",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=strikehrough.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strikehrough.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/strikehrough.ts"],"names":[],"mappings":";;AAKA,oCAOC;AAVD,0BAAyB;AAGzB,SAAgB,YAAY,CAAC,IAAmB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACpG,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/text.ts"],"names":[],"mappings":";;AAGA,oBAKC;AALD,SAAgB,IAAI,CAAC,IAAU;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.underline = underline;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function underline(node, state = {}, transform = {}) {
|
|
6
|
+
return {
|
|
7
|
+
type: "element",
|
|
8
|
+
tagName: "u",
|
|
9
|
+
properties: {},
|
|
10
|
+
children: (0, __1.all)(node.children, state, transform),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=underline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"underline.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/underline.ts"],"names":[],"mappings":";;AAKA,8BAOC;AAVD,0BAAyB;AAGzB,SAAgB,SAAS,CAAC,IAAe,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Root as CastRoot, Content } from "@platecms/delta-cast";
|
|
2
|
+
import { Element as HastElement, Root as HastRoot } from "hast";
|
|
3
|
+
import { NodeTransformers } from "./transformers";
|
|
4
|
+
export declare function all(nodes: Content[], state?: object, transform?: NodeTransformers): HastElement[];
|
|
5
|
+
export declare function toHast(value: CastRoot, transform?: NodeTransformers): HastRoot;
|
package/src/lib/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.all = all;
|
|
4
|
+
exports.toHast = toHast;
|
|
5
|
+
const zwitch_1 = require("zwitch");
|
|
6
|
+
const elements_1 = require("./elements");
|
|
7
|
+
const transformers_1 = require("./transformers");
|
|
8
|
+
function defaultHandler(node) {
|
|
9
|
+
return {
|
|
10
|
+
type: "element",
|
|
11
|
+
tagName: "span",
|
|
12
|
+
properties: {},
|
|
13
|
+
children: [
|
|
14
|
+
{
|
|
15
|
+
type: "text",
|
|
16
|
+
value: `Unknown node type (${node.type})`,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const one = (0, zwitch_1.zwitch)("type", {
|
|
22
|
+
handlers: {
|
|
23
|
+
heading: elements_1.heading,
|
|
24
|
+
list: elements_1.list,
|
|
25
|
+
listItem: elements_1.listItem,
|
|
26
|
+
blockquote: elements_1.blockquote,
|
|
27
|
+
code: elements_1.code,
|
|
28
|
+
paragraph: elements_1.paragraph,
|
|
29
|
+
contentValue: elements_1.contentValue,
|
|
30
|
+
bold: elements_1.bold,
|
|
31
|
+
italic: elements_1.italic,
|
|
32
|
+
underline: elements_1.underline,
|
|
33
|
+
strikehrough: elements_1.strikehrough,
|
|
34
|
+
text: elements_1.text,
|
|
35
|
+
},
|
|
36
|
+
unknown: (value, _s = {}, _t = {}) => defaultHandler(value),
|
|
37
|
+
});
|
|
38
|
+
function all(nodes, state = {}, transform = {}) {
|
|
39
|
+
let index = -1;
|
|
40
|
+
const results = [];
|
|
41
|
+
while (++index < nodes.length) {
|
|
42
|
+
const result = one(nodes[index], state, transform);
|
|
43
|
+
results.push(result);
|
|
44
|
+
}
|
|
45
|
+
return results;
|
|
46
|
+
}
|
|
47
|
+
function toHast(value, transform = {
|
|
48
|
+
contentValue: transformers_1.flattenTextOnlyContentValueNode,
|
|
49
|
+
}) {
|
|
50
|
+
return {
|
|
51
|
+
type: "root",
|
|
52
|
+
children: all(value.children, {}, transform),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/cast-util-to-hast/src/lib/index.ts"],"names":[],"mappings":";;AAoDA,kBAUC;AAED,wBAUC;AAxED,mCAAgC;AAChC,yCAaoB;AACpB,iDAAmF;AAEnF,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,sBAAsB,IAAI,CAAC,IAAI,GAAG;aAC1C;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG,IAAA,eAAM,EAAC,MAAM,EAAE;IACzB,QAAQ,EAAE;QACR,OAAO,EAAP,kBAAO;QACP,IAAI,EAAJ,eAAI;QACJ,QAAQ,EAAR,mBAAQ;QACR,UAAU,EAAV,qBAAU;QACV,IAAI,EAAJ,eAAI;QACJ,SAAS,EAAT,oBAAS;QACT,YAAY,EAAZ,uBAAY;QACZ,IAAI,EAAJ,eAAI;QACJ,MAAM,EAAN,iBAAM;QACN,SAAS,EAAT,oBAAS;QACT,YAAY,EAAZ,uBAAY;QACZ,IAAI,EAAJ,eAAI;KACL;IAED,OAAO,EAAE,CAAC,KAAc,EAAE,KAAa,EAAE,EAAE,KAAa,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,KAAgB,CAAC;CAChG,CAAC,CAAC;AAEH,SAAgB,GAAG,CAAC,KAAgB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACxF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,MAAM,CACpB,KAAe,EACf,YAA8B;IAC5B,YAAY,EAAE,8CAA+B;CAC9C;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InterpolatedContentValue } from "@platecms/delta-cast";
|
|
2
|
+
export interface NodeTransformers {
|
|
3
|
+
contentValue?: (node: InterpolatedContentValue) => InterpolatedContentValue;
|
|
4
|
+
}
|
|
5
|
+
export declare function flattenTextOnlyContentValueNode(node: InterpolatedContentValue): InterpolatedContentValue;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flattenTextOnlyContentValueNode = flattenTextOnlyContentValueNode;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
function flattenTextOnlyContentValueNode(node) {
|
|
6
|
+
if (node.value && node.value.children.length === 1 && (0, utils_1.hasChildren)(node.value.children[0])) {
|
|
7
|
+
return {
|
|
8
|
+
prn: node.prn,
|
|
9
|
+
type: "contentValue",
|
|
10
|
+
value: {
|
|
11
|
+
...node.value,
|
|
12
|
+
children: (0, utils_1.isBlockContent)(node.value.children[0]) ? node.value.children[0].children : [],
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
prn: node.prn,
|
|
18
|
+
type: "contentValue",
|
|
19
|
+
value: node.value,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/transformers/index.ts"],"names":[],"mappings":";;AAOA,0EAiBC;AAvBD,oCAAuD;AAMvD,SAAgB,+BAA+B,CAAC,IAA8B;IAC5E,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,KAAK;gBACb,QAAQ,EAAE,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;aACxF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasChildren = hasChildren;
|
|
4
|
+
exports.isBlockContent = isBlockContent;
|
|
5
|
+
function hasChildren(node) {
|
|
6
|
+
if (!node)
|
|
7
|
+
return false;
|
|
8
|
+
return "children" in node;
|
|
9
|
+
}
|
|
10
|
+
function isBlockContent(node) {
|
|
11
|
+
return (node?.type === "paragraph" ||
|
|
12
|
+
node?.type === "heading" ||
|
|
13
|
+
node?.type === "list" ||
|
|
14
|
+
node?.type === "blockquote" ||
|
|
15
|
+
node?.type === "code");
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/utils/index.ts"],"names":[],"mappings":";;AAEA,kCAIC;AAED,wCAQC;AAdD,SAAgB,WAAW,CAAC,IAAc;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAc;IAC3C,OAAO,CACL,IAAI,EAAE,IAAI,KAAK,WAAW;QAC1B,IAAI,EAAE,IAAI,KAAK,SAAS;QACxB,IAAI,EAAE,IAAI,KAAK,MAAM;QACrB,IAAI,EAAE,IAAI,KAAK,YAAY;QAC3B,IAAI,EAAE,IAAI,KAAK,MAAM,CACtB,CAAC;AACJ,CAAC"}
|