summaryrefslogtreecommitdiff
path: root/core/dtd.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/dtd.js')
-rw-r--r--core/dtd.js302
1 files changed, 0 insertions, 302 deletions
diff --git a/core/dtd.js b/core/dtd.js
deleted file mode 100644
index 0d86e55..0000000
--- a/core/dtd.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.html or http://ckeditor.com/license
- */
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD
- * mapping for XHTML 1.0 Transitional. This file was automatically
- * generated from the file: xhtml1-transitional.dtd.
- */
-
-/**
- * Holds and object representation of the HTML DTD to be used by the
- * editor in its internal operations.
- *
- * Each element in the DTD is represented by a property in this object. Each
- * property contains the list of elements that can be contained by the element.
- * Text is represented by the `#` property.
- *
- * Several special grouping properties are also available. Their names start
- * with the `$` character.
- *
- * // Check if <div> can be contained in a <p> element.
- * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] ); // false
- *
- * // Check if <p> can be contained in a <div> element.
- * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] ); // true
- *
- * // Check if <p> is a block element.
- * alert( !!CKEDITOR.dtd.$block[ 'p' ] ); // true
- *
- * @class CKEDITOR.dtd
- * @singleton
- */
-CKEDITOR.dtd = (function() {
- 'use strict';
-
- var X = CKEDITOR.tools.extend,
- // Subtraction rest of sets, from the first set.
- Y = function( source, removed ) {
- var substracted = CKEDITOR.tools.clone( source );
- for ( var i = 1; i < arguments.length; i++ ) {
- removed = arguments[ i ];
- for( var name in removed )
- delete substracted[ name ];
- }
- return substracted;
- };
-
- // Phrasing elements.
- // P = { a:1,em:1,strong:1,small:1,abbr:1,dfn:1,i:1,b:1,s:1,u:1,code:1,'var':1,samp:1,kbd:1,sup:1,sub:1,q:1,cite:1,span:1,bdo:1,bdi:1,br:1,wbr:1,ins:1,del:1,img:1,embed:1,object:1,iframe:1,map:1,area:1,script:1,noscript:1,ruby:1,video:1,audio:1,input:1,textarea:1,select:1,button:1,label:1,output:1,keygen:1,progress:1,command:1,canvas:1,time:1,meter:1,detalist:1 },
-
- // Flow elements.
- // F = { a:1,p:1,hr:1,pre:1,ul:1,ol:1,dl:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hgroup:1,address:1,blockquote:1,ins:1,del:1,object:1,map:1,noscript:1,section:1,nav:1,article:1,aside:1,header:1,footer:1,video:1,audio:1,figure:1,table:1,form:1,fieldset:1,menu:1,canvas:1,details:1 },
-
- // Text can be everywhere.
- // X( P, T );
- // Flow elements set consists of phrasing elements set.
- // X( F, P );
-
- var P = {}, F = {},
- // Intersection of flow elements set and phrasing elements set.
- PF = { a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,'var':1,video:1,wbr:1 },
- // F - PF (Flow Only).
- FO = { address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1 },
- // Metadata elements.
- M = { command:1,link:1,meta:1,noscript:1,script:1,style:1 },
- // Empty.
- E = {},
- // Text.
- T = { '#':1 },
-
- // Deprecated phrasing elements.
- DP = { acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1 }, // TODO remove "style".
- // Deprecated flow only elements.
- DFO = { center:1,dir:1,noframes:1 };
-
- // Phrasing elements := PF + T + DP
- X( P, PF, T, DP );
- // Flow elements := FO + P + DFO
- X( F, FO, P, DFO );
-
- var dtd = {
- a: Y( P, { a:1,button:1 } ), // Treat as normal inline element (not a transparent one).
- abbr: P,
- address: F,
- area: E,
- article: X( { style:1 }, F ),
- aside: X( { style:1 }, F ),
- audio: X( { source:1,track:1 }, F ),
- b: P,
- base: E,
- bdi: P,
- bdo: P,
- blockquote: F,
- body: F,
- br: E,
- button: Y( P, { a:1,button:1 } ),
- canvas: P, // Treat as normal inline element (not a transparent one).
- caption: F,
- cite: P,
- code: P,
- col: E,
- colgroup: { col:1 },
- command: E,
- datalist: X( { option:1 }, P ),
- dd: F,
- del: P, // Treat as normal inline element (not a transparent one).
- details: X( { summary:1 }, F ),
- dfn: P,
- div: X( { style:1 }, F ),
- dl: { dt:1,dd:1 },
- dt: F,
- em: P,
- embed: E,
- fieldset: X( { legend:1 }, F ),
- figcaption: F,
- figure: X( { figcaption:1 }, F ),
- footer: F,
- form: F,
- h1: P,
- h2: P,
- h3: P,
- h4: P,
- h5: P,
- h6: P,
- head: X( { title:1,base:1 }, M ),
- header: F,
- hgroup: { h1:1,h2:1,h3:1,h4:1,h5:1,h6:1 },
- hr: E,
- html: X( { head:1,body:1 }, F, M ), // Head and body are optional...
- i: P,
- iframe: T,
- img: E,
- input: E,
- ins: P, // Treat as normal inline element (not a transparent one).
- kbd: P,
- keygen: E,
- label: P,
- legend: P,
- li: F,
- link: E,
- map: F,
- mark: P, // Treat as normal inline element (not a transparent one).
- menu: X( { li:1 }, F ),
- meta: E,
- meter: Y( P, { meter:1 } ),
- nav: F,
- noscript: X( { link:1,meta:1,style:1 }, P ), // Treat as normal inline element (not a transparent one).
- object: X( { param:1 }, P ), // Treat as normal inline element (not a transparent one).
- ol: { li:1 },
- optgroup: { option:1 },
- option: T,
- output: P,
- p: P,
- param: E,
- pre: P,
- progress: Y( P, { progress:1 } ),
- q: P,
- rp: P,
- rt: P,
- ruby: X( { rp:1,rt:1 }, P ),
- s: P,
- samp: P,
- script: T,
- section: X( { style:1 }, F ),
- select: { optgroup:1,option:1 },
- small: P,
- source: E,
- span: P,
- strong: P,
- style: T,
- sub: P,
- summary: P,
- sup: P,
- table: { caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1 },
- tbody: { tr:1 },
- td: F,
- textarea: T,
- tfoot: { tr:1 },
- th: F,
- thead: { tr:1 },
- time: Y( P, { time:1 } ),
- title: T,
- tr: { th:1,td:1 },
- track: E,
- u: P,
- ul: { li:1 },
- 'var': P,
- video: X( { source:1,track:1 }, F ),
- wbr: E,
-
- // Deprecated tags.
- acronym: P,
- applet: X( { param:1 }, F ),
- basefont: E,
- big: P,
- center: F,
- dialog: E,
- dir: { li:1 },
- font: P,
- isindex: E,
- noframes: F,
- strike: P,
- tt: P
- };
-
- X( dtd, {
- /**
- * List of block elements, like `<p>` or `<div>`.
- */
- $block: X( { audio:1,dd:1,dt:1,li:1,video:1 }, FO, DFO ),
-
- /**
- * List of elements that contains other blocks, in which block-level operations should be limited,
- * this property is not intended to be checked directly, use {@link CKEDITOR.dom.elementPath#blockLimit} instead.
- *
- * Some examples of editor behaviors that are impacted by block limits:
- *
- * * Enter key never split a block-limit element;
- * * Style application is constraint by the block limit of the current selection.
- * * Pasted html will be inserted into the block limit of the current selection.
- *
- * **Note:** As an exception `<li>` is not considered as a block limit, as it's generally used as a text block.
- */
- $blockLimit: { article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,header:1,hgroup:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1 },
-
- /**
- * List of elements that contain character data.
- */
- $cdata: { script:1,style:1 },
-
- /**
- * List of elements that are accepted as inline editing hosts.
- */
- $editable: { address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,nav:1,p:1,pre:1,section:1 },
-
- /**
- * List of empty (self-closing) elements, like `<br>` or `<img>`.
- */
- $empty: { area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1 },
-
- /**
- * List of inline (`<span>` like) elements.
- */
- $inline: P,
-
- /**
- * List of list root elements.
- */
- $list: { dl:1,ol:1,ul:1 },
-
- /**
- * List of list item elements, like `<li>` or `<dd>`.
- */
- $listItem: { dd:1,dt:1,li:1 },
-
- /**
- * List of elements which may live outside body.
- */
- $nonBodyContent: X( { body:1,head:1,html:1 }, dtd.head ),
-
- /**
- * Elements that accept text nodes, but are not possible to edit into the browser.
- */
- $nonEditable: { applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1 },
-
- /**
- * Elements that are considered objects, therefore selected as a whole in the editor.
- */
- $object: { applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1 },
-
- /**
- * List of elements that can be ignored if empty, like `<b>` or `<span>`.
- */
- $removeEmpty: { abbr:1,acronym:1,b:1,bdi: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,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,'var':1 },
-
- /**
- * List of elements that have tabindex set to zero by default.
- */
- $tabIndex: { a:1,area:1,button:1,input:1,object:1,select:1,textarea:1 },
-
- /**
- * List of elements used inside the `<table>` element, like `<tbody>` or `<td>`.
- */
- $tableContent: { caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1 },
-
- /**
- * List of "transparent" elements. See [W3C's definition of "transparent" element](http://dev.w3.org/html5/markup/terminology.html#transparent).
- */
- $transparent: { a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1 },
-
- /**
- * List of elements that are not to exist standalone that must live under it's parent element.
- */
- $intermediate: { caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1 }
- } );
-
- return dtd;
-})();
-
-// PACKAGER_RENAME( CKEDITOR.dtd )