- var nonBreakingBlocks = CKEDITOR.tools.extend(\r
- {table:1,ul:1,ol:1,dl:1},\r
- CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl ),\r
- listBlocks = CKEDITOR.dtd.$list, listItems = CKEDITOR.dtd.$listItem;\r
+ var nonBreakingBlocks = CKEDITOR.tools.extend( { table:1,ul:1,ol:1,dl:1 }, CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl );\r
+\r
+ // IE < 8 don't output the close tag on definition list items. (#6975)\r
+ var optionalCloseTags = CKEDITOR.env.ie && CKEDITOR.env.version < 8 ? { dd : 1, dt :1 } : {};\r
+\r
+ var listBlocks = { ol:1, ul:1 };\r
+\r
+ // Dtd of the fragment element, basically it accept anything except for intermediate structure, e.g. orphan <li>.\r
+ var rootDtd = CKEDITOR.tools.extend( {}, { html: 1 }, CKEDITOR.dtd.html, CKEDITOR.dtd.body, CKEDITOR.dtd.head, { style:1,script:1 } );\r
+\r
+ function isRemoveEmpty( node )\r
+ {\r
+ // Empty link is to be removed when empty but not anchor. (#7894)\r
+ return node.name == 'a' && node.attributes.href\r
+ || CKEDITOR.dtd.$removeEmpty[ node.name ];\r
+ }\r