]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/paste/editor_plugin_src.js
Wordpress 3.5
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / paste / editor_plugin_src.js
index cec4abf98727acd1f6c924e1ecad15e02d54e13a..c8230e9c9b789d386d10f9cae7ffd32bf2823321 100644 (file)
@@ -23,6 +23,7 @@
                        paste_convert_headers_to_strong : false,
                        paste_dialog_width : "450",
                        paste_dialog_height : "400",
+                       paste_max_consecutive_linebreaks: 2,
                        paste_text_use_dialog : false,
                        paste_text_sticky : false,
                        paste_text_sticky_default : false,
                        }
 
                        // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
-                       if (tinymce.isIE && document.documentMode >= 9) {
+                       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)) {
                                // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
                                process([[/(?:<br>&nbsp;[\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>&nbsp;[\s\r\n]+|<br>)*/g, '$1']]);
 
                                        [/<\/t[dh]>\s*<t[dh][^>]*>/gi, "\t"],           // Table cells get tabs betweem them
                                        /<[a-z!\/?][^>]*>/gi,                                           // Delete all remaining tags
                                        [/&nbsp;/gi, " "],                                                      // Convert non-break spaces to regular spaces (remember, *plain text*)
-                                       [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"],// Cool little RegExp deletes whitespace around linebreak chars.
-                                       [/\n{3,}/g, "\n\n"]                                                     // Max. 2 consecutive linebreaks
+                                       [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"] // Cool little RegExp deletes whitespace around linebreak chars.
                                ]);
 
+                               var maxLinebreaks = Number(getParam(ed, "paste_max_consecutive_linebreaks"));
+                               if (maxLinebreaks > -1) {
+                                       var maxLinebreaksRegex = new RegExp("\n{" + (maxLinebreaks + 1) + ",}", "g");
+                                       var linebreakReplacement = "";
+
+                                       while (linebreakReplacement.length < maxLinebreaks) {
+                                               linebreakReplacement += "\n";
+                                       }
+
+                                       process([
+                                               [maxLinebreaksRegex, linebreakReplacement] // Limit max consecutive linebreaks
+                                       ]);
+                               }
+
                                content = ed.dom.decode(tinymce.html.Entities.encodeRaw(content));
 
                                // Perform default or custom replacements