@verdant-web/tiptap 4.1.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,13 +28,3 @@ export declare function createVerdantMediaExtension(fileMap: VerdantMediaFileMap
28
28
  * not preloaded they will be blank in the rendered version.
29
29
  */
30
30
  export declare function preloadMedia(files: VerdantMediaFileMap): Promise<void>;
31
- export interface VerdantMediaRendererExtensionOptions {
32
- }
33
- /**
34
- * An extension for rendering TipTap documents with Verdant media nodes.
35
- * - ONLY works if the files being rendered are already synced to a Verdant server.
36
- * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
37
- * It's good for static sites or server-side rendering of documents you authored
38
- * with Verdant.
39
- */
40
- export declare const VerdantMediaRendererExtension: Node<VerdantMediaRendererExtensionOptions, any>;
@@ -313,124 +313,4 @@ export async function preloadMedia(files) {
313
313
  });
314
314
  }));
315
315
  }
316
- /**
317
- * An extension for rendering TipTap documents with Verdant media nodes.
318
- * - ONLY works if the files being rendered are already synced to a Verdant server.
319
- * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
320
- * It's good for static sites or server-side rendering of documents you authored
321
- * with Verdant.
322
- */
323
- export const VerdantMediaRendererExtension = Node.create({
324
- name: 'verdant-media',
325
- group: 'block',
326
- addAttributes() {
327
- return {
328
- [fileKeyAttribute]: {
329
- default: null,
330
- keepOnSplit: false,
331
- parseHTML: (element) => element.getAttribute(fileKeyAttribute),
332
- rendered: true,
333
- },
334
- [fileIdAttribute]: {
335
- default: null,
336
- keepOnSplit: false,
337
- parseHTML: (element) => element.getAttribute(fileIdAttribute),
338
- rendered: true,
339
- },
340
- alt: {
341
- default: null,
342
- keepOnSplit: false,
343
- parseHTML: (element) => element.getAttribute('alt'),
344
- },
345
- [fileTypeAttribute]: {
346
- default: null,
347
- keepOnSplit: false,
348
- parseHTML: (element) => element.getAttribute(fileTypeAttribute),
349
- rendered: true,
350
- },
351
- [fileNameAttribute]: {
352
- default: null,
353
- keepOnSplit: false,
354
- parseHTML: (element) => element.getAttribute(fileNameAttribute),
355
- rendered: true,
356
- },
357
- src: {
358
- default: null,
359
- keepOnSplit: false,
360
- parseHTML: (element) => element.getAttribute('src'),
361
- rendered: true,
362
- },
363
- };
364
- },
365
- parseHTML() {
366
- return [
367
- {
368
- tag: `[${fileKeyAttribute}]`,
369
- getAttrs: (element) => {
370
- const fileKey = element.getAttribute(fileKeyAttribute);
371
- const fileId = element.getAttribute(fileIdAttribute);
372
- const alt = element.getAttribute('alt');
373
- const type = element.getAttribute(fileTypeAttribute);
374
- const name = element.getAttribute(fileNameAttribute);
375
- const src = element.getAttribute('src');
376
- return {
377
- [fileKeyAttribute]: fileKey,
378
- [fileIdAttribute]: fileId,
379
- alt,
380
- src,
381
- [fileTypeAttribute]: type,
382
- [fileNameAttribute]: name,
383
- };
384
- },
385
- },
386
- ];
387
- },
388
- renderHTML(props) {
389
- const src = props.node.attrs.src;
390
- const fileKey = props.node.attrs[fileKeyAttribute];
391
- const fileId = props.node.attrs[fileIdAttribute];
392
- const alt = props.node.attrs.alt;
393
- const name = props.node.attrs[fileNameAttribute];
394
- const type = props.node.attrs[fileTypeAttribute];
395
- const baseAttrs = {
396
- [fileKeyAttribute]: fileKey,
397
- [fileIdAttribute]: fileId,
398
- alt,
399
- [fileTypeAttribute]: type,
400
- [fileNameAttribute]: name,
401
- };
402
- if (!src) {
403
- return [
404
- 'div',
405
- mergeAttributes(baseAttrs, props.HTMLAttributes),
406
- 'Missing file',
407
- ];
408
- }
409
- if (type === null || type === void 0 ? void 0 : type.startsWith('image/')) {
410
- return [
411
- 'img',
412
- mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
413
- ];
414
- }
415
- else if (type === null || type === void 0 ? void 0 : type.startsWith('video/')) {
416
- return [
417
- 'video',
418
- mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
419
- ];
420
- }
421
- else if (type === null || type === void 0 ? void 0 : type.startsWith('audio/')) {
422
- return [
423
- 'audio',
424
- mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
425
- ];
426
- }
427
- else {
428
- return [
429
- 'a',
430
- mergeAttributes(Object.assign({ href: src }, baseAttrs), props.HTMLAttributes),
431
- 'Download',
432
- ];
433
- }
434
- },
435
- });
436
316
  //# sourceMappingURL=VerdantMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerdantMedia.js","sourceRoot":"","sources":["../../../src/extensions/VerdantMedia.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VerdantMedia.js","sourceRoot":"","sources":["../../../src/extensions/VerdantMedia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Node } from '@tiptap/core';
2
+ export interface VerdantMediaRendererExtensionOptions {
3
+ }
4
+ /**
5
+ * An extension for rendering TipTap documents with Verdant media nodes.
6
+ * - ONLY works if the files being rendered are already synced to a Verdant server.
7
+ * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
8
+ * It's good for static sites or server-side rendering of documents you authored
9
+ * with Verdant.
10
+ */
11
+ export declare const VerdantMediaRendererExtension: Node<VerdantMediaRendererExtensionOptions, any>;
@@ -0,0 +1,127 @@
1
+ import { mergeAttributes, Node } from '@tiptap/core';
2
+ import { fileIdAttribute, fileKeyAttribute, fileNameAttribute, fileTypeAttribute, } from './attributes.js';
3
+ // because this is on client and server, types get annoying...
4
+ function getAttribute(element, key) {
5
+ return getAttribute(element, key);
6
+ }
7
+ /**
8
+ * An extension for rendering TipTap documents with Verdant media nodes.
9
+ * - ONLY works if the files being rendered are already synced to a Verdant server.
10
+ * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
11
+ * It's good for static sites or server-side rendering of documents you authored
12
+ * with Verdant.
13
+ */
14
+ export const VerdantMediaRendererExtension = Node.create({
15
+ name: 'verdant-media',
16
+ group: 'block',
17
+ addAttributes() {
18
+ return {
19
+ [fileKeyAttribute]: {
20
+ default: null,
21
+ keepOnSplit: false,
22
+ parseHTML: (element) => getAttribute(element, fileKeyAttribute),
23
+ rendered: true,
24
+ },
25
+ [fileIdAttribute]: {
26
+ default: null,
27
+ keepOnSplit: false,
28
+ parseHTML: (element) => getAttribute(element, fileIdAttribute),
29
+ rendered: true,
30
+ },
31
+ alt: {
32
+ default: null,
33
+ keepOnSplit: false,
34
+ parseHTML: (element) => getAttribute(element, 'alt'),
35
+ },
36
+ [fileTypeAttribute]: {
37
+ default: null,
38
+ keepOnSplit: false,
39
+ parseHTML: (element) => getAttribute(element, fileTypeAttribute),
40
+ rendered: true,
41
+ },
42
+ [fileNameAttribute]: {
43
+ default: null,
44
+ keepOnSplit: false,
45
+ parseHTML: (element) => getAttribute(element, fileNameAttribute),
46
+ rendered: true,
47
+ },
48
+ src: {
49
+ default: null,
50
+ keepOnSplit: false,
51
+ parseHTML: (element) => getAttribute(element, 'src'),
52
+ rendered: true,
53
+ },
54
+ };
55
+ },
56
+ parseHTML() {
57
+ return [
58
+ {
59
+ tag: `[${fileKeyAttribute}]`,
60
+ getAttrs: (element) => {
61
+ const fileKey = getAttribute(element, fileKeyAttribute);
62
+ const fileId = getAttribute(element, fileIdAttribute);
63
+ const alt = getAttribute(element, 'alt');
64
+ const type = getAttribute(element, fileTypeAttribute);
65
+ const name = getAttribute(element, fileNameAttribute);
66
+ const src = getAttribute(element, 'src');
67
+ return {
68
+ [fileKeyAttribute]: fileKey,
69
+ [fileIdAttribute]: fileId,
70
+ alt,
71
+ src,
72
+ [fileTypeAttribute]: type,
73
+ [fileNameAttribute]: name,
74
+ };
75
+ },
76
+ },
77
+ ];
78
+ },
79
+ renderHTML(props) {
80
+ const src = props.node.attrs.src;
81
+ const fileKey = props.node.attrs[fileKeyAttribute];
82
+ const fileId = props.node.attrs[fileIdAttribute];
83
+ const alt = props.node.attrs.alt;
84
+ const name = props.node.attrs[fileNameAttribute];
85
+ const type = props.node.attrs[fileTypeAttribute];
86
+ const baseAttrs = {
87
+ [fileKeyAttribute]: fileKey,
88
+ [fileIdAttribute]: fileId,
89
+ alt,
90
+ [fileTypeAttribute]: type,
91
+ [fileNameAttribute]: name,
92
+ };
93
+ if (!src) {
94
+ return [
95
+ 'div',
96
+ mergeAttributes(baseAttrs, props.HTMLAttributes),
97
+ 'Missing file',
98
+ ];
99
+ }
100
+ if (type === null || type === void 0 ? void 0 : type.startsWith('image/')) {
101
+ return [
102
+ 'img',
103
+ mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
104
+ ];
105
+ }
106
+ else if (type === null || type === void 0 ? void 0 : type.startsWith('video/')) {
107
+ return [
108
+ 'video',
109
+ mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
110
+ ];
111
+ }
112
+ else if (type === null || type === void 0 ? void 0 : type.startsWith('audio/')) {
113
+ return [
114
+ 'audio',
115
+ mergeAttributes(Object.assign({ src }, baseAttrs), props.HTMLAttributes),
116
+ ];
117
+ }
118
+ else {
119
+ return [
120
+ 'a',
121
+ mergeAttributes(Object.assign({ href: src }, baseAttrs), props.HTMLAttributes),
122
+ 'Download',
123
+ ];
124
+ }
125
+ },
126
+ });
127
+ //# sourceMappingURL=VerdantMediaRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerdantMediaRenderer.js","sourceRoot":"","sources":["../../../src/extensions/VerdantMediaRenderer.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export * from './extensions/attributes.js';
2
2
  export * from './extensions/NodeId.js';
3
3
  export * from './extensions/Verdant.js';
4
4
  export * from './extensions/VerdantMedia.js';
5
+ export * from './extensions/VerdantMediaRenderer.js';
5
6
  export * from './fields.js';
package/dist/esm/index.js CHANGED
@@ -2,5 +2,6 @@ export * from './extensions/attributes.js';
2
2
  export * from './extensions/NodeId.js';
3
3
  export * from './extensions/Verdant.js';
4
4
  export * from './extensions/VerdantMedia.js';
5
+ export * from './extensions/VerdantMediaRenderer.js';
5
6
  export * from './fields.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,aAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Server } from '@verdant-web/server';
2
+ export { VerdantMediaRendererExtension } from '../extensions/VerdantMediaRenderer.js';
2
3
  /**
3
4
  * Attaches file URLs to all Verdant media nodes in the document, according
4
5
  * to the file service attached to your Verdant server.
@@ -1,4 +1,5 @@
1
1
  import { fileIdAttribute, fileNameAttribute, fileTypeAttribute, } from '../extensions/attributes.js';
2
+ export { VerdantMediaRendererExtension } from '../extensions/VerdantMediaRenderer.js';
2
3
  /**
3
4
  * Attaches file URLs to all Verdant media nodes in the document, according
4
5
  * to the file service attached to your Verdant server.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAa,EACb,SAAiB,EACjB,MAAc;IAEd,MAAM,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAS,EAAE,SAAiB,EAAE,MAAc;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YACvC,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CACrE,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,QAAa,EACb,SAAiB,EACjB,MAAc;IAEd,MAAM,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAS,EAAE,SAAiB,EAAE,MAAc;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YACvC,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CACrE,CAAC;IACH,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdant-web/tiptap",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",
@@ -70,10 +70,10 @@
70
70
  "vite": "6.1.1",
71
71
  "vitest": "3.0.8",
72
72
  "vitest-browser-react": "0.1.1",
73
- "@verdant-web/react": "42.1.0",
74
- "@verdant-web/server": "3.3.11",
75
73
  "@verdant-web/cli": "4.8.2",
76
- "@verdant-web/store": "4.4.1"
74
+ "@verdant-web/server": "3.3.11",
75
+ "@verdant-web/store": "4.4.1",
76
+ "@verdant-web/react": "42.1.0"
77
77
  },
78
78
  "scripts": {
79
79
  "test": "vitest",
@@ -360,127 +360,3 @@ export async function preloadMedia(files: VerdantMediaFileMap) {
360
360
  }),
361
361
  );
362
362
  }
363
-
364
- export interface VerdantMediaRendererExtensionOptions {}
365
-
366
- /**
367
- * An extension for rendering TipTap documents with Verdant media nodes.
368
- * - ONLY works if the files being rendered are already synced to a Verdant server.
369
- * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
370
- * It's good for static sites or server-side rendering of documents you authored
371
- * with Verdant.
372
- */
373
- export const VerdantMediaRendererExtension =
374
- Node.create<VerdantMediaRendererExtensionOptions>({
375
- name: 'verdant-media',
376
- group: 'block',
377
- addAttributes() {
378
- return {
379
- [fileKeyAttribute]: {
380
- default: null,
381
- keepOnSplit: false,
382
- parseHTML: (element) => element.getAttribute(fileKeyAttribute),
383
- rendered: true,
384
- },
385
- [fileIdAttribute]: {
386
- default: null,
387
- keepOnSplit: false,
388
- parseHTML: (element) => element.getAttribute(fileIdAttribute),
389
- rendered: true,
390
- },
391
- alt: {
392
- default: null,
393
- keepOnSplit: false,
394
- parseHTML: (element) => element.getAttribute('alt'),
395
- },
396
- [fileTypeAttribute]: {
397
- default: null,
398
- keepOnSplit: false,
399
- parseHTML: (element) => element.getAttribute(fileTypeAttribute),
400
- rendered: true,
401
- },
402
- [fileNameAttribute]: {
403
- default: null,
404
- keepOnSplit: false,
405
- parseHTML: (element) => element.getAttribute(fileNameAttribute),
406
- rendered: true,
407
- },
408
- src: {
409
- default: null,
410
- keepOnSplit: false,
411
- parseHTML: (element) => element.getAttribute('src'),
412
- rendered: true,
413
- },
414
- };
415
- },
416
- parseHTML() {
417
- return [
418
- {
419
- tag: `[${fileKeyAttribute}]`,
420
- getAttrs: (element) => {
421
- const fileKey = element.getAttribute(fileKeyAttribute);
422
- const fileId = element.getAttribute(fileIdAttribute);
423
- const alt = element.getAttribute('alt');
424
- const type = element.getAttribute(fileTypeAttribute);
425
- const name = element.getAttribute(fileNameAttribute);
426
- const src = element.getAttribute('src');
427
- return {
428
- [fileKeyAttribute]: fileKey,
429
- [fileIdAttribute]: fileId,
430
- alt,
431
- src,
432
- [fileTypeAttribute]: type,
433
- [fileNameAttribute]: name,
434
- };
435
- },
436
- },
437
- ];
438
- },
439
- renderHTML(props) {
440
- const src = props.node.attrs.src;
441
- const fileKey = props.node.attrs[fileKeyAttribute];
442
- const fileId = props.node.attrs[fileIdAttribute];
443
- const alt = props.node.attrs.alt;
444
- const name = props.node.attrs[fileNameAttribute];
445
- const type = props.node.attrs[fileTypeAttribute];
446
-
447
- const baseAttrs = {
448
- [fileKeyAttribute]: fileKey,
449
- [fileIdAttribute]: fileId,
450
- alt,
451
- [fileTypeAttribute]: type,
452
- [fileNameAttribute]: name,
453
- };
454
-
455
- if (!src) {
456
- return [
457
- 'div',
458
- mergeAttributes(baseAttrs, props.HTMLAttributes),
459
- 'Missing file',
460
- ];
461
- }
462
-
463
- if (type?.startsWith('image/')) {
464
- return [
465
- 'img',
466
- mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
467
- ];
468
- } else if (type?.startsWith('video/')) {
469
- return [
470
- 'video',
471
- mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
472
- ];
473
- } else if (type?.startsWith('audio/')) {
474
- return [
475
- 'audio',
476
- mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
477
- ];
478
- } else {
479
- return [
480
- 'a',
481
- mergeAttributes({ href: src, ...baseAttrs }, props.HTMLAttributes),
482
- 'Download',
483
- ];
484
- }
485
- },
486
- });
@@ -0,0 +1,136 @@
1
+ import { mergeAttributes, Node } from '@tiptap/core';
2
+ import {
3
+ fileIdAttribute,
4
+ fileKeyAttribute,
5
+ fileNameAttribute,
6
+ fileTypeAttribute,
7
+ } from './attributes.js';
8
+
9
+ export interface VerdantMediaRendererExtensionOptions {}
10
+
11
+ // because this is on client and server, types get annoying...
12
+ function getAttribute(element: any, key: string) {
13
+ return getAttribute(element, key);
14
+ }
15
+
16
+ /**
17
+ * An extension for rendering TipTap documents with Verdant media nodes.
18
+ * - ONLY works if the files being rendered are already synced to a Verdant server.
19
+ * - ONLY works if you process the document JSON with `@verdant-web/tiptap/server`'s `attachFileUrls` function on your server.
20
+ * It's good for static sites or server-side rendering of documents you authored
21
+ * with Verdant.
22
+ */
23
+ export const VerdantMediaRendererExtension =
24
+ Node.create<VerdantMediaRendererExtensionOptions>({
25
+ name: 'verdant-media',
26
+ group: 'block',
27
+ addAttributes() {
28
+ return {
29
+ [fileKeyAttribute]: {
30
+ default: null,
31
+ keepOnSplit: false,
32
+ parseHTML: (element) => getAttribute(element, fileKeyAttribute),
33
+ rendered: true,
34
+ },
35
+ [fileIdAttribute]: {
36
+ default: null,
37
+ keepOnSplit: false,
38
+ parseHTML: (element) => getAttribute(element, fileIdAttribute),
39
+ rendered: true,
40
+ },
41
+ alt: {
42
+ default: null,
43
+ keepOnSplit: false,
44
+ parseHTML: (element) => getAttribute(element, 'alt'),
45
+ },
46
+ [fileTypeAttribute]: {
47
+ default: null,
48
+ keepOnSplit: false,
49
+ parseHTML: (element) => getAttribute(element, fileTypeAttribute),
50
+ rendered: true,
51
+ },
52
+ [fileNameAttribute]: {
53
+ default: null,
54
+ keepOnSplit: false,
55
+ parseHTML: (element) => getAttribute(element, fileNameAttribute),
56
+ rendered: true,
57
+ },
58
+ src: {
59
+ default: null,
60
+ keepOnSplit: false,
61
+ parseHTML: (element) => getAttribute(element, 'src'),
62
+ rendered: true,
63
+ },
64
+ };
65
+ },
66
+ parseHTML() {
67
+ return [
68
+ {
69
+ tag: `[${fileKeyAttribute}]`,
70
+ getAttrs: (element) => {
71
+ const fileKey = getAttribute(element, fileKeyAttribute);
72
+ const fileId = getAttribute(element, fileIdAttribute);
73
+ const alt = getAttribute(element, 'alt');
74
+ const type = getAttribute(element, fileTypeAttribute);
75
+ const name = getAttribute(element, fileNameAttribute);
76
+ const src = getAttribute(element, 'src');
77
+ return {
78
+ [fileKeyAttribute]: fileKey,
79
+ [fileIdAttribute]: fileId,
80
+ alt,
81
+ src,
82
+ [fileTypeAttribute]: type,
83
+ [fileNameAttribute]: name,
84
+ };
85
+ },
86
+ },
87
+ ];
88
+ },
89
+ renderHTML(props) {
90
+ const src = props.node.attrs.src;
91
+ const fileKey = props.node.attrs[fileKeyAttribute];
92
+ const fileId = props.node.attrs[fileIdAttribute];
93
+ const alt = props.node.attrs.alt;
94
+ const name = props.node.attrs[fileNameAttribute];
95
+ const type = props.node.attrs[fileTypeAttribute];
96
+
97
+ const baseAttrs = {
98
+ [fileKeyAttribute]: fileKey,
99
+ [fileIdAttribute]: fileId,
100
+ alt,
101
+ [fileTypeAttribute]: type,
102
+ [fileNameAttribute]: name,
103
+ };
104
+
105
+ if (!src) {
106
+ return [
107
+ 'div',
108
+ mergeAttributes(baseAttrs, props.HTMLAttributes),
109
+ 'Missing file',
110
+ ];
111
+ }
112
+
113
+ if (type?.startsWith('image/')) {
114
+ return [
115
+ 'img',
116
+ mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
117
+ ];
118
+ } else if (type?.startsWith('video/')) {
119
+ return [
120
+ 'video',
121
+ mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
122
+ ];
123
+ } else if (type?.startsWith('audio/')) {
124
+ return [
125
+ 'audio',
126
+ mergeAttributes({ src, ...baseAttrs }, props.HTMLAttributes),
127
+ ];
128
+ } else {
129
+ return [
130
+ 'a',
131
+ mergeAttributes({ href: src, ...baseAttrs }, props.HTMLAttributes),
132
+ 'Download',
133
+ ];
134
+ }
135
+ },
136
+ });
package/src/index.ts CHANGED
@@ -2,4 +2,5 @@ export * from './extensions/attributes.js';
2
2
  export * from './extensions/NodeId.js';
3
3
  export * from './extensions/Verdant.js';
4
4
  export * from './extensions/VerdantMedia.js';
5
+ export * from './extensions/VerdantMediaRenderer.js';
5
6
  export * from './fields.js';
@@ -5,6 +5,8 @@ import {
5
5
  fileTypeAttribute,
6
6
  } from '../extensions/attributes.js';
7
7
 
8
+ export { VerdantMediaRendererExtension } from '../extensions/VerdantMediaRenderer.js';
9
+
8
10
  /**
9
11
  * Attaches file URLs to all Verdant media nodes in the document, according
10
12
  * to the file service attached to your Verdant server.