From 212de6f4b43b4643ceb55cec3a34bc61cf1e3346 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 19 Dec 2019 18:43:10 +0200 Subject: [PATCH] feat: subscript service --- .../src/AnnotationService/tools/index.js | 2 +- .../CodeService/CodeService.js | 11 ++--------- .../SubscriptService}/Subscript.js | 0 .../SubscriptService/SubscriptService.js | 18 ++++++++++++++++++ .../src/InlineAnnotations/index.js | 8 +++++++- wax-prosemirror-schema/index.js | 1 + wax-prosemirror-schema/src/editoria/marks.js | 5 ----- .../src/marks/subscriptMark.js | 10 ++++++++++ 8 files changed, 39 insertions(+), 16 deletions(-) rename wax-prosemirror-plugins/src/{AnnotationService/tools => InlineAnnotations/SubscriptService}/Subscript.js (100%) create mode 100644 wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/SubscriptService.js create mode 100644 wax-prosemirror-schema/src/marks/subscriptMark.js diff --git a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js index 643a61eb5..af913b544 100644 --- a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js +++ b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js @@ -1,7 +1,7 @@ export { default as Blockquote } from "./Blockquote"; export { default as SmallCaps } from "./SmallCaps"; export { default as StrikeThrough } from "./StrikeThrough"; -export { default as Subscript } from "./Subscript"; +// export { default as Subscript } from "./Subscript"; export { default as Superscript } from "./Superscript"; export { default as Underline } from "./Underline"; export { default as Table } from "./Table"; diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js index d714f11dc..543d5f6a4 100644 --- a/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js +++ b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js @@ -1,4 +1,5 @@ import Service from "wax-prosemirror-core/src/services/Service"; +import { codeMark } from "wax-prosemirror-schema"; import Code from "./Code"; class CodeService extends Service { @@ -7,15 +8,7 @@ class CodeService extends Service { register() { this.container .bind("schema") - .toConstantValue({ - code: { - parseDOM: { tag: "code" }, - toDOM(hook, next) { - hook.value = ["code", 0]; - next(); - } - } - }) + .toConstantValue({ code: codeMark }) .whenTargetNamed("mark"); this.container.bind("Code").to(Code); diff --git a/wax-prosemirror-plugins/src/AnnotationService/tools/Subscript.js b/wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/Subscript.js similarity index 100% rename from wax-prosemirror-plugins/src/AnnotationService/tools/Subscript.js rename to wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/Subscript.js diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/SubscriptService.js b/wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/SubscriptService.js new file mode 100644 index 000000000..31c8d37e4 --- /dev/null +++ b/wax-prosemirror-plugins/src/InlineAnnotations/SubscriptService/SubscriptService.js @@ -0,0 +1,18 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import { subscriptMark } from "wax-prosemirror-schema"; +import Subscript from "./Subscript"; + +class SubscriptService extends Service { + boot() {} + + register() { + this.container + .bind("schema") + .toConstantValue({ subscript: subscriptMark }) + .whenTargetNamed("mark"); + + this.container.bind("Subscript").to(Subscript); + } +} + +export default SubscriptService; diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/index.js b/wax-prosemirror-plugins/src/InlineAnnotations/index.js index af8fbbc80..1d9705ef1 100644 --- a/wax-prosemirror-plugins/src/InlineAnnotations/index.js +++ b/wax-prosemirror-plugins/src/InlineAnnotations/index.js @@ -1,4 +1,10 @@ import CodeService from "./CodeService/CodeService"; import StrongService from "./StrongService/StrongService"; import EmphasisService from "./EmphasisService/EmphasisService"; -export default [new CodeService(), new StrongService(), new EmphasisService()]; +import SubscriptService from "./SubscriptService/SubscriptService"; +export default [ + new CodeService(), + new StrongService(), + new EmphasisService(), + new SubscriptService() +]; diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index 7520b51b6..e0c547e00 100644 --- a/wax-prosemirror-schema/index.js +++ b/wax-prosemirror-schema/index.js @@ -5,3 +5,4 @@ export { default as codeMark } from "./src/marks/codeMark"; export { default as strongMark } from "./src/marks/strongMark"; export { default as linkMark } from "./src/marks/linkMark"; export { default as emphasisMark } from "./src/marks/emphasisMark"; +export { default as subscriptMark } from "./src/marks/subscriptMark"; diff --git a/wax-prosemirror-schema/src/editoria/marks.js b/wax-prosemirror-schema/src/editoria/marks.js index 64f02b362..dc5a8df67 100644 --- a/wax-prosemirror-schema/src/editoria/marks.js +++ b/wax-prosemirror-schema/src/editoria/marks.js @@ -3,11 +3,6 @@ const emDOM = ["em", 0], codeDOM = ["code", 0]; const marks = { - subscript: { - excludes: "superscript", - parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }], - toDOM: () => ["sub"] - }, superscript: { excludes: "subscript", parseDOM: [{ tag: "sup" }, { style: "vertical-align=super" }], diff --git a/wax-prosemirror-schema/src/marks/subscriptMark.js b/wax-prosemirror-schema/src/marks/subscriptMark.js new file mode 100644 index 000000000..ee7d7fc4a --- /dev/null +++ b/wax-prosemirror-schema/src/marks/subscriptMark.js @@ -0,0 +1,10 @@ +const subscript = { + excludes: "superscript", + parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }], + toDOM(hook, next) { + hook.value = ["sub"]; + next(); + } +}; + +export default subscript; -- GitLab