]> git.mxchange.org Git - friendica.git/blobdiff - library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js
Merge pull request #592 from fermionic/20130126-richtext-feature-fixes
[friendica.git] / library / tinymce / jscripts / tiny_mce / plugins / paste / editor_plugin_src.js
index 73fe7fe9a40abe31e9ec11bcc61525ddf144735a..0154eceb58c0f87f00cd5e613c3d8de2e14f62a1 100644 (file)
@@ -23,6 +23,7 @@
                        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>&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']]);\r
 \r
                                        [/<\/t[dh]>\s*<t[dh][^>]*>/gi, "\t"],           // Table cells get tabs betweem them\r
                                        /<[a-z!\/?][^>]*>/gi,                                           // Delete all remaining tags\r
                                        [/&nbsp;/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