From 7e9674b6b577edff527adf44f2e1593eab22ec92 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 12 Oct 2020 14:13:39 +0300 Subject: [PATCH] add math nodes and marks --- wax-prosemirror-schema/index.js | 3 +++ .../src/marks/mathSelectMark.js | 8 ++++++++ .../src/nodes/mathDisplayNode.js | 14 +++++++++++++ .../src/nodes/mathInlineNode.js | 14 +++++++++++++ .../src/MathService/MathService.js | 20 +++++++++++++++++-- 5 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 wax-prosemirror-schema/src/marks/mathSelectMark.js create mode 100644 wax-prosemirror-schema/src/nodes/mathDisplayNode.js create mode 100644 wax-prosemirror-schema/src/nodes/mathInlineNode.js diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index d821cda25..6e9de4854 100644 --- a/wax-prosemirror-schema/index.js +++ b/wax-prosemirror-schema/index.js @@ -12,6 +12,7 @@ export { default as underlineMark } from './src/marks/underlineMark'; export { default as smallcapsMark } from './src/marks/smallcapsMark'; export { default as sourceMark } from './src/marks/sourceMark'; export { default as commentMark } from './src/marks/commentMark'; +export { default as mathSelectMark } from './src/marks/mathSelectMark'; /* LIST OF TRACK CHANGES MARKS */ @@ -37,6 +38,8 @@ export { default as headingNode } from './src/nodes/headingNode'; export { default as blockQuoteNode } from './src/nodes/blockQuoteNode'; export { default as footNoteNode } from './src/nodes/footNoteNode'; export { default as codeBlockNode } from './src/nodes/codeBlockNode'; +export { default as mathInlineNode } from './src/nodes/mathInlineNode'; +export { default as mathDisplayNode } from './src/nodes/mathDisplayNode'; /* LIST OF TRACK CHANGES NODES */ diff --git a/wax-prosemirror-schema/src/marks/mathSelectMark.js b/wax-prosemirror-schema/src/marks/mathSelectMark.js new file mode 100644 index 000000000..bda8ec0cc --- /dev/null +++ b/wax-prosemirror-schema/src/marks/mathSelectMark.js @@ -0,0 +1,8 @@ +const mathSelectMark = { + toDOM() { + return ['math-select', 0]; + }, + parseDOM: [{ tag: 'math-select' }], +}; + +export default mathSelectMark; diff --git a/wax-prosemirror-schema/src/nodes/mathDisplayNode.js b/wax-prosemirror-schema/src/nodes/mathDisplayNode.js new file mode 100644 index 000000000..745e2215b --- /dev/null +++ b/wax-prosemirror-schema/src/nodes/mathDisplayNode.js @@ -0,0 +1,14 @@ +const mathDisplayNode = { + group: 'block math', + content: 'text*', + atom: true, + code: true, + toDOM: () => ['math-display', { class: 'math-node' }, 0], + parseDOM: [ + { + tag: 'math-display', + }, + ], +}; + +export default mathDisplayNode; diff --git a/wax-prosemirror-schema/src/nodes/mathInlineNode.js b/wax-prosemirror-schema/src/nodes/mathInlineNode.js new file mode 100644 index 000000000..ff890f1c1 --- /dev/null +++ b/wax-prosemirror-schema/src/nodes/mathInlineNode.js @@ -0,0 +1,14 @@ +const mathInlineNode = { + group: 'inline math', + content: 'text*', + inline: true, + atom: true, + toDOM: () => ['math-inline', { class: 'math-node' }, 0], + parseDOM: [ + { + tag: 'math-inline', + }, + ], +}; + +export default mathInlineNode; diff --git a/wax-prosemirror-services/src/MathService/MathService.js b/wax-prosemirror-services/src/MathService/MathService.js index 267aa147e..1cc778bae 100644 --- a/wax-prosemirror-services/src/MathService/MathService.js +++ b/wax-prosemirror-services/src/MathService/MathService.js @@ -1,3 +1,8 @@ +import { + mathDisplayNode, + mathInlineNode, + mathSelectMark, +} from 'wax-prosemirror-schema'; import { mathPlugin, mathSelectPlugin } from 'wax-prosemirror-plugins'; import Service from '../Service'; @@ -7,10 +12,21 @@ class MathService extends Service { boot() { this.app.PmPlugins.add('mathplugin', mathPlugin); this.app.PmPlugins.add('mathselectplugin', mathSelectPlugin); - console.log(this.app); } - register() {} + register() { + const createNode = this.container.get('CreateNode'); + const createMark = this.container.get('CreateMark'); + createNode({ + math_display: mathDisplayNode, + }); + createNode({ + math_inline: mathInlineNode, + }); + createMark({ + math_select: mathSelectMark, + }); + } } export default MathService; -- GitLab