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     return /** @lends CKEDITOR.dtd */ {
 57
 58 		// The "$" items have been added manually.
 59
 60 		/**
 61 		 * List of block elements, like "p" or "div".
 62 		 * @type Object
 63 		 * @example
 64 		 */
 65 		$block : {address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset: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},
 66
 67 		/**
 68 		 * List of empty (self-closing) elements, like "br" or "img".
 69 		 * @type Object
 70 		 * @example
 71 		 */
 72 		$empty : {area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1},
 73
 74 		/**
 75 		 * List of list item elements, like "li" or "dd".
 76 		 * @type Object
 77 		 * @example
 78 		 */
 79 		$listItem : {dd:1,dt:1,li:1},
 80
 81 		/**
 82 		 * List of elements that can be ignored if empty, like "b" or "span".
 83 		 * @type Object
 84 		 * @example
 85 		 */
 86 		$removeEmpty : {abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,dfn:1,em:1,font:1,i: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},
 87
 88 		/**
 89 		 * List of elements that have tabindex set to zero by default.
 90 		 * @type Object
 91 		 * @example
 92 		 */
 93 		$tabIndex : {a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},
 94
 95 		/**
 96 		 * List of elements used inside the "table" element, like "tbody" or "td".
 97 		 * @type Object
 98 		 * @example
 99 		 */
100 		$tableContent : {caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},
101
102         col : {},
103         tr : {td:1,th:1},
104         img : {},
105         colgroup : {col:1},
106         noscript : P,
107         td : P,
108         br : {},
109         th : P,
110         center : P,
111         kbd : L,
112         button : X(I,E),
113         basefont : {},
114         h5 : L,
115         h4 : L,
116         samp : L,
117         h6 : L,
118         ol : Q,
119         h1 : L,
120         h3 : L,
121         option : N,
122         h2 : L,
123         form : X(A,D,E,I),
124         select : {optgroup:1,option:1},
125         font : L,
126         ins : P,
127         menu : Q,
128         abbr : L,
129         label : L,
130         table : {thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},
131         code : L,
132         script : N,
133         tfoot : M,
134         cite : L,
135         li : P,
136         input : {},
137         iframe : P,
138         strong : L,
139         textarea : N,
140         noframes : P,
141         big : L,
142         small : L,
143         span : L,
144         hr : {},
145         dt : L,
146         sub : L,
147         optgroup : {option:1},
148         param : {},
149         bdo : L,
150         'var' : L,
151         div : P,
152         object : O,
153         sup : L,
154         dd : P,
155         strike : L,
156         area : {},
157         dir : Q,
158         map : X({area:1,form:1,p:1},A,F,E),
159         applet : O,
160         dl : {dt:1,dd:1},
161         del : P,
162         isindex : {},
163         fieldset : X({legend:1},K),
164         thead : M,
165         ul : Q,
166         acronym : L,
167         b : L,
168         a : J,
169         blockquote : P,
170         caption : L,
171         i : L,
172         u : L,
173         tbody : M,
174         s : L,
175         address : X(D,I),
176         tt : L,
177         legend : L,
178         q : L,
179         pre : X(G,C),
180         p : L,
181         em : L,
182         dfn : L
183     };
184 })();
185
186 // PACKAGER_RENAME( CKEDITOR.dtd )
187