diff --git a/resources/js/editor/markdown-serializer.js b/resources/js/editor/markdown-serializer.js index a7c5d7d82..7fc0bad48 100644 --- a/resources/js/editor/markdown-serializer.js +++ b/resources/js/editor/markdown-serializer.js @@ -13,6 +13,21 @@ marks.underline = { close: '', }; +marks.strike = { + open: '', + close: '', +}; + +marks.superscript = { + open: '', + close: '', +}; + +marks.subscript = { + open: '', + close: '', +}; + function writeNodeAsHtml(state, node) { const html = docToHtml({ content: [node] }); state.write(html); diff --git a/resources/js/editor/menu/index.js b/resources/js/editor/menu/index.js index 591878f7c..9fad417ba 100644 --- a/resources/js/editor/menu/index.js +++ b/resources/js/editor/menu/index.js @@ -56,6 +56,9 @@ const inlineStyles = [ markItem(schema.marks.strong, {title: "Bold", icon: icons.strong}), markItem(schema.marks.em, {title: "Italic", icon: icons.em}), markItem(schema.marks.underline, {title: "Underline", label: 'U'}), + markItem(schema.marks.strike, {title: "Strikethrough", label: '-S-'}), + markItem(schema.marks.superscript, {title: "Superscript", label: 'sup'}), + markItem(schema.marks.subscript, {title: "Subscript", label: 'sub'}), ]; const formats = [ diff --git a/resources/js/editor/schema.js b/resources/js/editor/schema.js index fb6192f22..e81d00608 100644 --- a/resources/js/editor/schema.js +++ b/resources/js/editor/schema.js @@ -30,7 +30,28 @@ const markUnderline = { toDOM() { return ["span", {style: "text-decoration: underline;"}, 0]; } -} +}; + +const markStrike = { + parseDOM: [{tag: "s"}, {tag: "strike"}, {style: "text-decoration=line-through"}], + toDOM() { + return ["span", {style: "text-decoration: line-through;"}, 0]; + } +}; + +const markSuperscript = { + parseDOM: [{tag: "sup"}], + toDOM() { + return ["sup", 0]; + } +}; + +const markSubscript = { + parseDOM: [{tag: "sub"}], + toDOM() { + return ["sub", 0]; + } +}; const customNodes = baseNodes.append({ callout: nodeCallout, @@ -38,6 +59,9 @@ const customNodes = baseNodes.append({ const customMarks = baseMarks.append({ underline: markUnderline, + strike: markStrike, + superscript: markSuperscript, + subscript: markSubscript, }); const schema = new Schema({ diff --git a/resources/views/editor-test.blade.php b/resources/views/editor-test.blade.php index bba27f153..aa79e7907 100644 --- a/resources/views/editor-test.blade.php +++ b/resources/views/editor-test.blade.php @@ -13,7 +13,8 @@
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores?
- Some Underlined content Lorem ipsum dolor sit amet.
+ Some Underlined content Lorem ipsum dolor sit amet.
+ Some striked content Lorem ipsum dolor sit amet.