login/edit: generic multi-values declaration
[minimedit.git] / edit.js
diff --git a/edit.js b/edit.js
index f6df1e546060bc9b040380807162b8e5cd342bc8..a24fee88bd1f1edac13aa3f6c69ed78b9fe8ab67 100644 (file)
--- 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(/<br \/>\s*<br \/>/g, '<p>');
+                               // 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>(\[\[.*\]\])<\/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(/<!--BLOCK:([^-]*)-->[^]*?<!--\/-->/g, '$1');
+                       .replace(/<!--BLOCK:(.*?)-->[^]*?<!--\/-->/g, '$1');
                CKEDITOR.inline(pagebody);
                document.body.className = 'edit';
                return false;