From 595d6ea3b6d663080448085cc2b0c9473388bc37 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 22 Jan 2020 23:10:02 +0000 Subject: Use server-side markdown renderer in WYSIWYG preview Fixes #117 --- app/public/static/markdowntextarea.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 app/public/static/markdowntextarea.js (limited to 'app/public/static') diff --git a/app/public/static/markdowntextarea.js b/app/public/static/markdowntextarea.js new file mode 100644 index 0000000..c2ba345 --- /dev/null +++ b/app/public/static/markdowntextarea.js @@ -0,0 +1,34 @@ +$("textarea.markdown").each(function() { + async function render(plainText, preview) { + const response = await fetch(new Request("/api/markdown/", { + method: "POST", + credentials: "same-origin", + body: plainText, + headers: { + "Accept": "text/html; charset=UTF-8", + }, + })); + + preview.innerHTML = await response.text(); + } + + let timeout_id = null; + + new EasyMDE({ + element: this, + hideIcons: ["image"], + forceSync: true, + previewRender: (plainText, preview) => { + if (timeout_id) { + clearTimeout(timeout_id); + } + + timeout_id = setTimeout(() => { + render(plainText, preview); + timeout_id = null; + }, 500); + + return preview.innerHTML; + } + }); +}) -- cgit v1.2.3