X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/dedc9dee87b60daf3d50828d4c73acfc9baa8ee9..00820b03988a807d1281954479fda6b4669104a9:/edit.js diff --git a/edit.js b/edit.js index 502d2b2..34eb707 100644 --- a/edit.js +++ b/edit.js @@ -3,7 +3,13 @@ CKEDITOR.plugins.add('inlinesave', { editor.addCommand( 'inlinesave', { exec: function (editor) { var pagename = window.location.pathname.replace(/\/$/, '/index'); - var data = 'body='+encodeURIComponent(editor.getData()); + var body = editor.getData().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 + return line.replace(wrap, '$1\n'+indent+'\t'); + }); + var data = 'body='+encodeURIComponent(body); ajaxpost = new XMLHttpRequest(); ajaxpost.open('POST', '/edit'+pagename, true); ajaxpost.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); @@ -48,13 +54,13 @@ CKEDITOR.on('instanceCreated', function (event) { config.entities = false; // keep unicode config.filebrowserImageUploadUrl = '/edit?type=img'; config.forcePasteAsPlainText = true; - config.contentsCss = '/excelsior.css'; + config.contentsCss = document.styleSheets[0].href; config.toolbar = [ - ['Inlinesave', '-', 'ShowBlocks', 'Sourcedialog', '-', 'Undo', 'Redo'], - ['Format'], - ['BulletedList', 'NumberedList', '-', 'Blockquote'], - ['Bold', 'Italic', 'Underline', 'Strike', 'RemoveFormat', '-', 'Anchor', 'Link'], - ['HorizontalRule', 'Table', 'Image', 'CreatePlaceholder'], + ['Inlinesave', '-', 'Undo', 'Redo'], + ['Format', 'BulletedList', 'NumberedList', 'Blockquote'], + ['Bold', 'Italic', 'Link'], + ['HorizontalRule', 'Table', 'Image'], + ['CreatePlaceholder', 'Sourcedialog'], ]; config.toolbarCanCollapse = true; config.floatSpacePreferRight = true; @@ -66,32 +72,19 @@ CKEDITOR.on('instanceCreated', function (event) { }); }); - CKEDITOR.on('instanceReady', function (event) { - var editor = event.editor; - var writer = editor.dataProcessor.writer; - writer.selfClosingEnd = '>'; - writer.setRules( 'p', { - breakAfterOpen: true, - breakBeforeClose: true, - }); - }); - CKEDITOR.disableAutoInline = true; // add edit link to menu var pagebody = document.getElementsByClassName('static')[0]; if (pagebody) { - var editlink = document.createElement('a'); - editlink.style.cursor = 'pointer'; - editlink.appendChild(document.createTextNode('Wijzig')); - editlink.href = '#edit'; + var editlink = document.querySelector('a[href="#edit"]'); 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; @@ -99,6 +92,5 @@ if (pagebody) { if (window.location.hash == '#edit') { editlink.onclick(); } - document.querySelector('header ul').appendChild(editlink); }