diff --git a/aqt/editor.py b/aqt/editor.py index 384f62a6a..2ed5db333 100644 --- a/aqt/editor.py +++ b/aqt/editor.py @@ -123,20 +123,19 @@ function saveField(type) { clearChangeTimer(); }; +function wrappedExceptForWhitespace(text, front, back) { + var match = text.match(/^(\s*)([^]*?)(\s*)$/); + return match[1] + front + match[2] + back + match[3]; +}; + function wrap(front, back) { setFormat('removeFormat', null, true); var s = window.getSelection(); var r = s.getRangeAt(0); - var content = r.extractContents(); + var content = r.cloneContents(); var span = document.createElement("span") span.appendChild(content); - s.removeAllRanges(); - s.addRange(r); - var new_ = front + span.innerHTML + back; - var f = currentField.innerHTML; - if (f.length && f[f.length-1] === " ") { - new_ = " " + new_; - } + var new_ = wrappedExceptForWhitespace(span.innerHTML, front, back); setFormat('inserthtml', new_); };