]> BookStack Code Mirror - bookstack/blob - resources/js/editor/MarkdownView.js
f952c8606e99453e367ca4f0f38c3eecadd915e0
[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     }
15
16     get content() {
17         const markdown = this.textarea.value;
18         const doc = parser.parse(markdown);
19         return docToHtml(doc);
20     }
21
22     focus() { this.textarea.focus() }
23     destroy() { this.textarea.remove() }
24 }
25
26 export default MarkdownView;