Monotone-Parent: dbd490c81ea6cac4c12b2e17661e2fef43219e68 Monotone-Revision: 0801dc9f1e4fdc49ea44fc0450fb025c2639ed26 Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-06-25T19:18:02 Monotone-Branch: ca.inverse.sogo
7 lines
2 KiB
JavaScript
7 lines
2 KiB
JavaScript
/*
|
|
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
|
For licensing, see LICENSE.html or http://ckeditor.com/license
|
|
*/
|
|
|
|
CKEDITOR.plugins.add('htmlwriter');CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,$:function(){var c=this;c.base();c.indentationChars='\t';c.selfClosingEnd=' />';c.lineBreakChars='\n';c.forceSimpleAmpersand=false;c.sortAttributes=true;c._.indent=false;c._.indentation='';c._.rules={};var a=CKEDITOR.dtd;for(var b in CKEDITOR.tools.extend({},a.$block,a.$listItem,a.$tableContent))c.setRules(b,{indent:true,breakBeforeOpen:true,breakAfterOpen:true,breakBeforeClose:!a[b]['#'],breakAfterClose:true});c.setRules('br',{breakAfterOpen:true});c.setRules('pre',{indent:false});},proto:{openTag:function(a,b){var d=this;var c=d._.rules[a];if(d._.indent)d.indentation();else if(c&&c.breakBeforeOpen){d.lineBreak();d.indentation();}d._.output.push('<',a);},openTagClose:function(a,b){var d=this;var c=d._.rules[a];if(b)d._.output.push(d.selfClosingEnd);else{d._.output.push('>');if(c&&c.indent)d._.indentation+=d.indentationChars;}if(c&&c.breakAfterOpen)d.lineBreak();},attribute:function(a,b){if(this.forceSimpleAmpersand)b=b.replace(/&/,'&');this._.output.push(' ',a,'="',b,'"');},closeTag:function(a){var c=this;var b=c._.rules[a];if(b&&b.indent)c._.indentation=c._.indentation.substr(c.indentationChars.length);if(c._.indent)c.indentation();else if(b&&b.breakBeforeClose){c.lineBreak();c.indentation();}c._.output.push('</',a,'>');if(b&&b.breakAfterClose)c.lineBreak();},text:function(a){if(this._.indent){this.indentation();a=CKEDITOR.tools.ltrim(a);}this._.output.push(a);},comment:function(a){if(this._.indent)this.indentation();this._.output.push('<!--',a,'-->');},lineBreak:function(){var a=this;if(a._.output.length>0)a._.output.push(a.lineBreakChars);a._.indent=true;},indentation:function(){this._.output.push(this._.indentation);this._.indent=false;},setRules:function(a,b){this._.rules[a]=b;}}});
|