1 import {orderedList, bulletList, listItem} from "prosemirror-schema-list";
3 const alignAttrFromDomNode = node => {
4 if (node.classList.contains('align-right')) {
7 if (node.classList.contains('align-left')) {
10 if (node.classList.contains('align-center')) {
13 if (node.classList.contains('align-justify')) {
31 align: alignAttrFromDomNode(node),
43 if (node.attrs.align === 'right') {
44 attrs['class'] = 'align-right';
46 if (node.attrs.align === 'left') {
47 attrs['class'] = 'align-left';
49 return ["p", attrs, 0];
57 parseDOM: [{tag: "blockquote"}],
62 return ["blockquote", 0];
66 const horizontal_rule = {
68 parseDOM: [{tag: "hr"}],
75 attrs: {level: {default: 1}, align: {default: null}},
79 parseDOM: [{tag: "h1", attrs: {level: 1}},
80 {tag: "h2", attrs: {level: 2}},
81 {tag: "h3", attrs: {level: 3}},
82 {tag: "h4", attrs: {level: 4}},
83 {tag: "h5", attrs: {level: 5}},
84 {tag: "h6", attrs: {level: 6}}],
86 return ["h" + node.attrs.level, 0]
96 parseDOM: [{tag: "pre", preserveWhitespace: "full"}],
98 return ["pre", ["code", 0]];
110 alt: {default: null},
111 title: {default: null}
116 tag: "img[src]", getAttrs: function getAttrs(dom) {
118 src: dom.getAttribute("src"),
119 title: dom.getAttribute("title"),
120 alt: dom.getAttribute("alt")
124 toDOM: function toDOM(node) {
125 const ref = node.attrs;
128 const title = ref.title;
129 return ["img", {src: src, alt: alt, title: title}]
137 parseDOM: [{tag: "br"}],
145 type: {default: 'info'},
146 align: {default: null},
152 {tag: 'p.callout.info', attrs: {type: 'info'}, priority: 75,},
153 {tag: 'p.callout.success', attrs: {type: 'success'}, priority: 75,},
154 {tag: 'p.callout.danger', attrs: {type: 'danger'}, priority: 75,},
155 {tag: 'p.callout.warning', attrs: {type: 'warning'}, priority: 75,},
156 {tag: 'p.callout', attrs: {type: 'info'}, priority: 75},
159 const type = node.attrs.type || 'info';
160 return ['p', {class: 'callout ' + type}, 0];
164 const ordered_list = Object.assign({}, orderedList, {content: "list_item+", group: "block"});
165 const bullet_list = Object.assign({}, bulletList, {content: "list_item+", group: "block"});
166 const list_item = Object.assign({}, listItem, {content: 'paragraph block*'});
184 export default nodes;