diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js index 96aac71ece7b2368e6fd1673928965941690e69b..2341165a69974cc9d061b0dfbb4b25240440ec56 100644 --- a/editors/editoria/src/Editoria.js +++ b/editors/editoria/src/Editoria.js @@ -48,7 +48,7 @@ const Editoria = () => ( autoFocus placeholder="Type Something..." fileUpload={file => renderImage(file)} - value={text} + value="<p> hello <code> this is the code</code></p>" layout={EditoriaLayout} user={user} /> diff --git a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js index 30b7c19b833ae698e9c42f2edda31eaa8176a81e..8cfbcc999ac46aa50154ab5090ba6acff9aa8984 100644 --- a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js +++ b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js @@ -1,6 +1,6 @@ export { default as Blockquote } from "./Blockquote"; export { default as Em } from "./Em"; -export { default as Code } from "./Code"; +// export { default as Code } from "./Code"; export { default as Link } from "./Link"; export { default as SmallCaps } from "./SmallCaps"; export { default as StrikeThrough } from "./StrikeThrough"; diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/Code.js b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/Code.js new file mode 100644 index 0000000000000000000000000000000000000000..61887249a4c332293482402b79f9609392391ce7 --- /dev/null +++ b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/Code.js @@ -0,0 +1,23 @@ +import { toggleMark } from "prosemirror-commands"; +import { markActive } from "../../lib/Utils"; +import Tools from "../../lib/Tools"; +import { injectable } from "inversify"; +import { icons } from "wax-prosemirror-components"; + +@injectable() +export default class Code extends Tools { + title = "Toggle code"; + content = icons.code; + + get run() { + return (state, dispatch) => { + toggleMark(state.config.schema.marks.code)(state, dispatch); + }; + } + + get active() { + return state => { + return markActive(state.config.schema.marks.code)(state); + }; + } +} diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js index 2f9cad0e55feff77751592b10c3a516cace8d9bb..9939652f38169f9c681031e4dbd97208bace1310 100644 --- a/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js +++ b/wax-prosemirror-plugins/src/InlineAnnotations/CodeService/CodeService.js @@ -1,19 +1,24 @@ import Service from "wax-prosemirror-core/src/services/Service"; - +import { codeMark } from "wax-prosemirror-schema"; +import Code from "./Code"; +console.log(codeMark); class CodeService extends Service { boot() { const createMark = this.container.get("CreateMark"); createMark({ code: { parseDOM: [{ tag: "code" }], - toDOM() { - return codeDOM; + toDOM(hook, next) { + hook.value = ["code", 0]; + next(); } } }); } - register() {} + register() { + this.container.bind("Code").to(Code); + } } export default CodeService; diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index b89875b9b3e96355f328988e7ece02c06e3929de..20910b0342aa3109c60fdce111e319b923069aac 100644 --- a/wax-prosemirror-schema/index.js +++ b/wax-prosemirror-schema/index.js @@ -1,3 +1,4 @@ export { default as DefaultSchema } from "./src/DefaultSchema"; export { default as EditoriaSchema } from "./src/editoria/EditoriaSchema"; export { default as XpubSchema } from "./src/XpubSchema"; +export { default as codeMark } from "./src/marks/codeMark"; diff --git a/wax-prosemirror-schema/src/editoria/marks.js b/wax-prosemirror-schema/src/editoria/marks.js index f4c577419bc8bae0bf1d40303e185e2095ab2206..d5792ded525b9989fdb56bba3ae003ca835e1e99 100644 --- a/wax-prosemirror-schema/src/editoria/marks.js +++ b/wax-prosemirror-schema/src/editoria/marks.js @@ -51,12 +51,12 @@ const marks = { return strongDOM; } }, - // code: { - // parseDOM: [{ tag: "code" }], - // toDOM() { - // return codeDOM; - // } - // }, + code: { + parseDOM: [{ tag: "code" }], + toDOM() { + return codeDOM; + } + }, subscript: { excludes: "superscript", parseDOM: [{ tag: "sub" }, { style: "vertical-align=sub" }],