@knapsack/rendering-utils 4.92.18--canary.7665.ddd92a5.0 → 4.92.18--canary.cbdacb0.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/.turbo/turbo-test.log +13 -16
- package/dist/blocks-to-html.d.ts.map +1 -1
- package/dist/blocks-to-html.js +1 -27
- package/dist/blocks-to-html.js.map +1 -1
- package/package.json +9 -9
- package/src/blocks-to-html.ts +1 -32
package/.turbo/turbo-test.log
CHANGED
|
@@ -13,12 +13,14 @@
|
|
|
13
13
|
at generateHTML (/home/runner/work/app-monorepo/app-monorepo/node_modules/.pnpm/@tiptap+html@3.20.0_@tiptap+core@3.20.0_@tiptap+pm@3.20.0__@tiptap+pm@3.20.0_happy-dom@_fb9f5841e8c1bd3ab1a0faf6f7899695/node_modules/@tiptap/html/src/server/generateHTML.ts:30:28)
|
|
14
14
|
at convertTipTapJsonToHtml (/home/runner/work/app-monorepo/app-monorepo/libs/tiptap-utils/src/tiptap-utils.ts:27:10)
|
|
15
15
|
at tiptapToHtmlSafe (/home/runner/work/app-monorepo/app-monorepo/libs/rendering-utils/src/blocks-to-html.ts:43:12)
|
|
16
|
-
at blockToHtml (/home/runner/work/app-monorepo/app-monorepo/libs/rendering-utils/src/blocks-to-html.ts:
|
|
17
|
-
✔ blocksToHtml - empty array
|
|
18
|
-
✔ blocksToHtml - single divider-block
|
|
19
|
-
✔ blocksToHtml - single text-editor block
|
|
20
|
-
✔ blocksToHtml - single code-snippet block
|
|
16
|
+
at blockToHtml (/home/runner/work/app-monorepo/app-monorepo/libs/rendering-utils/src/blocks-to-html.ts:59:14)
|
|
17
|
+
✔ blocksToHtml - empty array (128ms)
|
|
18
|
+
✔ blocksToHtml - single divider-block (127ms)
|
|
19
|
+
✔ blocksToHtml - single text-editor block (126ms)
|
|
20
|
+
✔ blocksToHtml - single code-snippet block (106ms)
|
|
21
|
+
marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.
|
|
21
22
|
✔ blocksToHtml - single callout block
|
|
23
|
+
marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.
|
|
22
24
|
✔ blocksToHtml - single callout block with error type
|
|
23
25
|
✔ blocksToHtml - single image-block with single image
|
|
24
26
|
✔ blocksToHtml - single image-block with multiple images
|
|
@@ -36,9 +38,6 @@
|
|
|
36
38
|
✔ blocksToHtml - single shortcut-tiles block with no image
|
|
37
39
|
✔ blocksToHtml - single shortcut-tiles block with link but no name
|
|
38
40
|
✔ blocksToHtml - block with no data
|
|
39
|
-
✔ blocksToHtml - guidelines block renders do/dont/caution sections
|
|
40
|
-
✔ blocksToHtml - empty guidelines block returns empty string
|
|
41
|
-
✔ blocksToHtml - guidelines block without content still renders label
|
|
42
41
|
✔ blocksToHtml - file extensions detection for images
|
|
43
42
|
✔ blocksToHtml - case insensitive file extension detection
|
|
44
43
|
✔ blocksToHtml - files with no extension
|
|
@@ -49,15 +48,13 @@ marked(): headerIds and headerPrefix parameters enabled by default, but are depr
|
|
|
49
48
|
marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.
|
|
50
49
|
marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.
|
|
51
50
|
marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.
|
|
52
|
-
marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.
|
|
53
|
-
marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`.
|
|
54
51
|
marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`.
|
|
55
52
|
✔ blocksToHtml - unknown block type throws error
|
|
56
|
-
✔ blocksToHtml - single markdown-block with string
|
|
57
|
-
✔ blocksToHtml - single markdown-block with array
|
|
58
|
-
✔ blocksToHtml - single markdown-block with empty string
|
|
59
|
-
✔ blocksToHtml - single markdown-block with undefined md
|
|
60
|
-
✔ blocksToHtml - multiple different block types
|
|
53
|
+
✔ blocksToHtml - single markdown-block with string (134ms)
|
|
54
|
+
✔ blocksToHtml - single markdown-block with array (133ms)
|
|
55
|
+
✔ blocksToHtml - single markdown-block with empty string (133ms)
|
|
56
|
+
✔ blocksToHtml - single markdown-block with undefined md (133ms)
|
|
57
|
+
✔ blocksToHtml - multiple different block types (110ms)
|
|
61
58
|
─
|
|
62
59
|
|
|
63
|
-
|
|
60
|
+
31 tests passed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks-to-html.d.ts","sourceRoot":"","sources":["../src/blocks-to-html.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks-to-html.d.ts","sourceRoot":"","sources":["../src/blocks-to-html.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAwInD,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzE"}
|
package/dist/blocks-to-html.js
CHANGED
|
@@ -34,11 +34,6 @@ function tiptapToHtmlSafe(content, blockId, blockType) {
|
|
|
34
34
|
return '';
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
const GUIDELINE_LABELS = {
|
|
38
|
-
do: 'Do',
|
|
39
|
-
dont: "Don't",
|
|
40
|
-
caution: 'Caution',
|
|
41
|
-
};
|
|
42
37
|
async function blockToHtml(b) {
|
|
43
38
|
if (!b.data)
|
|
44
39
|
return '';
|
|
@@ -47,28 +42,6 @@ async function blockToHtml(b) {
|
|
|
47
42
|
case 'table':
|
|
48
43
|
case 'text-editor':
|
|
49
44
|
return tiptapToHtmlSafe(b.data.content, b.id, b.blockType);
|
|
50
|
-
case 'guidelines': {
|
|
51
|
-
const guidelines = b.data.guidelines ?? [];
|
|
52
|
-
if (guidelines.length === 0)
|
|
53
|
-
return '';
|
|
54
|
-
const sections = guidelines
|
|
55
|
-
.map((g) => {
|
|
56
|
-
const label = GUIDELINE_LABELS[g.type] ?? g.type;
|
|
57
|
-
const parts = [`<h4>${escapeAttr(label)}</h4>`];
|
|
58
|
-
if (g.image?.src) {
|
|
59
|
-
const alt = g.image.alt ?? g.image.title ?? label;
|
|
60
|
-
parts.push(`<img src="${escapeAttr(g.image.src)}" alt="${escapeAttr(alt)}" />`);
|
|
61
|
-
}
|
|
62
|
-
if (g.content) {
|
|
63
|
-
const inner = tiptapToHtmlSafe(g.content, `${b.id}--${g.id}`, b.blockType);
|
|
64
|
-
if (inner)
|
|
65
|
-
parts.push(inner);
|
|
66
|
-
}
|
|
67
|
-
return `<section data-guideline-type="${escapeAttr(g.type)}">${parts.join('')}</section>`;
|
|
68
|
-
})
|
|
69
|
-
.join(EOL);
|
|
70
|
-
return sections;
|
|
71
|
-
}
|
|
72
45
|
case 'markdown-block':
|
|
73
46
|
return mdToHtml(Array.isArray(b.data.md) ? b.data.md.join(EOL) : (b.data.md ?? ''));
|
|
74
47
|
case 'divider-block':
|
|
@@ -123,6 +96,7 @@ async function blockToHtml(b) {
|
|
|
123
96
|
case 'whimsical-block':
|
|
124
97
|
case 'generic-iframe':
|
|
125
98
|
return `<iframe src="${escapeAttr(b.data.url)}" />`;
|
|
99
|
+
case 'guidelines': // @todo guidelines uses text-editor
|
|
126
100
|
case 'design-tokens':
|
|
127
101
|
case 'component-spec-block':
|
|
128
102
|
case 'design-src-component':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks-to-html.js","sourceRoot":"","sources":["../src/blocks-to-html.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;AAE3B,KAAK,UAAU,QAAQ,CAAC,EAAU;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,0CAA0C;AAC1C,SAAS,UAAU,CAAC,GAAG,GAAG,EAAE;IAC1B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AACvE,iBAAiB;AACjB,SAAS,gBAAgB,CACvB,OAAoB,EACpB,OAAe,EACf,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,oDAAoD,OAAO,MAAM,SAAS,IAAI,EAC9E,GAAG,CACJ,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"blocks-to-html.js","sourceRoot":"","sources":["../src/blocks-to-html.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knapsack/rendering-utils",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "4.92.18--canary.
|
|
4
|
+
"version": "4.92.18--canary.cbdacb0.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
"test": "ava"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@knapsack/tiptap-utils": "4.92.18--canary.
|
|
29
|
-
"@knapsack/utils": "4.92.18--canary.
|
|
28
|
+
"@knapsack/tiptap-utils": "4.92.18--canary.cbdacb0.0",
|
|
29
|
+
"@knapsack/utils": "4.92.18--canary.cbdacb0.0",
|
|
30
30
|
"isomorphic-dompurify": "^1.13.0",
|
|
31
31
|
"marked": "^6.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@knapsack/eslint-config-starter": "4.92.18--canary.
|
|
35
|
-
"@knapsack/prettier-config": "4.92.18--canary.
|
|
36
|
-
"@knapsack/test-ava": "4.92.18--canary.
|
|
37
|
-
"@knapsack/types": "4.92.18--canary.
|
|
38
|
-
"@knapsack/typescript-config-starter": "4.92.18--canary.
|
|
34
|
+
"@knapsack/eslint-config-starter": "4.92.18--canary.cbdacb0.0",
|
|
35
|
+
"@knapsack/prettier-config": "4.92.18--canary.cbdacb0.0",
|
|
36
|
+
"@knapsack/test-ava": "4.92.18--canary.cbdacb0.0",
|
|
37
|
+
"@knapsack/types": "4.92.18--canary.cbdacb0.0",
|
|
38
|
+
"@knapsack/typescript-config-starter": "4.92.18--canary.cbdacb0.0",
|
|
39
39
|
"@types/node": "^22.19.11",
|
|
40
40
|
"ava": "^6.4.1",
|
|
41
41
|
"eslint": "^9.20.0",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"directory": "libs/rendering-utils",
|
|
51
51
|
"type": "git"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "cbdacb027b516976d7906cc80590f0666d58afc9"
|
|
54
54
|
}
|
package/src/blocks-to-html.ts
CHANGED
|
@@ -50,12 +50,6 @@ function tiptapToHtmlSafe(
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const GUIDELINE_LABELS = {
|
|
54
|
-
do: 'Do',
|
|
55
|
-
dont: "Don't",
|
|
56
|
-
caution: 'Caution',
|
|
57
|
-
} as const;
|
|
58
|
-
|
|
59
53
|
async function blockToHtml(b: BlockConfig): Promise<string> {
|
|
60
54
|
if (!b.data) return '';
|
|
61
55
|
switch (b.blockType) {
|
|
@@ -63,32 +57,6 @@ async function blockToHtml(b: BlockConfig): Promise<string> {
|
|
|
63
57
|
case 'table':
|
|
64
58
|
case 'text-editor':
|
|
65
59
|
return tiptapToHtmlSafe(b.data.content, b.id, b.blockType);
|
|
66
|
-
case 'guidelines': {
|
|
67
|
-
const guidelines = b.data.guidelines ?? [];
|
|
68
|
-
if (guidelines.length === 0) return '';
|
|
69
|
-
const sections = guidelines
|
|
70
|
-
.map((g) => {
|
|
71
|
-
const label = GUIDELINE_LABELS[g.type] ?? g.type;
|
|
72
|
-
const parts: string[] = [`<h4>${escapeAttr(label)}</h4>`];
|
|
73
|
-
if (g.image?.src) {
|
|
74
|
-
const alt = g.image.alt ?? g.image.title ?? label;
|
|
75
|
-
parts.push(
|
|
76
|
-
`<img src="${escapeAttr(g.image.src)}" alt="${escapeAttr(alt)}" />`,
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
if (g.content) {
|
|
80
|
-
const inner = tiptapToHtmlSafe(
|
|
81
|
-
g.content,
|
|
82
|
-
`${b.id}--${g.id}`,
|
|
83
|
-
b.blockType,
|
|
84
|
-
);
|
|
85
|
-
if (inner) parts.push(inner);
|
|
86
|
-
}
|
|
87
|
-
return `<section data-guideline-type="${escapeAttr(g.type)}">${parts.join('')}</section>`;
|
|
88
|
-
})
|
|
89
|
-
.join(EOL);
|
|
90
|
-
return sections;
|
|
91
|
-
}
|
|
92
60
|
case 'markdown-block':
|
|
93
61
|
return mdToHtml(
|
|
94
62
|
Array.isArray(b.data.md) ? b.data.md.join(EOL) : (b.data.md ?? ''),
|
|
@@ -154,6 +122,7 @@ async function blockToHtml(b: BlockConfig): Promise<string> {
|
|
|
154
122
|
case 'whimsical-block':
|
|
155
123
|
case 'generic-iframe':
|
|
156
124
|
return `<iframe src="${escapeAttr(b.data.url)}" />`;
|
|
125
|
+
case 'guidelines': // @todo guidelines uses text-editor
|
|
157
126
|
case 'design-tokens':
|
|
158
127
|
case 'component-spec-block':
|
|
159
128
|
case 'design-src-component':
|