Skip to content

Commit

Permalink
Merge pull request Ionaru#471 from LevitatingOrange/detachedPreviewRe…
Browse files Browse the repository at this point in the history
…ndering
  • Loading branch information
Ionaru committed Aug 20, 2022
2 parents c27f5d1 + 67f7553 commit b4c55d9
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,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,
Expand Down
12 changes: 10 additions & 2 deletions src/js/easymde.js
Original file line number Diff line number Diff line change
Expand Up @@ -1072,7 +1072,11 @@ function togglePreview(editor) {
toolbar_div.classList.add('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;
}

}

Expand Down Expand Up @@ -2860,7 +2864,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;
}
Expand Down
2 changes: 1 addition & 1 deletion types/easymde.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ declare namespace EasyMDE {
previewClass?: string | ReadonlyArray<string>;
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;
Expand Down

0 comments on commit b4c55d9

Please sign in to comment.