diff --git a/wax-prosemirror-schema/src/nodes/customBlockNode.js b/wax-prosemirror-schema/src/nodes/customBlockNode.js index 076af0ef7daac842f1ebcfd2cfd131ee7648a952..a3d78e9f181726c89ce1a55271791134e5eeb579 100644 --- a/wax-prosemirror-schema/src/nodes/customBlockNode.js +++ b/wax-prosemirror-schema/src/nodes/customBlockNode.js @@ -24,6 +24,7 @@ const customBlockNode = { class: hook.node.attrs.class, 'data-type': hook.node.attrs.type, }; + // eslint-disable-next-line no-param-reassign hook.value = ['p', attrs, 0]; next(); }, diff --git a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js b/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js index 088ee7e96595eff8efb18ad8bc2b4b22dff0bc4e..e3bea1e30aafda1ed8dcc28b7d1e13f66c9537bd 100644 --- a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js +++ b/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js @@ -1,27 +1,27 @@ const epigraphPoetry = { - content: "inline*", - group: "block", + content: 'inline*', + group: 'block', priority: 0, defining: true, attrs: { - class: { default: "epigraph-poetry" } + class: { default: 'epigraph-poetry' }, }, parseDOM: [ { - tag: "p.epigraph-poetry", + tag: 'p.epigraph-poetry', getAttrs(hook, next) { Object.assign(hook, { - class: hook.dom.getAttribute("class") + class: hook.dom.getAttribute('class'), }); next(); - } - } + }, + }, ], toDOM(hook, next) { const attrs = { class: hook.node.attrs.class }; - hook.value = ["p", attrs, 0]; + hook.value = ['p', attrs, 0]; next(); - } + }, }; export default epigraphPoetry; diff --git a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js b/wax-prosemirror-schema/src/nodes/epigraphProseNode.js index 04a885dc50e91be6993c007071cc1608d5f49550..328ed0846ad8060a80633260d2a2a49c1175db2f 100644 --- a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js +++ b/wax-prosemirror-schema/src/nodes/epigraphProseNode.js @@ -1,27 +1,27 @@ const epigraphProse = { - content: "inline*", - group: "block", + content: 'inline*', + group: 'block', priority: 0, defining: true, attrs: { - class: { default: "epigraph-prose" } + class: { default: 'epigraph-prose' }, }, parseDOM: [ { - tag: "p.epigraph-prose", + tag: 'p.epigraph-prose', getAttrs(hook, next) { Object.assign(hook, { - class: hook.dom.getAttribute("class") + class: hook.dom.getAttribute('class'), }); next(); - } - } + }, + }, ], toDOM(hook, next) { const attrs = { class: hook.node.attrs.class }; - hook.value = ["p", attrs, 0]; + hook.value = ['p', attrs, 0]; next(); - } + }, }; export default epigraphProse; diff --git a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js index d5122c74ff34f9b0912972c66b19e5b7a018e5be..55228cd55cabdea63738536da8e6abeda3893ead 100644 --- a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js +++ b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js @@ -1,27 +1,27 @@ const extractPoetry = { - content: "inline*", - group: "block", + content: 'inline*', + group: 'block', priority: 0, defining: true, attrs: { - class: { default: "extract-poetry" } + class: { default: 'extract-poetry' }, }, parseDOM: [ { - tag: "p.extract-poetry", + tag: 'p.extract-poetry', getAttrs(hook, next) { Object.assign(hook, { - class: hook.dom.getAttribute("class") + class: hook.dom.getAttribute('class'), }); next(); - } - } + }, + }, ], toDOM(hook, next) { const attrs = { class: hook.node.attrs.class }; - hook.value = ["p", attrs, 0]; + hook.value = ['p', attrs, 0]; next(); - } + }, }; export default extractPoetry; diff --git a/wax-prosemirror-schema/src/nodes/extractProseNode.js b/wax-prosemirror-schema/src/nodes/extractProseNode.js index 705b14648e7d0a63c1fc48a1db631f3fd766f6b4..deea5977161b410697653a65eb85e46195dd2894 100644 --- a/wax-prosemirror-schema/src/nodes/extractProseNode.js +++ b/wax-prosemirror-schema/src/nodes/extractProseNode.js @@ -1,27 +1,27 @@ const extractProse = { - content: "inline*", - group: "block", + content: 'inline*', + group: 'block', priority: 0, defining: true, attrs: { - class: { default: "extract-prose" } + class: { default: 'extract-prose' }, }, parseDOM: [ { - tag: "p.extract-prose", + tag: 'p.extract-prose', getAttrs(hook, next) { Object.assign(hook, { - class: hook.dom.getAttribute("class") + class: hook.dom.getAttribute('class'), }); next(); - } - } + }, + }, ], toDOM(hook, next) { const attrs = { class: hook.node.attrs.class }; - hook.value = ["p", attrs, 0]; + hook.value = ['p', attrs, 0]; next(); - } + }, }; export default extractProse; diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js new file mode 100644 index 0000000000000000000000000000000000000000..c9413a700f7725987caabe2ad216627bee767830 --- /dev/null +++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/customBlockTrackNode.js @@ -0,0 +1,41 @@ +import { SchemaHelpers } from 'wax-prosemirror-utilities'; + +const customBlockNode = { + content: 'inline*', + group: 'block', + priority: 0, + defining: true, + attrs: { + id: { default: '' }, + track: { default: [] }, + group: { default: '' }, + viewid: { default: '' }, + }, + parseDOM: [ + { + tag: 'p[data-type="block"]', + getAttrs(hook, next) { + Object.assign(hook, { + id: hook.dom.dataset.id, + track: SchemaHelpers.parseTracks(hook.dom.dataset.track), + group: hook.dom.dataset.group, + viewid: hook.dom.dataset.viewid, + }); + next(); + }, + }, + ], + toDOM(hook, next) { + if (hook.node.attrs.track.length) { + Object.assign(hook.value[1], { + 'data-id': hook.node.attrs.id, + 'data-track': JSON.stringify(hook.node.attrs.track), + 'data-group': hook.node.attrs.group, + 'data-viewid': hook.node.attrs.viewid, + }); + } + next(); + }, +}; + +export default customBlockNode; diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js index c3c9b1ed5dc7520a25f28f143bda1007426d4373..d0e92ccb908a566bce4752b96dc911eef0e2cca8 100644 --- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js +++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/index.js @@ -1,17 +1,18 @@ -import authorTrackNode from "./authorTrackNode"; -import titleTrackNode from "./titleTrackNode"; -import subTitleTrackNode from "./subTitleTrackNode"; -import epigraphProseTrackNode from "./epigraphProseTrackNode"; -import epigraphPoetryTrackNode from "./epigraphPoetryTrackNode"; -import headingTrackNode from "./headingTrackNode"; -import paragraphContTrackNode from "./paragraphContTrackNode"; -import extractProseTrackNode from "./extractProseTrackNode"; -import extractPoetryTrackNode from "./extractPoetryTrackNode"; -import sourceNoteTrackNode from "./sourceNoteTrackNode"; -import bulletListTrackNode from "./bulletListTrackNode"; -import orderedListTrackNode from "./orderedListTrackNode"; -import listItemTrackNode from "./listItemTrackNode"; -import imageTrackNode from "./imageTrackNode"; +import authorTrackNode from './authorTrackNode'; +import titleTrackNode from './titleTrackNode'; +import subTitleTrackNode from './subTitleTrackNode'; +import epigraphProseTrackNode from './epigraphProseTrackNode'; +import epigraphPoetryTrackNode from './epigraphPoetryTrackNode'; +import headingTrackNode from './headingTrackNode'; +import paragraphContTrackNode from './paragraphContTrackNode'; +import extractProseTrackNode from './extractProseTrackNode'; +import extractPoetryTrackNode from './extractPoetryTrackNode'; +import sourceNoteTrackNode from './sourceNoteTrackNode'; +import bulletListTrackNode from './bulletListTrackNode'; +import orderedListTrackNode from './orderedListTrackNode'; +import listItemTrackNode from './listItemTrackNode'; +import imageTrackNode from './imageTrackNode'; +import customBlockTrackNode from './customBlockTrackNode'; export default { author: authorTrackNode, @@ -24,7 +25,8 @@ export default { extractPoetry: extractPoetryTrackNode, orderedlist: orderedListTrackNode, sourceNote: sourceNoteTrackNode, - heading: headingTrackNode + heading: headingTrackNode, + customTagBlock: customBlockTrackNode, // bulletlist: bulletListTrackNode, // list_item: listItemTrackNode, // image: imageTrackNode