JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-4.0_full
[ckeditor.git] / _source / plugins / htmlwriter / plugin.js
diff --git a/_source/plugins/htmlwriter/plugin.js b/_source/plugins/htmlwriter/plugin.js
deleted file mode 100644 (file)
index 7ca2919..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-/*\r
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-\r
-CKEDITOR.plugins.add( 'htmlwriter' );\r
-\r
-/**\r
- * Class used to write HTML data.\r
- * @constructor\r
- * @example\r
- * var writer = new CKEDITOR.htmlWriter();\r
- * writer.openTag( 'p' );\r
- * writer.attribute( 'class', 'MyClass' );\r
- * writer.openTagClose( 'p' );\r
- * writer.text( 'Hello' );\r
- * writer.closeTag( 'p' );\r
- * alert( writer.getHtml() );  "<p class="MyClass">Hello</p>"\r
- */\r
-CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(\r
-{\r
-       base : CKEDITOR.htmlParser.basicWriter,\r
-\r
-       $ : function()\r
-       {\r
-               // Call the base contructor.\r
-               this.base();\r
-\r
-               /**\r
-                * The characters to be used for each identation step.\r
-                * @type String\r
-                * @default "\t" (tab)\r
-                * @example\r
-                * // Use two spaces for indentation.\r
-                * editorInstance.dataProcessor.writer.indentationChars = '  ';\r
-                */\r
-               this.indentationChars = '\t';\r
-\r
-               /**\r
-                * The characters to be used to close "self-closing" elements, like "br" or\r
-                * "img".\r
-                * @type String\r
-                * @default " />"\r
-                * @example\r
-                * // Use HTML4 notation for self-closing elements.\r
-                * editorInstance.dataProcessor.writer.selfClosingEnd = '>';\r
-                */\r
-               this.selfClosingEnd = ' />';\r
-\r
-               /**\r
-                * The characters to be used for line breaks.\r
-                * @type String\r
-                * @default "\n" (LF)\r
-                * @example\r
-                * // Use CRLF for line breaks.\r
-                * editorInstance.dataProcessor.writer.lineBreakChars = '\r\n';\r
-                */\r
-               this.lineBreakChars = '\n';\r
-\r
-               this.forceSimpleAmpersand = 0;\r
-\r
-               this.sortAttributes = 1;\r
-\r
-               this._.indent = 0;\r
-               this._.indentation = '';\r
-               // Indicate preformatted block context status. (#5789)\r
-               this._.inPre = 0;\r
-               this._.rules = {};\r
-\r
-               var dtd = CKEDITOR.dtd;\r
-\r
-               for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )\r
-               {\r
-                       this.setRules( e,\r
-                               {\r
-                                       indent : 1,\r
-                                       breakBeforeOpen : 1,\r
-                                       breakAfterOpen : 1,\r
-                                       breakBeforeClose : !dtd[ e ][ '#' ],\r
-                                       breakAfterClose : 1\r
-                               });\r
-               }\r
-\r
-               this.setRules( 'br',\r
-                       {\r
-                               breakAfterOpen : 1\r
-                       });\r
-\r
-               this.setRules( 'title',\r
-                       {\r
-                               indent : 0,\r
-                               breakAfterOpen : 0\r
-                       });\r
-\r
-               this.setRules( 'style',\r
-                       {\r
-                               indent : 0,\r
-                               breakBeforeClose : 1\r
-                       });\r
-\r
-               // Disable indentation on <pre>.\r
-               this.setRules( 'pre',\r
-                       {\r
-                         indent : 0\r
-                       });\r
-       },\r
-\r
-       proto :\r
-       {\r
-               /**\r
-                * Writes the tag opening part for a opener tag.\r
-                * @param {String} tagName The element name for this tag.\r
-                * @param {Object} attributes The attributes defined for this tag. The\r
-                *              attributes could be used to inspect the tag.\r
-                * @example\r
-                * // Writes "&lt;p".\r
-                * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );\r
-                */\r
-               openTag : function( tagName, attributes )\r
-               {\r
-                       var rules = this._.rules[ tagName ];\r
-\r
-                       if ( this._.indent )\r
-                               this.indentation();\r
-                       // Do not break if indenting.\r
-                       else if ( rules && rules.breakBeforeOpen )\r
-                       {\r
-                               this.lineBreak();\r
-                               this.indentation();\r
-                       }\r
-\r
-                       this._.output.push( '<', tagName );\r
-               },\r
-\r
-               /**\r
-                * Writes the tag closing part for a opener tag.\r
-                * @param {String} tagName The element name for this tag.\r
-                * @param {Boolean} isSelfClose Indicates that this is a self-closing tag,\r
-                *              like "br" or "img".\r
-                * @example\r
-                * // Writes "&gt;".\r
-                * writer.openTagClose( 'p', false );\r
-                * @example\r
-                * // Writes " /&gt;".\r
-                * writer.openTagClose( 'br', true );\r
-                */\r
-               openTagClose : function( tagName, isSelfClose )\r
-               {\r
-                       var rules = this._.rules[ tagName ];\r
-\r
-                       if ( isSelfClose )\r
-                               this._.output.push( this.selfClosingEnd );\r
-                       else\r
-                       {\r
-                               this._.output.push( '>' );\r
-\r
-                               if ( rules && rules.indent )\r
-                                       this._.indentation += this.indentationChars;\r
-                       }\r
-\r
-                       if ( rules && rules.breakAfterOpen )\r
-                               this.lineBreak();\r
-                       tagName == 'pre' && ( this._.inPre = 1 );\r
-               },\r
-\r
-               /**\r
-                * Writes an attribute. This function should be called after opening the\r
-                * tag with {@link #openTagClose}.\r
-                * @param {String} attName The attribute name.\r
-                * @param {String} attValue The attribute value.\r
-                * @example\r
-                * // Writes ' class="MyClass"'.\r
-                * writer.attribute( 'class', 'MyClass' );\r
-                */\r
-               attribute : function( attName, attValue )\r
-               {\r
-\r
-                       if ( typeof attValue == 'string' )\r
-                       {\r
-                               this.forceSimpleAmpersand && ( attValue = attValue.replace( /&amp;/g, '&' ) );\r
-                               // Browsers don't always escape special character in attribute values. (#4683, #4719).\r
-                               attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );\r
-                       }\r
-\r
-                       this._.output.push( ' ', attName, '="', attValue, '"' );\r
-               },\r
-\r
-               /**\r
-                * Writes a closer tag.\r
-                * @param {String} tagName The element name for this tag.\r
-                * @example\r
-                * // Writes "&lt;/p&gt;".\r
-                * writer.closeTag( 'p' );\r
-                */\r
-               closeTag : function( tagName )\r
-               {\r
-                       var rules = this._.rules[ tagName ];\r
-\r
-                       if ( rules && rules.indent )\r
-                               this._.indentation = this._.indentation.substr( this.indentationChars.length );\r
-\r
-                       if ( this._.indent )\r
-                               this.indentation();\r
-                       // Do not break if indenting.\r
-                       else if ( rules && rules.breakBeforeClose )\r
-                       {\r
-                               this.lineBreak();\r
-                               this.indentation();\r
-                       }\r
-\r
-                       this._.output.push( '</', tagName, '>' );\r
-                       tagName == 'pre' && ( this._.inPre = 0 );\r
-\r
-                       if ( rules && rules.breakAfterClose )\r
-                               this.lineBreak();\r
-               },\r
-\r
-               /**\r
-                * Writes text.\r
-                * @param {String} text The text value\r
-                * @example\r
-                * // Writes "Hello Word".\r
-                * writer.text( 'Hello Word' );\r
-                */\r
-               text : function( text )\r
-               {\r
-                       if ( this._.indent )\r
-                       {\r
-                               this.indentation();\r
-                               !this._.inPre  && ( text = CKEDITOR.tools.ltrim( text ) );\r
-                       }\r
-\r
-                       this._.output.push( text );\r
-               },\r
-\r
-               /**\r
-                * Writes a comment.\r
-                * @param {String} comment The comment text.\r
-                * @example\r
-                * // Writes "&lt;!-- My comment --&gt;".\r
-                * writer.comment( ' My comment ' );\r
-                */\r
-               comment : function( comment )\r
-               {\r
-                       if ( this._.indent )\r
-                               this.indentation();\r
-\r
-                       this._.output.push( '<!--', comment, '-->' );\r
-               },\r
-\r
-               /**\r
-                * Writes a line break. It uses the {@link #lineBreakChars} property for it.\r
-                * @example\r
-                * // Writes "\n" (e.g.).\r
-                * writer.lineBreak();\r
-                */\r
-               lineBreak : function()\r
-               {\r
-                       if ( !this._.inPre && this._.output.length > 0 )\r
-                               this._.output.push( this.lineBreakChars );\r
-                       this._.indent = 1;\r
-               },\r
-\r
-               /**\r
-                * Writes the current indentation chars. It uses the\r
-                * {@link #indentationChars} property, repeating it for the current\r
-                * indentation steps.\r
-                * @example\r
-                * // Writes "\t" (e.g.).\r
-                * writer.indentation();\r
-                */\r
-               indentation : function()\r
-               {\r
-                       if( !this._.inPre )\r
-                               this._.output.push( this._.indentation );\r
-                       this._.indent = 0;\r
-               },\r
-\r
-               /**\r
-                * Sets formatting rules for a give element. The possible rules are:\r
-                * <ul>\r
-                *      <li><b>indent</b>: indent the element contents.</li>\r
-                *      <li><b>breakBeforeOpen</b>: break line before the opener tag for this element.</li>\r
-                *      <li><b>breakAfterOpen</b>: break line after the opener tag for this element.</li>\r
-                *      <li><b>breakBeforeClose</b>: break line before the closer tag for this element.</li>\r
-                *      <li><b>breakAfterClose</b>: break line after the closer tag for this element.</li>\r
-                * </ul>\r
-                *\r
-                * All rules default to "false". Each call to the function overrides\r
-                * already present rules, leaving the undefined untouched.\r
-                *\r
-                * By default, all elements available in the {@link CKEDITOR.dtd.$block),\r
-                * {@link CKEDITOR.dtd.$listItem} and {@link CKEDITOR.dtd.$tableContent}\r
-                * lists have all the above rules set to "true". Additionaly, the "br"\r
-                * element has the "breakAfterOpen" set to "true".\r
-                * @param {String} tagName The element name to which set the rules.\r
-                * @param {Object} rules An object containing the element rules.\r
-                * @example\r
-                * // Break line before and after "img" tags.\r
-                * writer.setRules( 'img',\r
-                *     {\r
-                *         breakBeforeOpen : true\r
-                *         breakAfterOpen : true\r
-                *     });\r
-                * @example\r
-                * // Reset the rules for the "h1" tag.\r
-                * writer.setRules( 'h1', {} );\r
-                */\r
-               setRules : function( tagName, rules )\r
-               {\r
-                       var currentRules = this._.rules[ tagName ];\r
-\r
-                       if ( currentRules )\r
-                               CKEDITOR.tools.extend( currentRules, rules, true );\r
-                       else\r
-                               this._.rules[ tagName ] = rules;\r
-               }\r
-       }\r
-});\r