1 /* 2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. 3 For licensing, see LICENSE.html or http://ckeditor.com/license 4 */ 5 6 /** 7 * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD 8 * mapping for XHTML 1.0 Transitional. This file was automatically 9 * generated from the file: xhtml1-transitional.dtd. 10 */ 11 12 /** 13 * Holds and object representation of the HTML DTD to be used by the editor in 14 * its internal operations. 15 * 16 * Each element in the DTD is represented by a 17 * property in this object. Each property contains the list of elements that 18 * can be contained by the element. Text is represented by the "#" property. 19 * 20 * Several special grouping properties are also available. Their names start 21 * with the "$" character. 22 * @namespace 23 * @example 24 * // Check if "div" can be contained in a "p" element. 25 * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] ); "false" 26 * @example 27 * // Check if "p" can be contained in a "div" element. 28 * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] ); "true" 29 * @example 30 * // Check if "p" is a block element. 31 * alert( !!CKEDITOR.dtd.$block[ 'p' ] ); "true" 32 */ 33 CKEDITOR.dtd = (function() 34 { 35 var X = CKEDITOR.tools.extend, 36 37 A = {isindex:1,fieldset:1}, 38 B = {input:1,button:1,select:1,textarea:1,label:1}, 39 C = X({a:1},B), 40 D = X({iframe:1},C), 41 E = {hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}, 42 F = {ins:1,del:1,script:1}, 43 G = X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F), 44 H = X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G), 45 I = X({p:1},H), 46 J = X({iframe:1},H,B), 47 K = {img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}, 48 49 L = X({a:1},J), 50 M = {tr:1}, 51 N = {'#':1}, 52 O = X({param:1},K), 53 P = X({form:1},A,D,E,I), 54 Q = {li:1}; 55 56 var block = {address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}; 57 58 return /** @lends CKEDITOR.dtd */ { 59 60 // The "$" items have been added manually. 61 62 /** 63 * List of block elements, like "p" or "div". 64 * @type Object 65 * @example 66 */ 67 $block : block, 68 69 $body : X({script:1}, block), 70 71 $cdata : {script:1,style:1}, 72 73 /** 74 * List of empty (self-closing) elements, like "br" or "img". 75 * @type Object 76 * @example 77 */ 78 $empty : {area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1}, 79 80 /** 81 * List of list item elements, like "li" or "dd". 82 * @type Object 83 * @example 84 */ 85 $listItem : {dd:1,dt:1,li:1}, 86 87 /** 88 * Elements that accept text nodes, but are not possible to edit into 89 * the browser. 90 * @type Object 91 * @example 92 */ 93 $nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1}, 94 95 /** 96 * List of elements that can be ignored if empty, like "b" or "span". 97 * @type Object 98 * @example 99 */ 100 $removeEmpty : {abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1}, 101 102 /** 103 * List of elements that have tabindex set to zero by default. 104 * @type Object 105 * @example 106 */ 107 $tabIndex : {a:1,area:1,button:1,input:1,object:1,select:1,textarea:1}, 108 109 /** 110 * List of elements used inside the "table" element, like "tbody" or "td". 111 * @type Object 112 * @example 113 */ 114 $tableContent : {caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}, 115 116 col : {}, 117 tr : {td:1,th:1}, 118 img : {}, 119 colgroup : {col:1}, 120 noscript : P, 121 td : P, 122 br : {}, 123 th : P, 124 center : P, 125 kbd : L, 126 button : X(I,E), 127 basefont : {}, 128 h5 : L, 129 h4 : L, 130 samp : L, 131 h6 : L, 132 ol : Q, 133 h1 : L, 134 h3 : L, 135 option : N, 136 h2 : L, 137 form : X(A,D,E,I), 138 select : {optgroup:1,option:1}, 139 font : L, 140 ins : P, 141 menu : Q, 142 abbr : L, 143 label : L, 144 table : {thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}, 145 code : L, 146 script : N, 147 tfoot : M, 148 cite : L, 149 li : P, 150 input : {}, 151 iframe : P, 152 strong : L, 153 textarea : N, 154 noframes : P, 155 big : L, 156 small : L, 157 span : L, 158 hr : {}, 159 dt : L, 160 sub : L, 161 optgroup : {option:1}, 162 param : {}, 163 bdo : L, 164 'var' : L, 165 div : P, 166 object : O, 167 sup : L, 168 dd : P, 169 strike : L, 170 area : {}, 171 dir : Q, 172 map : X({area:1,form:1,p:1},A,F,E), 173 applet : O, 174 dl : {dt:1,dd:1}, 175 del : P, 176 isindex : {}, 177 fieldset : X({legend:1},K), 178 thead : M, 179 ul : Q, 180 acronym : L, 181 b : L, 182 a : J, 183 blockquote : P, 184 caption : L, 185 i : L, 186 u : L, 187 tbody : M, 188 s : L, 189 address : X(D,I), 190 tt : L, 191 legend : L, 192 q : L, 193 pre : X(G,C), 194 p : L, 195 em : L, 196 dfn : L 197 }; 198 })(); 199 200 // PACKAGER_RENAME( CKEDITOR.dtd ) 201