X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/a92a5dd241cdcf08d3378a393a54d0a24a07b48e..v3.4-14-g970fb1d1b9:/edit.js diff --git a/edit.js b/edit.js index f6df1e5..a24fee8 100644 --- a/edit.js +++ b/edit.js @@ -4,13 +4,17 @@ CKEDITOR.plugins.add('inlinesave', { exec: function (editor) { var pagename = window.location.pathname.replace(/\/$/, '/index'); var body = editor.getData(); + // empty line is equivalent to a paragraph break body = body.replace(/
\s*
/g, '

'); + // wrap long line after each sentence body = body.replace(/^(\t*).{73,}/mg, function (line, indent) { - // wrap long line after each sentence var dots = '(?:.{24,72}|.{73,}?)'; // chars before punctuation - var wrap = new RegExp('('+dots+'[.;:!?]) (?=[A-Z(<])', 'g'); // separate lines + var wrap = new RegExp('('+dots+'[.:!?]) (?=[A-Z(<])', 'g'); // separate lines return line.replace(wrap, '$1\n'+indent+'\t'); }); + // treat standalone placeholders as block elements + body = body.replace(/

(\[\[.*\]\])<\/p>/g, '$1'); + var data = 'body='+encodeURIComponent(body); ajaxpost = new XMLHttpRequest(); ajaxpost.open('POST', '/edit'+pagename, true); @@ -115,13 +119,14 @@ CKEDITOR.on('instanceCreated', function (event) { var pagebody = document.getElementsByClassName('static')[0]; if (pagebody) { var editlink = document.querySelector('a[href="#edit"]'); + if (editlink) editlink.onclick = function (e) { editlink.style.fontWeight = 'bold'; editlink.href = ''; editlink.onclick = undefined; pagebody.setAttribute('contenteditable', true); pagebody.innerHTML = pagebody.innerHTML - .replace(/[^]*?/g, '$1'); + .replace(/[^]*?/g, '$1'); CKEDITOR.inline(pagebody); document.body.className = 'edit'; return false;