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);
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;