// empty line is equivalent to a paragraph break
body = body.replace(/<br \/>\s*<br \/>/g, '<p>');
// keep names and preceding abbreviations together
- body = body.replace(/\b((?:dhr|mw|me?vr|mr?s?)\.)\s+(?=[A-Z])/ig, '$1 ');
+ body = body.replace(/\b((?:[Dd]hr|[Mm](?:w|e?vr|r|r?ss?)|[A-Z])\.)\s+(?=[A-Zdtv])/g, '$1 ');
// wrap long line after each sentence
body = body.replace(/^(\t*).{73,}/mg, function (line, indent) {
+ if (/^<meta /.test(line)) return line; // ignore metadata headers
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');
ajaxpost.send(data);
},
});
- editor.setKeystroke(CKEDITOR.CTRL + 83 /*S*/, 'inlinesave');
+ editor.setKeystroke(CKEDITOR.CTRL + 'S'.charCodeAt(0), 'inlinesave');
editor.ui.addButton( 'Inlinesave', {
command: 'inlinesave',
label: editor.lang.save.toolbar,
var config = editor.config;
config.language = 'nl';
config.extraPlugins = 'inlinesave,placeholder,image2,uploadimage';
- config.allowedContent = true;
+ config.removePlugins = 'image,exportpdf'; // conflicts with imag2
+ config.allowedContent = {
+ $1: {
+ elements: CKEDITOR.dtd,
+ attributes: true,
+ styles: true,
+ classes: true,
+ },
+ };
+ config.disallowedContent = 'img[width,height]';
config.entities = false; // keep unicode
config.filebrowserImageUploadUrl = '/edit/page?output=ckjson';
config.image2_alignClasses = ['left', 'center', 'right'];
+ config.image2_prefillDimensions = false;
config.image2_disableResizer = true;
config.stylesSet = [
{ name: 'Paginakop', element: 'h2' },
var ckesrc = document.currentScript.getAttribute('data-ckesrc');
document.addEventListener('DOMContentLoaded', function (e) {
- pagebody = editorcontents().cloneNode(true);
+ pagebody = editorcontents();
+ if (!pagebody) return;
+ pagebody = pagebody.cloneNode(true);
var editorinc = document.createElement('script');
editorinc.addEventListener('load', editorsetup);
editorinc.src = ckesrc;