UNPKG

1.5 kBJavaScriptView Raw
1export 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 // bump priority higher than hyperlink
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 // for renderer
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//# sourceMappingURL=inline-card.js.map
\No newline at end of file