JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.1
[ckeditor.git] / _source / plugins / htmlwriter / plugin.js
index c0dea03..5c4a7be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -67,7 +67,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
 \r
                var dtd = CKEDITOR.dtd;\r
 \r
-               for ( var e in CKEDITOR.tools.extend( {}, dtd.$block, dtd.$listItem, dtd.$tableContent ) )\r
+               for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )\r
                {\r
                        this.setRules( e,\r
                                {\r
@@ -78,15 +78,29 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                                        breakAfterClose : true\r
                                });\r
                }\r
+\r
                this.setRules( 'br',\r
                        {\r
                                breakAfterOpen : true\r
                        });\r
+\r
+               this.setRules( 'title',\r
+                       {\r
+                               indent : false,\r
+                               breakAfterOpen : false\r
+                       });\r
+\r
+               this.setRules( 'style',\r
+                       {\r
+                               indent : false,\r
+                               breakBeforeClose : true\r
+                       });\r
+\r
                // Disable indentation on <pre>.\r
                this.setRules( 'pre',\r
-               {\r
-                 indent: false\r
-               } );\r
+                       {\r
+                         indent: false\r
+                       });\r
        },\r
 \r
        proto :\r
@@ -262,7 +276,8 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                 *      <li><b>breakAfterClose</b>: break line after the closer tag for this element.</li>\r
                 * </ul>\r
                 *\r
-                * All rules default to "false".\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
@@ -283,7 +298,12 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                 */\r
                setRules : function( tagName, rules )\r
                {\r
-                       this._.rules[ tagName ] = rules;\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