JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.0
[ckeditor.git] / _source / core / dtd.js
diff --git a/_source/core/dtd.js b/_source/core/dtd.js
new file mode 100644 (file)
index 0000000..d0d6e9e
--- /dev/null
@@ -0,0 +1,200 @@
+/*\r
+Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+*/\r
+\r
+/**\r
+ * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD\r
+ *             mapping for XHTML 1.0 Transitional. This file was automatically\r
+ *             generated from the file: xhtml1-transitional.dtd.\r
+ */\r
+\r
+/**\r
+ * Holds and object representation of the HTML DTD to be used by the editor in\r
+ * its internal operations.\r
+ *\r
+ * Each element in the DTD is represented by a\r
+ * property in this object. Each property contains the list of elements that\r
+ * can be contained by the element. Text is represented by the "#" property.\r
+ *\r
+ * Several special grouping properties are also available. Their names start\r
+ * with the "$" character.\r
+ * @namespace\r
+ * @example\r
+ * // Check if "div" can be contained in a "p" element.\r
+ * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] );  "false"\r
+ * @example\r
+ * // Check if "p" can be contained in a "div" element.\r
+ * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] );  "true"\r
+ * @example\r
+ * // Check if "p" is a block element.\r
+ * alert( !!CKEDITOR.dtd.$block[ 'p' ] );  "true"\r
+ */\r
+CKEDITOR.dtd = (function()\r
+{\r
+    var X = CKEDITOR.tools.extend,\r
+\r
+               A = {isindex:1,fieldset:1},\r
+               B = {input:1,button:1,select:1,textarea:1,label:1},\r
+               C = X({a:1},B),\r
+               D = X({iframe:1},C),\r
+               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},\r
+               F = {ins:1,del:1,script:1},\r
+               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),\r
+               H = X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G),\r
+               I = X({p:1},H),\r
+               J = X({iframe:1},H,B),\r
+               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},\r
+\r
+               L = X({a:1},J),\r
+               M = {tr:1},\r
+               N = {'#':1},\r
+               O = X({param:1},K),\r
+               P = X({form:1},A,D,E,I),\r
+               Q = {li:1};\r
+\r
+       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};\r
+\r
+    return /** @lends CKEDITOR.dtd */ {\r
+\r
+               // The "$" items have been added manually.\r
+\r
+               /**\r
+                * List of block elements, like "p" or "div".\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $block : block,\r
+\r
+               $body : X({script:1}, block),\r
+\r
+               $cdata : {script:1,style:1},\r
+\r
+               /**\r
+                * List of empty (self-closing) elements, like "br" or "img".\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $empty : {area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1},\r
+\r
+               /**\r
+                * List of list item elements, like "li" or "dd".\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $listItem : {dd:1,dt:1,li:1},\r
+\r
+               /**\r
+                * Elements that accept text nodes, but are not possible to edit into\r
+                * the browser.\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1},\r
+\r
+               /**\r
+                * List of elements that can be ignored if empty, like "b" or "span".\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $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},\r
+\r
+               /**\r
+                * List of elements that have tabindex set to zero by default.\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $tabIndex : {a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},\r
+\r
+               /**\r
+                * List of elements used inside the "table" element, like "tbody" or "td".\r
+                * @type Object\r
+                * @example\r
+                */\r
+               $tableContent : {caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},\r
+\r
+        col : {},\r
+        tr : {td:1,th:1},\r
+        img : {},\r
+        colgroup : {col:1},\r
+        noscript : P,\r
+        td : P,\r
+        br : {},\r
+        th : P,\r
+        center : P,\r
+        kbd : L,\r
+        button : X(I,E),\r
+        basefont : {},\r
+        h5 : L,\r
+        h4 : L,\r
+        samp : L,\r
+        h6 : L,\r
+        ol : Q,\r
+        h1 : L,\r
+        h3 : L,\r
+        option : N,\r
+        h2 : L,\r
+        form : X(A,D,E,I),\r
+        select : {optgroup:1,option:1},\r
+        font : L,\r
+        ins : P,\r
+        menu : Q,\r
+        abbr : L,\r
+        label : L,\r
+        table : {thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},\r
+        code : L,\r
+        script : N,\r
+        tfoot : M,\r
+        cite : L,\r
+        li : P,\r
+        input : {},\r
+        iframe : P,\r
+        strong : L,\r
+        textarea : N,\r
+        noframes : P,\r
+        big : L,\r
+        small : L,\r
+        span : L,\r
+        hr : {},\r
+        dt : L,\r
+        sub : L,\r
+        optgroup : {option:1},\r
+        param : {},\r
+        bdo : L,\r
+        'var' : L,\r
+        div : P,\r
+        object : O,\r
+        sup : L,\r
+        dd : P,\r
+        strike : L,\r
+        area : {},\r
+        dir : Q,\r
+        map : X({area:1,form:1,p:1},A,F,E),\r
+        applet : O,\r
+        dl : {dt:1,dd:1},\r
+        del : P,\r
+        isindex : {},\r
+        fieldset : X({legend:1},K),\r
+        thead : M,\r
+        ul : Q,\r
+        acronym : L,\r
+        b : L,\r
+        a : J,\r
+        blockquote : P,\r
+        caption : L,\r
+        i : L,\r
+        u : L,\r
+        tbody : M,\r
+        s : L,\r
+        address : X(D,I),\r
+        tt : L,\r
+        legend : L,\r
+        q : L,\r
+        pre : X(G,C),\r
+        p : L,\r
+        em : L,\r
+        dfn : L\r
+    };\r
+})();\r
+\r
+// PACKAGER_RENAME( CKEDITOR.dtd )\r