]> BookStack Code Mirror - bookstack/blobdiff - resources/js/editor.js
Attempted adding tricky custom block
[bookstack] / resources / js / editor.js
index 6b4aff1bc1c33e4ef01d28b393d93830c1deee9c..11e908834e5e32a4aaa6918c0b19187ba991731e 100644 (file)
@@ -1,63 +1,6 @@
-import {EditorState} from "prosemirror-state";
-import {EditorView} from "prosemirror-view";
-import {exampleSetup} from "prosemirror-example-setup";
-import {defaultMarkdownParser,
-    defaultMarkdownSerializer} from "prosemirror-markdown";
-import {DOMParser, DOMSerializer} from "prosemirror-model";
+import MarkdownView from "./editor/MarkdownView";
+import ProseMirrorView from "./editor/ProseMirrorView";
 
-import {schema} from "./editor/schema";
-
-class MarkdownView {
-    constructor(target, content) {
-
-        // Build DOM from content
-        const renderDoc = document.implementation.createHTMLDocument();
-        renderDoc.body.innerHTML = content;
-
-        const htmlDoc = DOMParser.fromSchema(schema).parse(renderDoc.body);
-        const markdown = defaultMarkdownSerializer.serialize(htmlDoc);
-
-        this.textarea = target.appendChild(document.createElement("textarea"))
-        this.textarea.value = markdown;
-    }
-
-    get content() {
-        const markdown = this.textarea.value;
-        const doc = defaultMarkdownParser.parse(markdown);
-        const fragment = DOMSerializer.fromSchema(schema).serializeFragment(doc.content);
-        const renderDoc = document.implementation.createHTMLDocument();
-        renderDoc.body.appendChild(fragment);
-        return renderDoc.body.innerHTML;
-    }
-
-    focus() { this.textarea.focus() }
-    destroy() { this.textarea.remove() }
-}
-
-class ProseMirrorView {
-    constructor(target, content) {
-
-        // Build DOM from content
-        const renderDoc = document.implementation.createHTMLDocument();
-        renderDoc.body.innerHTML = content;
-
-        this.view = new EditorView(target, {
-            state: EditorState.create({
-                doc: DOMParser.fromSchema(schema).parse(renderDoc.body),
-                plugins: exampleSetup({schema})
-            })
-        });
-    }
-
-    get content() {
-        const fragment = DOMSerializer.fromSchema(schema).serializeFragment(this.view.state.doc.content);
-        const renderDoc = document.implementation.createHTMLDocument();
-        renderDoc.body.appendChild(fragment);
-        return renderDoc.body.innerHTML;
-    }
-    focus() { this.view.focus() }
-    destroy() { this.view.destroy() }
-}
 
 const place = document.querySelector("#editor");
 let view = new ProseMirrorView(place, document.getElementById('content').innerHTML);