X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=plugins%2Fhtmldataprocessor%2Fplugin.js;h=8bb8c57a27418feeb93abcacc24d76b1e04bff0f;hp=942c1555f78770e5710689117aec80b5bb7572a2;hb=8761695d9b70afe75905deaac88f78c1f8aeb32d;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91 diff --git a/plugins/htmldataprocessor/plugin.js b/plugins/htmldataprocessor/plugin.js index 942c155..8bb8c57 100644 --- a/plugins/htmldataprocessor/plugin.js +++ b/plugins/htmldataprocessor/plugin.js @@ -3,5 +3,5 @@ Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ -(function(){var a=/^[\t\r\n ]*(?: |\xa0)$/,b='{cke_protected}';function c(A,B){var C=A.children,D=C[C.length-1];if(D){if((B||!CKEDITOR.env.ie)&&(D.type==CKEDITOR.NODE_ELEMENT&&D.name=='br'))C.pop();if(D.type==CKEDITOR.NODE_TEXT&&a.test(D.value))C.pop();}};function d(A){if(A.children.length<1)return true;var B=A.children[A.children.length-1];return B.type==CKEDITOR.NODE_ELEMENT&&B.name=='br';};function e(A){c(A,true);if(d(A))if(CKEDITOR.env.ie)A.add(new CKEDITOR.htmlParser.text('\xa0'));else A.add(new CKEDITOR.htmlParser.element('br',{}));};function f(A){c(A);if(d(A))A.add(new CKEDITOR.htmlParser.text('\xa0'));};var g=CKEDITOR.dtd,h=CKEDITOR.tools.extend({},g.$block,g.$listItem,g.$tableContent);for(var i in h)if(!('br' in g[i]))delete h[i];delete h.pre;var j={attributeNames:[[/^on/,'_cke_pa_on']]},k={elements:{}};for(i in h)k.elements[i]=e;var l={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^_cke_(saved|pa)_/,''],[/^_cke.*/,'']],elements:{$:function(A){var B=A.attributes;if(B){var C=['name','href','src'],D;for(var E=0;E]+)))/gi;function o(A){return A.replace(n,'$& _cke_saved_$1');};var p=/<(style)(?=[ >])[^>]*>[^<]*<\/\1>/gi,q=/([^<]*)<\/cke:encoded>/gi,r=/(<\/?)((?:object|embed|param).*?>)/gi,s=//gi;function t(A){return ''+encodeURIComponent(A)+'';};function u(A){return A.replace(p,t);};function v(A){return A.replace(r,'$1cke:$2');};function w(A){return A.replace(s,'');};function x(A,B){return decodeURIComponent(B);};function y(A){return A.replace(q,x);};function z(A,B){var C=[],D=/<\!--\{cke_temp\}(\d*?)-->/g,E=[//g,//gi,//gi].concat(B); -for(var F=0;F';});A=A.replace(D,function(G,H){return '';});return A;};CKEDITOR.plugins.add('htmldataprocessor',{requires:['htmlwriter'],init:function(A){var B=A.dataProcessor=new CKEDITOR.htmlDataProcessor(A);B.writer.forceSimpleAmpersand=A.config.forceSimpleAmpersand;B.dataFilter.addRules(j);B.dataFilter.addRules(k);B.htmlFilter.addRules(l);B.htmlFilter.addRules(m);}});CKEDITOR.htmlDataProcessor=function(A){var B=this;B.editor=A;B.writer=new CKEDITOR.htmlWriter();B.dataFilter=new CKEDITOR.htmlParser.filter();B.htmlFilter=new CKEDITOR.htmlParser.filter();};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(A,B){A=z(A,this.editor.config.protectedSource);A=o(A);if(CKEDITOR.env.ie)A=u(A);A=v(A);A=w(A);var C=document.createElement('div');C.innerHTML='a'+A;A=C.innerHTML.substr(1);if(CKEDITOR.env.ie)A=y(A);var D=CKEDITOR.htmlParser.fragment.fromHtml(A,B),E=new CKEDITOR.htmlParser.basicWriter();D.writeHtml(E,this.dataFilter);return E.getHtml(true);},toDataFormat:function(A,B){var C=this.writer,D=CKEDITOR.htmlParser.fragment.fromHtml(A,B);C.reset();D.writeHtml(C,this.htmlFilter);return C.getHtml(true);}};})();CKEDITOR.config.forceSimpleAmpersand=false; +(function(){var a=/^[\t\r\n ]*(?: |\xa0)$/,b='{cke_protected}';function c(B){var C=B.children.length,D=B.children[C-1];while(D&&D.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(D.value))D=B.children[--C];return D;};function d(B,C){var D=B.children,E=c(B);if(E){if((C||!CKEDITOR.env.ie)&&(E.type==CKEDITOR.NODE_ELEMENT&&E.name=='br'))D.pop();if(E.type==CKEDITOR.NODE_TEXT&&a.test(E.value))D.pop();}};function e(B){var C=c(B);return!C||C.type==CKEDITOR.NODE_ELEMENT&&C.name=='br';};function f(B){d(B,true);if(e(B))if(CKEDITOR.env.ie)B.add(new CKEDITOR.htmlParser.text('\xa0'));else B.add(new CKEDITOR.htmlParser.element('br',{}));};function g(B){d(B);if(e(B))B.add(new CKEDITOR.htmlParser.text('\xa0'));};var h=CKEDITOR.dtd,i=CKEDITOR.tools.extend({},h.$block,h.$listItem,h.$tableContent);for(var j in i)if(!('br' in h[j]))delete i[j];delete i.pre;var k={attributeNames:[[/^on/,'_cke_pa_on']]},l={elements:{}};for(j in i)l.elements[j]=f;var m={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^_cke_(saved|pa)_/,''],[/^_cke.*/,'']],elements:{$:function(B){var C=B.attributes;if(C){var D=['name','href','src'],E;for(var F=0;F]+)))/gi;function p(B){return B.replace(o,'$& _cke_saved_$1');};var q=/<(style)(?=[ >])[^>]*>[^<]*<\/\1>/gi,r=/([^<]*)<\/cke:encoded>/gi,s=/(<\/?)((?:object|embed|param).*?>)/gi,t=//gi;function u(B){return ''+encodeURIComponent(B)+'';};function v(B){return B.replace(q,u);};function w(B){return B.replace(s,'$1cke:$2');};function x(B){return B.replace(t,'');};function y(B,C){return decodeURIComponent(C);};function z(B){return B.replace(r,y); +};function A(B,C){var D=[],E=/<\!--\{cke_temp\}(\d*?)-->/g,F=[//g,//gi,//gi].concat(C);for(var G=0;G';});B=B.replace(E,function(H,I){return '';});return B;};CKEDITOR.plugins.add('htmldataprocessor',{requires:['htmlwriter'],init:function(B){var C=B.dataProcessor=new CKEDITOR.htmlDataProcessor(B);C.writer.forceSimpleAmpersand=B.config.forceSimpleAmpersand;C.dataFilter.addRules(k);C.dataFilter.addRules(l);C.htmlFilter.addRules(m);C.htmlFilter.addRules(n);}});CKEDITOR.htmlDataProcessor=function(B){var C=this;C.editor=B;C.writer=new CKEDITOR.htmlWriter();C.dataFilter=new CKEDITOR.htmlParser.filter();C.htmlFilter=new CKEDITOR.htmlParser.filter();};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(B,C){B=A(B,this.editor.config.protectedSource);B=p(B);if(CKEDITOR.env.ie)B=v(B);B=w(B);B=x(B);var D=document.createElement('div');D.innerHTML='a'+B;B=D.innerHTML.substr(1);if(CKEDITOR.env.ie)B=z(B);var E=CKEDITOR.htmlParser.fragment.fromHtml(B,C),F=new CKEDITOR.htmlParser.basicWriter();E.writeHtml(F,this.dataFilter);return F.getHtml(true);},toDataFormat:function(B,C){var D=this.writer,E=CKEDITOR.htmlParser.fragment.fromHtml(B,C);D.reset();E.writeHtml(D,this.htmlFilter);return D.getHtml(true);}};})();CKEDITOR.config.forceSimpleAmpersand=false;