Use Ajax request for Markdown preview

This remove dependency on a Javascript library.
This commit is contained in:
Franky Van Liedekerke
2020-05-02 05:05:53 +02:00
committed by GitHub
parent 6a0b6a8672
commit 0ede384cda
10 changed files with 31 additions and 444 deletions

View File

@@ -268,7 +268,7 @@ if(options.required){textareaElement.attr('required','required')}
var textWrapper=KB.dom(containerElement).find('script');textareaElement.html(textWrapper.innerHTML);if(options.placeholder){textareaElement.attr('placeholder',options.placeholder)}
textarea=textareaElement.build();if(options.suggestOptions){KB.getComponent('suggest-menu',textarea,options.suggestOptions).render()}
return KB.dom('div').attr('class','text-editor-write-mode').add(toolbarElement).add(textarea).build()}
function toggleViewMode(){var str=textarea.value;str=str.replace(/(?:\r\n|\r|\n)/g,'<br>\n');KB.dom(previewElement).html(marked(DOMPurify.sanitize(str)));KB.dom(viewModeElement).toggle();KB.dom(writeModeElement).toggle()}
function toggleViewMode(){$.ajax({cache:!1,type:'POST',url:options.previewUrl,data:{'text':textarea.value},success:function(data){KB.dom(previewElement).html(data)}});KB.dom(viewModeElement).toggle();KB.dom(writeModeElement).toggle()}
function getSelectedText(){return textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)}
function replaceTextRange(s,start,end,substitute){return s.substring(0,start)+substitute+s.substring(end)}
function insertEnclosedTag(tag){var selectedText=getSelectedText();insertText(tag+selectedText+tag);setCursorBeforeClosingTag(tag)}

View File

@@ -84,9 +84,16 @@ KB.component('text-editor', function (containerElement, options) {
}
function toggleViewMode() {
var str=textarea.value;
str = str.replace(/(?:\r\n|\r|\n)/g, '<br>\n');
KB.dom(previewElement).html(marked(DOMPurify.sanitize(str)));
$.ajax({
cache: false,
type: 'POST',
url: options.previewUrl,
data: { 'text': textarea.value},
success: function(data) {
KB.dom(previewElement).html(data);
}
});
KB.dom(viewModeElement).toggle();
KB.dom(writeModeElement).toggle();
}

File diff suppressed because one or more lines are too long