]> BookStack Code Mirror - bookstack/blob - resources/js/editor/MarkdownView.js
Started work on details/summary blocks
[bookstack] / resources / js / editor / MarkdownView.js
1 import {htmlToDoc, docToHtml} from "./util";
2
3 import parser from "./markdown-parser";
4 import serializer from "./markdown-serializer";
5
6 class MarkdownView {
7     constructor(target, content) {
8         // Build DOM from content
9         const htmlDoc = htmlToDoc(content);
10         const markdown = serializer.serialize(htmlDoc);
11
12         this.textarea = target.appendChild(document.createElement("textarea"))
13         this.textarea.value = markdown;
14         this.textarea.style.width = '1000px';
15         this.textarea.style.height = '1000px';
16     }
17
18     get content() {
19         const markdown = this.textarea.value;
20         const doc = parser.parse(markdown);
21         return docToHtml(doc);
22     }
23
24     focus() { this.textarea.focus() }
25     destroy() { this.textarea.remove() }
26 }
27
28 export default MarkdownView;