From e2ba1649823ee1773b882642ff711f6b196ba2c0 Mon Sep 17 00:00:00 2001 From: Alfonso Alongi Date: Sat, 24 Aug 2019 12:49:27 +0200 Subject: [PATCH 1/5] fix missing markdown-it-mathjax npm package --- package-lock.json | 5 +++++ package.json | 1 + 2 files changed, 6 insertions(+) diff --git a/package-lock.json b/package-lock.json index 364a4a5..8a58ec6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1438,6 +1438,11 @@ "resolved": "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-2.0.0.tgz", "integrity": "sha1-papqMPHi9x6Ul1Z8/f9A8f3mdIM=" }, + "markdown-it-mathjax": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-mathjax/-/markdown-it-mathjax-2.0.0.tgz", + "integrity": "sha1-ritPTFxxmgP55HXGZPeyaFIx2ek=" + }, "marked": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.2.tgz", diff --git a/package.json b/package.json index 5d03d48..e6204b3 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "fuzzyset": "0.0.4", "markdown-it": "^9.0.1", "markdown-it-ins": "^2.0.0", + "markdown-it-mathjax": "^2.0.0", "material-design-icons-iconfont": "^5.0.1", "mathjax": "^2.7.5", "mathjax-node": "^2.1.1", From 2a22a56bc31b8be4958fd435e54807a64b246bdd Mon Sep 17 00:00:00 2001 From: Alfonso Alongi Date: Sat, 24 Aug 2019 12:52:08 +0200 Subject: [PATCH 2/5] add tsconfig.tsbuildinfo to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c1396e5..5f03352 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ lib/ node_modules/ *.egg-info/ *.ipynb_checkpoints +tsconfig.tsbuildinfo From a263378ad40f244d7538bd5d59ed10d124d97230 Mon Sep 17 00:00:00 2001 From: Alfonso Alongi Date: Sat, 24 Aug 2019 13:04:04 +0200 Subject: [PATCH 3/5] add history (undo and redo buttons) --- src/MenuItem.tsx | 4 ++++ src/RichTextMenu.tsx | 13 ++++++++++--- src/prosemirror/ProseMirrorEditor.ts | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/MenuItem.tsx b/src/MenuItem.tsx index 89e4c8a..faddadf 100644 --- a/src/MenuItem.tsx +++ b/src/MenuItem.tsx @@ -100,6 +100,10 @@ export default class MenuItem extends React.Component<{format: string, active: b return "ordered_list"; case "text_fields": return "heading"; + case "undo": + return "undo"; + case "redo": + return "redo"; default: break; } diff --git a/src/RichTextMenu.tsx b/src/RichTextMenu.tsx index 6f6575d..b1e3717 100644 --- a/src/RichTextMenu.tsx +++ b/src/RichTextMenu.tsx @@ -24,6 +24,7 @@ import { Widget } from '@phosphor/widgets'; import ReactDOM from "react-dom"; import { schema } from "./prosemirror/prosemirror-schema"; import { wrapInList } from "prosemirror-schema-list"; +import {undo, redo} from "prosemirror-history"; // import { PageConfig } from "@jupyterlab/coreutils"; // import { MenuWidgetObject } from './widget'; @@ -149,7 +150,7 @@ export default class RichTextMenu extends React.Component<{view: EditorView, componentDidMount() { if (!this.props.view) { - this.setState({inactiveMarks: ["strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "blockquote", "code", "link", "image"]}); + this.setState({inactiveMarks: ["undo", "redo", "strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "blockquote", "code", "link", "image"]}); } } componentWillUnmount() { @@ -311,6 +312,12 @@ export default class RichTextMenu extends React.Component<{view: EditorView, case "ordered_list": wrapInList(schema.nodes.ordered_list)(view.state, view.dispatch); break; + case "undo": + undo(view.state, view.dispatch); + break; + case "redo": + redo(view.state, view.dispatch); + break; default: break; }; @@ -480,10 +487,10 @@ export default class RichTextMenu extends React.Component<{view: EditorView, */ render() { - const formats = ["format_bold", "format_italic", "format_underline", "strikethrough_s", + const formats = ["undo", "redo", "format_bold", "format_italic", "format_underline", "strikethrough_s", "text_fields", "format_list_bulleted", "format_list_numbered", "format_quote", "code", "insert_link", "photo", ]; const tooltips = ["bold", "italic", "underline", "strikethrough", "text-styles", "bulleted-list", "numbered-list", "blockquote", "code", "link", "image"]; - const marks = ["strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "blockquote", "code", "link", "image"]; + const marks = ["undo", "redo", "strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "blockquote", "code", "link", "image"]; // const separators = ["strong", "bullet_list", "link"] return (
diff --git a/src/prosemirror/ProseMirrorEditor.ts b/src/prosemirror/ProseMirrorEditor.ts index 628a975..502847d 100644 --- a/src/prosemirror/ProseMirrorEditor.ts +++ b/src/prosemirror/ProseMirrorEditor.ts @@ -18,6 +18,7 @@ import { schema } from "./prosemirror-schema"; import { CodeBlockView, InlineMathView, BlockMathView, ImageView } from "./nodeviews"; import { createInputRules } from "./inputrules"; import { inputRules } from "prosemirror-inputrules"; +import { history } from "prosemirror-history"; // import { Node } from "prosemirror-model"; // import markdownit from "markdown-it/lib"; // import { Transaction } from "prosemirror-state"; @@ -386,6 +387,8 @@ namespace Private { initValue ), plugins: [ + // Load history plugin + history(), keymap(buildKeymap(schema)), keymap(baseKeymap), inputRules({rules: createInputRules()}), From 2dda44b7cb3b26566a6da64d75020c58e7607891 Mon Sep 17 00:00:00 2001 From: Alfonso Alongi Date: Sat, 24 Aug 2019 13:16:54 +0200 Subject: [PATCH 4/5] add increase and decrease buttons for lists --- src/MenuItem.tsx | 4 ++++ src/RichTextMenu.tsx | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/MenuItem.tsx b/src/MenuItem.tsx index faddadf..470d47e 100644 --- a/src/MenuItem.tsx +++ b/src/MenuItem.tsx @@ -104,6 +104,10 @@ export default class MenuItem extends React.Component<{format: string, active: b return "undo"; case "redo": return "redo"; + case "format_indent_increase": + return "indent_increase"; + case "format_indent_decrease": + return "indent_decrease"; default: break; } diff --git a/src/RichTextMenu.tsx b/src/RichTextMenu.tsx index b1e3717..c9cb723 100644 --- a/src/RichTextMenu.tsx +++ b/src/RichTextMenu.tsx @@ -23,7 +23,7 @@ import { CodeMenu } from "./codemenu"; import { Widget } from '@phosphor/widgets'; import ReactDOM from "react-dom"; import { schema } from "./prosemirror/prosemirror-schema"; -import { wrapInList } from "prosemirror-schema-list"; +import { wrapInList, liftListItem, sinkListItem } from "prosemirror-schema-list"; import {undo, redo} from "prosemirror-history"; // import { PageConfig } from "@jupyterlab/coreutils"; @@ -312,6 +312,12 @@ export default class RichTextMenu extends React.Component<{view: EditorView, case "ordered_list": wrapInList(schema.nodes.ordered_list)(view.state, view.dispatch); break; + case "indent_increase": + sinkListItem(schema.nodes.list_item)(view.state, view.dispatch); + break; + case "indent_decrease": + liftListItem(schema.nodes.list_item)(view.state, view.dispatch); + break; case "undo": undo(view.state, view.dispatch); break; @@ -488,9 +494,9 @@ export default class RichTextMenu extends React.Component<{view: EditorView, render() { const formats = ["undo", "redo", "format_bold", "format_italic", "format_underline", "strikethrough_s", - "text_fields", "format_list_bulleted", "format_list_numbered", "format_quote", "code", "insert_link", "photo", ]; + "text_fields", "format_list_bulleted", "format_list_numbered", "format_indent_decrease", "format_indent_increase", "format_quote", "code", "insert_link", "photo", ]; const tooltips = ["bold", "italic", "underline", "strikethrough", "text-styles", "bulleted-list", "numbered-list", "blockquote", "code", "link", "image"]; - const marks = ["undo", "redo", "strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "blockquote", "code", "link", "image"]; + const marks = ["undo", "redo", "strong", "em", "underline", "strikethrough", "heading", "bullet_list", "ordered_list", "indent_increase", "indent_decrease", "blockquote", "code", "link", "image"]; // const separators = ["strong", "bullet_list", "link"] return (
From 5157e270216b401112c505b8f0727043993ec84f Mon Sep 17 00:00:00 2001 From: alfonsoalongi <46493541+alfonsoalongi@users.noreply.github.com> Date: Sat, 24 Aug 2019 14:54:22 +0200 Subject: [PATCH 5/5] Rename MenuItem.tsx to menuitem.tsx --- src/{MenuItem.tsx => menuitem.tsx} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/{MenuItem.tsx => menuitem.tsx} (99%) diff --git a/src/MenuItem.tsx b/src/menuitem.tsx similarity index 99% rename from src/MenuItem.tsx rename to src/menuitem.tsx index 470d47e..7da466c 100644 --- a/src/MenuItem.tsx +++ b/src/menuitem.tsx @@ -161,4 +161,4 @@ export default class MenuItem extends React.Component<{format: string, active: b } -} \ No newline at end of file +}