1 | export var inlineCard = {
|
2 | inline: true,
|
3 | group: 'inline',
|
4 | selectable: true,
|
5 | draggable: true,
|
6 | attrs: {
|
7 | url: { default: null },
|
8 | data: { default: null },
|
9 | },
|
10 | parseDOM: [
|
11 | {
|
12 | tag: 'a[data-inline-card]',
|
13 |
|
14 | priority: 100,
|
15 | getAttrs: function (dom) {
|
16 | var anchor = dom;
|
17 | var data = anchor.getAttribute('data-card-data');
|
18 | return {
|
19 | url: anchor.getAttribute('href') || null,
|
20 | data: data ? JSON.parse(data) : null,
|
21 | };
|
22 | },
|
23 | },
|
24 |
|
25 | {
|
26 | tag: 'div[data-inline-card]',
|
27 | getAttrs: function (dom) {
|
28 | var anchor = dom;
|
29 | var data = anchor.getAttribute('data-card-data');
|
30 | return {
|
31 | url: anchor.getAttribute('data-card-url'),
|
32 | data: data ? JSON.parse(data) : null,
|
33 | };
|
34 | },
|
35 | },
|
36 | ],
|
37 | toDOM: function (node) {
|
38 | var attrs = {
|
39 | 'data-inline-card': '',
|
40 | href: node.attrs.url || '',
|
41 | 'data-card-data': node.attrs.data ? JSON.stringify(node.attrs.data) : '',
|
42 | };
|
43 | if (node.attrs.url) {
|
44 | return ['a', attrs, node.attrs.url];
|
45 | }
|
46 | else {
|
47 | return ['a', attrs];
|
48 | }
|
49 | },
|
50 | };
|
51 |
|
\ | No newline at end of file |