blob: d7456ab4094c89dafc9a060c481c2d4614e63f7d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import { Table } from '@tiptap/extension-table';
import { debounce } from 'lodash';
import { VARIANT_WARNING } from '~/flash';
import { __ } from '~/locale';
import { getMarkdownSource } from '../services/markdown_sourcemap';
import { shouldRenderHTMLTable } from '../services/serialization_helpers';
let alertShown = false;
const onUpdate = debounce((editor) => {
if (alertShown) return;
editor.state.doc.descendants((node) => {
if (node.type.name === 'table' && node.attrs.isMarkdown && shouldRenderHTMLTable(node)) {
editor.emit('alert', {
message: __(
'The content editor may change the markdown formatting style of the document, which may not match your original markdown style.',
),
variant: VARIANT_WARNING,
});
alertShown = true;
return false;
}
return true;
});
}, 1000);
export default Table.extend({
addAttributes() {
return {
isMarkdown: {
default: null,
parseHTML: (element) => Boolean(getMarkdownSource(element)),
},
};
},
onUpdate({ editor }) {
onUpdate(editor);
},
});
|