From 12b6085865e1e3c7f8e31b31968997d2713cbb02 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Mon, 3 Feb 2014 20:26:12 +0000 Subject: [PATCH] TinyMCE: don't replace with and with and don't remove them when empty, see #24067, see #23037. Built from https://develop.svn.wordpress.org/trunk@27083 git-svn-id: http://core.svn.wordpress.org/trunk@26956 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../js/tinymce/plugins/wordpress/plugin.js | 5 +++++ .../tinymce/plugins/wordpress/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 119068 -> 119132 bytes 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.js index 670a59c1e8..4eb4f7423b 100644 --- a/wp-includes/js/tinymce/plugins/wordpress/plugin.js +++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.js @@ -348,6 +348,11 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) { } }); + editor.on( 'preInit', function() { + // Don't replace with and with and don't remove them when empty + editor.schema.addValidElements( '@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b' ); + }); + // Add custom shortcuts modKey = 'alt+shift'; diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js index 514b82635c..2fb58316a9 100644 --- a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","1"),g&&g.active(!1)):(setUserSetting("hidetb","0"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''+b+''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this}}),a.on("PostRender",function(){"1"===getUserSetting("hidetb","1")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("/g,function(a,b){return''})),-1!==a.content.indexOf("")&&(a.content=a.content.replace(//g,'')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf("mce-wp-nextpage")&&(a="")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.on("PreProcess",function(b){var c;b.save&&(c=a.dom.select("img.wp-more-tag",b.node),c.length&&tinymce.each(c,function(b){var c,d=b.parentNode;"P"===d.nodeName&&d.childNodes.length>1&&(c=a.dom.create("p"),d.parentNode.insertBefore(c,d),c.appendChild(b))}))}),a.addCommand("WP_More",function(b){var c,d,e,f,g,h="wp-more-tag",i=tinymce.Env.ie?"":'
',j=a.dom,k=a.selection.getNode();return b=b||"more",h+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='',"BODY"===k.nodeName?void a.insertContent("

"+d+"

"):(c=j.getParent(k,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&(f=j.create("p",null,d),j.insertAfter(f,c),(g=f.nextSibling)||(g=j.create("p",null,i),j.insertAfter(g,f)),a.nodeChanged(),a.selection.setCursorLocation(g,0))))}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Help",cmd:"WP_Help"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getBody();"rtl"===a.getParam("directionality")&&c.push("rtl"),b.ie&&(9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7")),c.push("wp-editor"),tinymce.each(c,function(b){b&&a.dom.addClass(d,b)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a])}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/

(
|\u00a0|\uFEFF)?<\/p>/g,"

 

"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof switchEditors&&(b.content=switchEditors.pre_wpautop(b.content))))}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+a","","WP_Link"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file +tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","1"),g&&g.active(!1)):(setUserSetting("hidetb","0"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''+b+''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this}}),a.on("PostRender",function(){"1"===getUserSetting("hidetb","1")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("/g,function(a,b){return''})),-1!==a.content.indexOf("")&&(a.content=a.content.replace(//g,'')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf("mce-wp-nextpage")&&(a="")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.on("PreProcess",function(b){var c;b.save&&(c=a.dom.select("img.wp-more-tag",b.node),c.length&&tinymce.each(c,function(b){var c,d=b.parentNode;"P"===d.nodeName&&d.childNodes.length>1&&(c=a.dom.create("p"),d.parentNode.insertBefore(c,d),c.appendChild(b))}))}),a.addCommand("WP_More",function(b){var c,d,e,f,g,h="wp-more-tag",i=tinymce.Env.ie?"":'
',j=a.dom,k=a.selection.getNode();return b=b||"more",h+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='',"BODY"===k.nodeName?void a.insertContent("

"+d+"

"):(c=j.getParent(k,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&(f=j.create("p",null,d),j.insertAfter(f,c),(g=f.nextSibling)||(g=j.create("p",null,i),j.insertAfter(g,f)),a.nodeChanged(),a.selection.setCursorLocation(g,0))))}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Help",cmd:"WP_Help"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getBody();"rtl"===a.getParam("directionality")&&c.push("rtl"),b.ie&&(9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7")),c.push("wp-editor"),tinymce.each(c,function(b){b&&a.dom.addClass(d,b)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a])}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/

(
|\u00a0|\uFEFF)?<\/p>/g,"

 

"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof switchEditors&&(b.content=switchEditors.pre_wpautop(b.content))))}),a.on("preInit",function(){a.schema.addValidElements("@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b")}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+a","","WP_Link"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 868355a433a5c8fa94d519efe96cb15c1d08d837..7ba342354ae67b9ee4fbca865ce40cc7ad29bf52 100644 GIT binary patch delta 4636 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