paste_convert_headers_to_strong : false,\r
paste_dialog_width : "450",\r
paste_dialog_height : "400",\r
+ paste_max_consecutive_linebreaks: 2,\r
paste_text_use_dialog : false,\r
paste_text_sticky : false,\r
paste_text_sticky_default : false,\r
}\r
\r
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser\r
- if (tinymce.isIE && document.documentMode >= 9) {\r
+ if (tinymce.isIE && document.documentMode >= 9 && /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(o.content)) {\r
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser\r
process([[/(?:<br> [\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br> [\s\r\n]+|<br>)*/g, '$1']]);\r
\r
[/<\/t[dh]>\s*<t[dh][^>]*>/gi, "\t"], // Table cells get tabs betweem them\r
/<[a-z!\/?][^>]*>/gi, // Delete all remaining tags\r
[/ /gi, " "], // Convert non-break spaces to regular spaces (remember, *plain text*)\r
- [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"],// Cool little RegExp deletes whitespace around linebreak chars.\r
- [/\n{3,}/g, "\n\n"] // Max. 2 consecutive linebreaks\r
+ [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"] // Cool little RegExp deletes whitespace around linebreak chars.\r
]);\r
\r
+ var maxLinebreaks = Number(getParam(ed, "paste_max_consecutive_linebreaks"));\r
+ if (maxLinebreaks > -1) {\r
+ var maxLinebreaksRegex = new RegExp("\n{" + (maxLinebreaks + 1) + ",}", "g");\r
+ var linebreakReplacement = "";\r
+\r
+ while (linebreakReplacement.length < maxLinebreaks) {\r
+ linebreakReplacement += "\n";\r
+ }\r
+\r
+ process([\r
+ [maxLinebreaksRegex, linebreakReplacement] // Limit max consecutive linebreaks\r
+ ]);\r
+ }\r
+\r
content = ed.dom.decode(tinymce.html.Entities.encodeRaw(content));\r
\r
// Perform default or custom replacements\r