From 8295aa6a5a73520642cd0fb8adaa142d6928fa25 Mon Sep 17 00:00:00 2001 From: Lennart Vogelsang Date: Tue, 7 Jun 2022 19:55:27 +0200 Subject: [PATCH 1/2] Changed: ignore output of previewRender if it is null --- src/js/easymde.js | 12 ++++++++++-- types/easymde.d.ts | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index 8d44e1f..4ad8077 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -1124,7 +1124,11 @@ function togglePreview(editor) { toolbar_div.className += ' disabled-for-preview'; } } - preview.innerHTML = editor.options.previewRender(editor.value(), preview); + + var preview_result = editor.options.previewRender(editor.value(), preview); + if (preview_result !== null) { + preview.innerHTML = preview_result; + } } @@ -2849,7 +2853,11 @@ EasyMDE.prototype.value = function (val) { if (this.isPreviewActive()) { var wrapper = cm.getWrapperElement(); var preview = wrapper.lastChild; - preview.innerHTML = this.options.previewRender(val, preview); + var preview_result = this.options.previewRender(val, preview); + if (preview_result !== null) { + preview.innerHTML = preview_result; + } + } return this; } diff --git a/types/easymde.d.ts b/types/easymde.d.ts index b153634..d751c2b 100644 --- a/types/easymde.d.ts +++ b/types/easymde.d.ts @@ -196,7 +196,7 @@ declare namespace EasyMDE { previewClass?: string | ReadonlyArray; previewImagesInEditor?: boolean; imagesPreviewHandler?: (src: string) => string, - previewRender?: (markdownPlaintext: string, previewElement: HTMLElement) => string; + previewRender?: (markdownPlaintext: string, previewElement: HTMLElement) => string | null; promptURLs?: boolean; renderingConfig?: RenderingOptions; shortcuts?: Shortcuts; From 67f75535adc7b8814f79910f5dcbd34f6171e789 Mon Sep 17 00:00:00 2001 From: Lennart Vogelsang Date: Tue, 7 Jun 2022 20:11:27 +0200 Subject: [PATCH 2/2] Updated documentation --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 208e940..b66e42f 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,11 @@ const editor = new EasyMDE({ preview.innerHTML = customMarkdownParser(plainText); }, 250); + // If you return null, the innerHTML of the preview will not + // be overwritten. Useful if you control the preview node's content via + // vdom diffing. + // return null; + return "Loading..."; }, promptURLs: true,