sync
authorAlan <alan@roojs.com>
Fri, 7 Jan 2022 08:26:59 +0000 (16:26 +0800)
committerAlan <alan@roojs.com>
Fri, 7 Jan 2022 08:26:59 +0000 (16:26 +0800)
docs/src/Roo_htmleditor_TidyEntities.js.html [new file with mode: 0644]
docs/src/Roo_htmleditor_TidySerializer.js.html [new file with mode: 0644]
docs/src/Roo_htmleditor_TidyWriter.js.html [new file with mode: 0644]
docs/symbols/Roo.htmleditor.TidyEntities.json [new file with mode: 0644]
docs/symbols/Roo.htmleditor.TidySerializer.json [new file with mode: 0644]
docs/symbols/Roo.htmleditor.TidyWriter.json [new file with mode: 0644]

diff --git a/docs/src/Roo_htmleditor_TidyEntities.js.html b/docs/src/Roo_htmleditor_TidyEntities.js.html
new file mode 100644 (file)
index 0000000..02baf8f
--- /dev/null
@@ -0,0 +1,747 @@
+<html><head><title>Roo/htmleditor/TidyEntities.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/***
+ * This is based loosely on tinymce 
+ * @class Roo.htmleditor.TidyEntities
+ * @static
+ * https://github.com/thorn0/tinymce.html/blob/master/tinymce.html.js
+ *
+ * Not 100% sure this is actually used or needed.
+ */
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidyEntities </span><span class="jsdoc-syntax">= {
+
+    </span><span class="jsdoc-comment">/**
+     * initialize data..
+     */
+    </span><span class="jsdoc-var">init </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(){
+
+        </span><span class="jsdoc-var">this.namedEntities </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.buildEntitiesLookup</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.namedEntitiesData</span><span class="jsdoc-syntax">, 32);
+
+    },
+
+
+    </span><span class="jsdoc-var">buildEntitiesLookup</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">radix</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">entity</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lookup </span><span class="jsdoc-syntax">= {};
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{};
+        }
+        </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">items.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">','</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">radix </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">radix </span><span class="jsdoc-syntax">|| 10;
+        </span><span class="jsdoc-comment">// Build entities lookup table
+        </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">items.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+= 2) {
+            </span><span class="jsdoc-var">chr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">radix</span><span class="jsdoc-syntax">));
+            </span><span class="jsdoc-comment">// Only add non base entities
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">]) {
+                </span><span class="jsdoc-var">entity </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'&amp;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ 1] + </span><span class="jsdoc-string">';'</span><span class="jsdoc-syntax">;
+                </span><span class="jsdoc-var">lookup</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">entity</span><span class="jsdoc-syntax">;
+                </span><span class="jsdoc-var">lookup</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">entity</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">;
+            }
+        }
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">lookup</span><span class="jsdoc-syntax">;
+
+    },
+
+    </span><span class="jsdoc-var">asciiMap </span><span class="jsdoc-syntax">: {
+            128: </span><span class="jsdoc-string">'€'</span><span class="jsdoc-syntax">,
+            130: </span><span class="jsdoc-string">'‚'</span><span class="jsdoc-syntax">,
+            131: </span><span class="jsdoc-string">'ƒ'</span><span class="jsdoc-syntax">,
+            132: </span><span class="jsdoc-string">'„'</span><span class="jsdoc-syntax">,
+            133: </span><span class="jsdoc-string">'…'</span><span class="jsdoc-syntax">,
+            134: </span><span class="jsdoc-string">'†'</span><span class="jsdoc-syntax">,
+            135: </span><span class="jsdoc-string">'‡'</span><span class="jsdoc-syntax">,
+            136: </span><span class="jsdoc-string">'ˆ'</span><span class="jsdoc-syntax">,
+            137: </span><span class="jsdoc-string">'‰'</span><span class="jsdoc-syntax">,
+            138: </span><span class="jsdoc-string">'Š'</span><span class="jsdoc-syntax">,
+            139: </span><span class="jsdoc-string">'‹'</span><span class="jsdoc-syntax">,
+            140: </span><span class="jsdoc-string">'Œ'</span><span class="jsdoc-syntax">,
+            142: </span><span class="jsdoc-string">'Ž'</span><span class="jsdoc-syntax">,
+            145: </span><span class="jsdoc-string">'‘'</span><span class="jsdoc-syntax">,
+            146: </span><span class="jsdoc-string">'’'</span><span class="jsdoc-syntax">,
+            147: </span><span class="jsdoc-string">'“'</span><span class="jsdoc-syntax">,
+            148: </span><span class="jsdoc-string">'”'</span><span class="jsdoc-syntax">,
+            149: </span><span class="jsdoc-string">'•'</span><span class="jsdoc-syntax">,
+            150: </span><span class="jsdoc-string">'–'</span><span class="jsdoc-syntax">,
+            151: </span><span class="jsdoc-string">'—'</span><span class="jsdoc-syntax">,
+            152: </span><span class="jsdoc-string">'˜'</span><span class="jsdoc-syntax">,
+            153: </span><span class="jsdoc-string">'™'</span><span class="jsdoc-syntax">,
+            154: </span><span class="jsdoc-string">'š'</span><span class="jsdoc-syntax">,
+            155: </span><span class="jsdoc-string">'›'</span><span class="jsdoc-syntax">,
+            156: </span><span class="jsdoc-string">'œ'</span><span class="jsdoc-syntax">,
+            158: </span><span class="jsdoc-string">'ž'</span><span class="jsdoc-syntax">,
+            159: </span><span class="jsdoc-string">'Ÿ'
+    </span><span class="jsdoc-syntax">},
+    </span><span class="jsdoc-comment">// Raw entities
+    </span><span class="jsdoc-var">baseEntities </span><span class="jsdoc-syntax">: {
+        </span><span class="jsdoc-string">'&quot;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;quot;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-comment">// Needs to be escaped since the YUI compressor would otherwise break the code
+        </span><span class="jsdoc-string">'\''</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;#39;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&lt;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;lt;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;gt;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;amp;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'`'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;#96;'
+    </span><span class="jsdoc-syntax">},
+    </span><span class="jsdoc-comment">// Reverse lookup table for raw entities
+    </span><span class="jsdoc-var">reverseEntities </span><span class="jsdoc-syntax">: {
+        </span><span class="jsdoc-string">'&amp;lt;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&lt;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&amp;gt;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&amp;amp;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&amp;quot;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'&quot;'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'&amp;apos;'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'\''
+    </span><span class="jsdoc-syntax">},
+
+    </span><span class="jsdoc-var">attrsCharsRegExp </span><span class="jsdoc-syntax">: /[&amp;&lt;&gt;\&quot;\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
+    </span><span class="jsdoc-var">textCharsRegExp </span><span class="jsdoc-syntax">: /[&lt;&gt;&amp;\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
+    </span><span class="jsdoc-var">rawCharsRegExp </span><span class="jsdoc-syntax">: /[&lt;&gt;&amp;\&quot;\']/g,
+    </span><span class="jsdoc-var">entityRegExp </span><span class="jsdoc-syntax">: /&amp;#([a-z0-9]+);?|&amp;([a-z0-9]+);/gi,
+    </span><span class="jsdoc-var">namedEntities  </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">namedEntitiesData </span><span class="jsdoc-syntax">: [
+        </span><span class="jsdoc-string">'50'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'nbsp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'51'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'iexcl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'52'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'cent'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'53'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'pound'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'54'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'curren'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'55'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'yen'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'56'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'brvbar'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'57'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sect'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'58'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'59'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'copy'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5a'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ordf'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5b'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'laquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5c'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'not'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5d'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'shy'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5e'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'reg'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5f'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'macr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5g'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'deg'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5h'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'plusmn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5i'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sup2'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5j'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sup3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5k'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'acute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5l'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'micro'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5m'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'para'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5n'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'middot'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5o'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'cedil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5p'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sup1'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5q'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ordm'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5r'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'raquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5s'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'frac14'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5t'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'frac12'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5u'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'frac34'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'5v'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'iquest'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'60'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Agrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'61'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Aacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'62'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Acirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'63'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Atilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'64'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Auml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'65'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Aring'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'66'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'AElig'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'67'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ccedil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'68'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Egrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'69'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Eacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6a'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ecirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6b'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Euml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6c'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Igrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6d'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Iacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6e'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Icirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6f'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Iuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6g'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ETH'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6h'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ntilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6i'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ograve'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6j'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Oacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6k'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ocirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6l'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Otilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6m'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ouml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6n'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'times'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6o'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Oslash'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6p'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ugrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6q'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Uacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6r'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Ucirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6s'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Uuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6t'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Yacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6u'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'THORN'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'6v'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'szlig'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'70'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'agrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'71'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'aacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'72'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'acirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'73'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'atilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'74'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'auml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'75'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'aring'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'76'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'aelig'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'77'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ccedil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'78'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'egrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'79'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'eacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7a'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ecirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7b'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'euml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7c'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'igrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7d'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'iacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7e'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'icirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7f'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'iuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7g'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'eth'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7h'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ntilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7i'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ograve'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7j'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'oacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7k'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ocirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7l'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'otilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7m'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ouml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7n'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'divide'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7o'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'oslash'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7p'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ugrave'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7q'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7r'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ucirc'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7s'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7t'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'yacute'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7u'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'thorn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'7v'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'yuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ci'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'fnof'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sh'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Alpha'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'si'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Beta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Gamma'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sk'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Delta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Epsilon'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sm'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Zeta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Eta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'so'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Theta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Iota'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sq'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Kappa'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Lambda'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ss'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Mu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'st'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Nu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'su'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Xi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sv'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Omicron'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Pi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t1'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Rho'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Sigma'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t4'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Tau'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Upsilon'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t6'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Phi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t7'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Chi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Psi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'t9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Omega'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'th'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'alpha'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ti'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'beta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'gamma'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tk'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'delta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'epsilon'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tm'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'zeta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'eta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'to'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'theta'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'iota'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tq'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'kappa'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lambda'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ts'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'mu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tt'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'nu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'xi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tv'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'omicron'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'pi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u1'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rho'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u2'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sigmaf'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sigma'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u4'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tau'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'upsilon'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u6'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'phi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u7'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'chi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'psi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'u9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'omega'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uh'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'thetasym'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ui'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'upsih'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'um'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'piv'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'812'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'bull'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'816'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'hellip'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81i'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'prime'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81j'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Prime'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81u'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'oline'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'824'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'frasl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'88o'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'weierp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'88h'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'image'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'88s'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'real'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'892'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'trade'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'89l'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'alefsym'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8cg'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'larr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ch'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uarr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ci'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rarr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8cj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'darr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ck'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'harr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8dl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'crarr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8eg'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lArr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8eh'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'uArr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ei'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rArr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ej'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'dArr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ek'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'hArr'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'forall'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g2'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'part'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'exist'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'empty'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g7'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'nabla'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'isin'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8g9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'notin'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gb'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ni'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gf'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'prod'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gh'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sum'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gi'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'minus'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lowast'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gq'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'radic'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gt'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'prop'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8gu'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'infin'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8h0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ang'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8h7'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'and'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8h8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'or'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8h9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'cap'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ha'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'cup'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8hb'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'int'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8hk'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'there4'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8hs'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sim'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8i5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'cong'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8i8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'asymp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8j0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ne'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8j1'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'equiv'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8j4'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'le'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8j5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ge'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8k2'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sub'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8k3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sup'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8k4'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'nsub'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8k6'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sube'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8k7'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'supe'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8kl'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'oplus'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8kn'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'otimes'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8l5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'perp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8m5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sdot'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8o8'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lceil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8o9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rceil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8oa'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lfloor'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8ob'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rfloor'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8p9'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lang'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'8pa'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rang'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'9ea'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'loz'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'9j0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'spades'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'9j3'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'clubs'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'9j5'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'hearts'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'9j6'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'diams'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ai'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'OElig'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'aj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'oelig'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'b0'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Scaron'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'b1'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'scaron'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'bo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Yuml'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'m6'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'circ'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ms'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'tilde'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'802'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ensp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'803'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'emsp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'809'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'thinsp'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80c'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'zwnj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80d'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'zwj'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80e'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lrm'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80f'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rlm'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80j'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ndash'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80k'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'mdash'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80o'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lsquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80p'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rsquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80q'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'sbquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80s'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'ldquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80t'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rdquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'80u'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'bdquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'810'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'dagger'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'811'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'Dagger'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81g'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'permil'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81p'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'lsaquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'81q'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'rsaquo'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'85c'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'euro'
+    </span><span class="jsdoc-syntax">],
+
+
+    </span><span class="jsdoc-comment">/**
+     * Encodes the specified string using raw entities. This means only the required XML base entities will be encoded.
+     *
+     * @method encodeRaw
+     * @param {String} text Text to encode.
+     * @param {Boolean} attr Optional flag to specify if the text is attribute contents.
+     * @return {String} Entity encoded text.
+     */
+    </span><span class="jsdoc-var">encodeRaw</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.attrsCharsRegExp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.textCharsRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">;
+        });
+    },
+    </span><span class="jsdoc-comment">/**
+     * Encoded the specified text with both the attributes and text entities. This function will produce larger text contents
+     * since it doesn't know if the context is within a attribute or text node. This was added for compatibility
+     * and is exposed as the DOMUtils.encode function.
+     *
+     * @method encodeAllRaw
+     * @param {String} text Text to encode.
+     * @return {String} Entity encoded text.
+     */
+    </span><span class="jsdoc-var">encodeAllRaw</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rawCharsRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">;
+        });
+    },
+    </span><span class="jsdoc-comment">/**
+     * Encodes the specified string using numeric entities. The core entities will be
+     * encoded as named ones but all non lower ascii characters will be encoded into numeric entities.
+     *
+     * @method encodeNumeric
+     * @param {String} text Text to encode.
+     * @param {Boolean} attr Optional flag to specify if the text is attribute contents.
+     * @return {String} Entity encoded text.
+     */
+    </span><span class="jsdoc-var">encodeNumeric</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.attrsCharsRegExp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.textCharsRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-comment">// Multi byte sequence convert it to a single entity
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr.length </span><span class="jsdoc-syntax">&gt; 1) {
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'&amp;#' </span><span class="jsdoc-syntax">+ (1024 * (</span><span class="jsdoc-var">chr.charCodeAt</span><span class="jsdoc-syntax">(0) - 55296) + (</span><span class="jsdoc-var">chr.charCodeAt</span><span class="jsdoc-syntax">(1) - 56320) + 65536) + </span><span class="jsdoc-string">';'</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-string">'&amp;#' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">chr.charCodeAt</span><span class="jsdoc-syntax">(0) + </span><span class="jsdoc-string">';'</span><span class="jsdoc-syntax">;
+        });
+    },
+    </span><span class="jsdoc-comment">/**
+     * Encodes the specified string using named entities. The core entities will be encoded
+     * as named ones but all non lower ascii characters will be encoded into named entities.
+     *
+     * @method encodeNamed
+     * @param {String} text Text to encode.
+     * @param {Boolean} attr Optional flag to specify if the text is attribute contents.
+     * @param {Object} entities Optional parameter with entities to use.
+     * @return {String} Entity encoded text.
+     */
+    </span><span class="jsdoc-var">encodeNamed</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">entities </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">entities </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.namedEntities</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.attrsCharsRegExp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.textCharsRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">;
+        });
+    },
+    </span><span class="jsdoc-comment">/**
+     * Returns an encode function based on the name(s) and it's optional entities.
+     *
+     * @method getEncodeFunc
+     * @param {String} name Comma separated list of encoders for example named,numeric.
+     * @param {String} entities Optional parameter with entities to use instead of the built in set.
+     * @return {function} Encode function to be used.
+     */
+    </span><span class="jsdoc-var">getEncodeFunc</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">entities </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.buildEntitiesLookup</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">this.namedEntities</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">encodeNamedAndNumeric</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.attrsCharsRegExp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">t.textCharsRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.baseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-string">'&amp;#' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">chr.charCodeAt</span><span class="jsdoc-syntax">(0) + </span><span class="jsdoc-string">';' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">chr</span><span class="jsdoc-syntax">;
+            });
+        }
+
+        </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">encodeCustomNamed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.encodeNamed</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">);
+        }
+        </span><span class="jsdoc-comment">// Replace + with , to be compatible with previous TinyMCE versions
+        </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.makeMap</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.replace</span><span class="jsdoc-syntax">(/\+/g, </span><span class="jsdoc-string">','</span><span class="jsdoc-syntax">));
+        </span><span class="jsdoc-comment">// Named and numeric encoder
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.named </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">name.numeric</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.encodeNamedAndNumeric</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-comment">// Named encoder
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.named</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-comment">// Custom names
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">entities</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">encodeCustomNamed</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.encodeNamed</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-comment">// Numeric
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.numeric</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.encodeNumeric</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-comment">// Raw encoder
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.encodeRaw</span><span class="jsdoc-syntax">;
+    },
+    </span><span class="jsdoc-comment">/**
+     * Decodes the specified string, this will replace entities with raw UTF characters.
+     *
+     * @method decode
+     * @param {String} text Text to entity decode.
+     * @return {String} Entity decoded string.
+     */
+    </span><span class="jsdoc-var">decode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-keyword">var  </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.entityRegExp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">all</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">numeric </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x' </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">numeric.charAt</span><span class="jsdoc-syntax">(0)</span><span class="jsdoc-var">.toLowerCase</span><span class="jsdoc-syntax">() ? </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">numeric.substr</span><span class="jsdoc-syntax">(1), 16) : </span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">, 10);
+                </span><span class="jsdoc-comment">// Support upper UTF
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">numeric </span><span class="jsdoc-syntax">&gt; 65535) {
+                    </span><span class="jsdoc-var">numeric </span><span class="jsdoc-syntax">-= 65536;
+                    </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(55296 + (</span><span class="jsdoc-var">numeric </span><span class="jsdoc-syntax">&gt;&gt; 10), 56320 + (1023 &amp; </span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">));
+                }
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.asciiMap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">numeric</span><span class="jsdoc-syntax">);
+            }
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.reverseEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">all</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">t.namedEntities</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">all</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">t.nativeDecode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">all</span><span class="jsdoc-syntax">);
+        });
+    },
+    </span><span class="jsdoc-var">nativeDecode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
+    },
+    </span><span class="jsdoc-var">makeMap </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">delim</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">map</span><span class="jsdoc-syntax">) {
+               </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
+               </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">|| [];
+               </span><span class="jsdoc-var">delim </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">delim </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">','</span><span class="jsdoc-syntax">;
+               </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">&quot;string&quot;</span><span class="jsdoc-syntax">) {
+                       </span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">items.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delim</span><span class="jsdoc-syntax">);
+               }
+               </span><span class="jsdoc-var">map </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">map </span><span class="jsdoc-syntax">|| {};
+               </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">items.length</span><span class="jsdoc-syntax">;
+               </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">--) {
+                       </span><span class="jsdoc-var">map</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">items</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]] = {};
+               }
+               </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">map</span><span class="jsdoc-syntax">;
+       }
+};
+
+
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidyEntities.init</span><span class="jsdoc-syntax">();</span></code></body></html>
\ No newline at end of file
diff --git a/docs/src/Roo_htmleditor_TidySerializer.js.html b/docs/src/Roo_htmleditor_TidySerializer.js.html
new file mode 100644 (file)
index 0000000..f0ab5a1
--- /dev/null
@@ -0,0 +1,121 @@
+<html><head><title>Roo/htmleditor/TidySerializer.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<span class="jsdoc-comment">/***
+ * This is based loosely on tinymce 
+ * @class Roo.htmleditor.TidySerializer
+ * https://github.com/thorn0/tinymce.html/blob/master/tinymce.html.js
+ * @constructor
+ * @method Serializer
+ * @param {Object} settings Name/value settings object.
+ */
+
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidySerializer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">)
+{
+    </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">);
+
+    </span><span class="jsdoc-var">this.writer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">);
+
+
+
+};
+</span><span class="jsdoc-var">Roo.htmleditor.TidySerializer.prototype </span><span class="jsdoc-syntax">= {
+
+    </span><span class="jsdoc-comment">/**
+     * @param {boolean} inner do the inner of the node.
+     */
+    </span><span class="jsdoc-var">inner </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">writer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-comment">/**
+    * Serializes the specified node into a string.
+    *
+    * @example
+    * new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('&lt;p&gt;text&lt;/p&gt;'));
+    * @method serialize
+    * @param {DomElement} node Node instance to serialize.
+    * @return {String} String with HTML based on DOM tree.
+    */
+    </span><span class="jsdoc-var">serialize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+
+        </span><span class="jsdoc-comment">// = settings.validate;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">writer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.writer</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">self  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">this.handlers </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-comment">// #text
+            </span><span class="jsdoc-syntax">3: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+
+                </span><span class="jsdoc-var">writer.text</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeValue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            },
+            </span><span class="jsdoc-comment">// #comment
+            </span><span class="jsdoc-syntax">8: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">writer.comment</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeValue</span><span class="jsdoc-syntax">);
+            },
+            </span><span class="jsdoc-comment">// Processing instruction
+            </span><span class="jsdoc-syntax">7: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">writer.pi</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node.nodeValue</span><span class="jsdoc-syntax">);
+            },
+            </span><span class="jsdoc-comment">// Doctype
+            </span><span class="jsdoc-syntax">10: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">writer.doctype</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeValue</span><span class="jsdoc-syntax">);
+            },
+            </span><span class="jsdoc-comment">// CDATA
+            </span><span class="jsdoc-syntax">4: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">writer.cdata</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeValue</span><span class="jsdoc-syntax">);
+            },
+            </span><span class="jsdoc-comment">// Document fragment
+            </span><span class="jsdoc-syntax">11: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.firstChild</span><span class="jsdoc-syntax">;
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+                }
+                </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-var">self.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+                    </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nextSibling
+                </span><span class="jsdoc-syntax">}
+            }
+        };
+        </span><span class="jsdoc-var">writer.reset</span><span class="jsdoc-syntax">();
+        1 != </span><span class="jsdoc-var">node.nodeType </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.inner </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.handlers</span><span class="jsdoc-syntax">[11](</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">writer.getContent</span><span class="jsdoc-syntax">();
+    },
+
+    </span><span class="jsdoc-var">walk</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">attrName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attrValue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sortedAttrs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">elementRule</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">handler </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.handlers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">node.nodeType</span><span class="jsdoc-syntax">];
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">handler</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nodeName</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">isEmpty </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.childNodes.length </span><span class="jsdoc-syntax">&lt; 1;
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">writer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.writer</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">attrs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.attributes</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-comment">// Sort attributes
+
+        </span><span class="jsdoc-var">writer.start</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attrs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isEmpty</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isEmpty</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.firstChild</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">writer.end</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nextSibling</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-var">writer.end</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">);
+
+
+    }
+    </span><span class="jsdoc-comment">// Serialize element and treat all non elements as fragments
+
+</span><span class="jsdoc-syntax">};
+
+</span></code></body></html>
\ No newline at end of file
diff --git a/docs/src/Roo_htmleditor_TidyWriter.js.html b/docs/src/Roo_htmleditor_TidyWriter.js.html
new file mode 100644 (file)
index 0000000..44997eb
--- /dev/null
@@ -0,0 +1,400 @@
+<html><head><title>Roo/htmleditor/TidyWriter.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/***
+ * This is based loosely on tinymce 
+ * @class Roo.htmleditor.TidyWriter
+ * https://github.com/thorn0/tinymce.html/blob/master/tinymce.html.js
+ *
+ * Known issues?
+ * - not tested much with 'PRE' formated elements.
+ * 
+ *
+ *
+ */
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidyWriter </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">)
+{
+
+    </span><span class="jsdoc-comment">// indent, indentBefore, indentAfter, encode, htmlOutput, html = [];
+    </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">settings</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-var">this.html </span><span class="jsdoc-syntax">= [];
+    </span><span class="jsdoc-var">this.state </span><span class="jsdoc-syntax">= [];
+
+    </span><span class="jsdoc-var">this.encode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.htmleditor.TidyEntities.getEncodeFunc</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">settings.entity_encoding </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'raw'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">settings.entities</span><span class="jsdoc-syntax">);
+
+}
+</span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.prototype </span><span class="jsdoc-syntax">= {
+
+
+    </span><span class="jsdoc-var">state </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">indent </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-string">'  '</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-comment">// part of state...
+    </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">in_pre</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">last_inline </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">encode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+
+            </span><span class="jsdoc-comment">/**
+    * Writes the a start element such as &lt;p id=&quot;a&quot;&gt;.
+    *
+    * @method start
+    * @param {String} name Name of the element.
+    * @param {Array} attrs Optional attribute array or undefined if it hasn't any.
+    * @param {Boolean} empty Optional empty state if the tag should end like &lt;br /&gt;.
+    */
+    </span><span class="jsdoc-var">start</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attrs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">empty</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-comment">// there are some situations where adding line break &amp;&amp; indentation will not work. will not work.
+        // &lt;span / b / i ... formating?
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.in_inline </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.inline_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) &gt; -1;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">in_pre    </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.in_pre    </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.whitespace_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) &gt; -1;
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">is_short   </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">empty </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.shortend_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) &gt; -1 : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">add_lb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'BR' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">in_inline</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">add_lb </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.in_pre </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.lastElementEndsWS</span><span class="jsdoc-syntax">()) {
+            </span><span class="jsdoc-var">i_inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-var">this.indentstr</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-comment">// e_inline = elements that can be inline, but still allow \n before and after?
+        // only 'BR' ??? any others?
+
+        // ADD LINE BEFORE tage
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.in_pre</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">in_inline</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-comment">//code
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'BR'</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+                } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.lastElementEndsWS</span><span class="jsdoc-syntax">()) {
+                    </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+                } </span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
+                    </span><span class="jsdoc-comment">// otherwise - no new line. (and dont indent.)
+                    </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+                }
+
+            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+                </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+            }
+        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&lt;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name.toLowerCase</span><span class="jsdoc-syntax">());
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attrs</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attrs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
+                </span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">attrs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
+                </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">attr.name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'=&quot;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.encode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">attr.value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">'&quot;'</span><span class="jsdoc-syntax">);
+            }
+        }
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">empty</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">is_short</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'/&gt;'</span><span class="jsdoc-syntax">;
+            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+                </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'&gt;&lt;/' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name.toLowerCase</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">e_inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'BR' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.in_inline</span><span class="jsdoc-syntax">;
+
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">e_inline </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">this.in_pre</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+            }
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+
+        }
+        </span><span class="jsdoc-comment">// not empty..
+        </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-comment">// there is a special situation, where we need to turn on in_inline - if any of the imediate chidlren are one of these.
+        /*
+        if (!in_inline &amp;&amp; !in_pre) {
+            var cn = node.firstChild;
+            while(cn) {
+                if (Roo.htmleditor.TidyWriter.inline_elements.indexOf(cn.nodeName) &gt; -1) {
+                    in_inline = true
+                    break;
+                }
+                cn = cn.nextSibling;
+            }
+             
+        }
+        */
+
+
+        </span><span class="jsdoc-var">this.pushState</span><span class="jsdoc-syntax">({
+            </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">in_pre   </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">this.indentstr </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.indent</span><span class="jsdoc-syntax">),
+            </span><span class="jsdoc-var">in_pre </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">in_pre</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">:  </span><span class="jsdoc-var">in_inline
+        </span><span class="jsdoc-syntax">});
+        </span><span class="jsdoc-comment">// add a line after if we are not in a
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">in_pre</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+        }
+
+
+
+
+    },
+
+    </span><span class="jsdoc-var">lastElementEndsWS </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.html.length </span><span class="jsdoc-syntax">&gt; 0 ? </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">-1] : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value.match</span><span class="jsdoc-syntax">(/\s+$/);
+
+    },
+
+    </span><span class="jsdoc-comment">/**
+     * Writes the a end element such as &lt;/p&gt;.
+     *
+     * @method end
+     * @param {String} name Name of the element.
+     */
+    </span><span class="jsdoc-var">end</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">this.popState</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.in_inline </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.inline_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) &gt; -1;
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.in_pre </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">in_inline</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+            </span><span class="jsdoc-var">indentstr  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.indentstr</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&lt;/'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name.toLowerCase</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">this.last_inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">in_inline</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-comment">// pop the indent state..
+    </span><span class="jsdoc-syntax">},
+    </span><span class="jsdoc-comment">/**
+     * Writes a text node.
+     *
+     * In pre - we should not mess with the contents.
+     * 
+     *
+     * @method text
+     * @param {String} text String to write out.
+     * @param {Boolean} raw Optional raw state if true the contents wont get encoded.
+     */
+    </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-comment">// if not in whitespace critical
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text.length </span><span class="jsdoc-syntax">&lt; 1) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.in_pre</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] =  </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.in_inline</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+/g,</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// all white space inc line breaks to a slingle' '
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+/,</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">);  </span><span class="jsdoc-comment">// all white space to single white space
+
+
+                // if next tag is '&lt;BR&gt;', then we can trim right..
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nextSibling </span><span class="jsdoc-syntax">&amp;&amp;
+                    </span><span class="jsdoc-var">node.nextSibling.nodeType </span><span class="jsdoc-syntax">== 1 &amp;&amp;
+                    </span><span class="jsdoc-var">node.nextSibling.nodeName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'BR' </span><span class="jsdoc-syntax">)
+                {
+                    </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+$/g,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+                }
+                </span><span class="jsdoc-comment">// if previous tag was a BR, we can also trim..
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.previousSibling </span><span class="jsdoc-syntax">&amp;&amp;
+                    </span><span class="jsdoc-var">node.previousSibling.nodeType </span><span class="jsdoc-syntax">== 1 &amp;&amp;
+                    </span><span class="jsdoc-var">node.previousSibling.nodeName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'BR' </span><span class="jsdoc-syntax">)
+                {
+                    </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.indentstr </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/^\s+/g,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+                }
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text.match</span><span class="jsdoc-syntax">(/\n/)) {
+                    </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(
+                        /(?![^\n]{1,64}$)([^\n]{1,64})\s/g, </span><span class="jsdoc-string">'$1\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.indentstr
+                    </span><span class="jsdoc-syntax">);
+                    </span><span class="jsdoc-comment">// remoeve the last whitespace / line break.
+                    </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\n\s+$/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+                }
+                </span><span class="jsdoc-comment">// repace long lines
+
+            </span><span class="jsdoc-syntax">}
+
+            </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] =  </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-comment">// see if previous element was a inline element.
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.indentstr</span><span class="jsdoc-syntax">;
+
+        </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+/g,</span><span class="jsdoc-string">&quot; &quot;</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// all whitespace into single white space.
+
+        // should trim left?
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.previousSibling </span><span class="jsdoc-syntax">&amp;&amp;
+            </span><span class="jsdoc-var">node.previousSibling.nodeType </span><span class="jsdoc-syntax">== 1 &amp;&amp;
+            </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.inline_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.previousSibling.nodeName</span><span class="jsdoc-syntax">) &gt; -1)
+        {
+            </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+
+        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-var">this.addLine</span><span class="jsdoc-syntax">();
+            </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/^\s+/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// trim left
+
+        </span><span class="jsdoc-syntax">}
+        </span><span class="jsdoc-comment">// should trim right?
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nextSibling </span><span class="jsdoc-syntax">&amp;&amp;
+            </span><span class="jsdoc-var">node.nextSibling.nodeType </span><span class="jsdoc-syntax">== 1 &amp;&amp;
+            </span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.inline_elements.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nextSibling.nodeName</span><span class="jsdoc-syntax">) &gt; -1)
+        {
+          </span><span class="jsdoc-comment">// noop
+
+        </span><span class="jsdoc-syntax">}  </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+$/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// trim right
+        </span><span class="jsdoc-syntax">}
+
+
+
+
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text.length </span><span class="jsdoc-syntax">&lt; 1) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">text.match</span><span class="jsdoc-syntax">(/\n/)) {
+            </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.indentstr </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(
+            /(?![^\n]{1,64}$)([^\n]{1,64})\s/g, </span><span class="jsdoc-string">'$1\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.indentstr
+        </span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">// remoeve the last whitespace / line break.
+        </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\s+$/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-comment">// split and indent..
+
+
+    </span><span class="jsdoc-syntax">},
+    </span><span class="jsdoc-comment">/**
+     * Writes a cdata node such as &lt;![CDATA[data]]&gt;.
+     *
+     * @method cdata
+     * @param {String} text String to write out inside the cdata.
+     */
+    </span><span class="jsdoc-var">cdata</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;![CDATA['</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">']]&gt;'</span><span class="jsdoc-syntax">);
+    },
+    </span><span class="jsdoc-comment">/**
+    * Writes a comment node such as &lt;!-- Comment --&gt;.
+    *
+    * @method cdata
+    * @param {String} text String to write out inside the comment.
+    */
+   </span><span class="jsdoc-var">comment</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+       </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;!--'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'--&gt;'</span><span class="jsdoc-syntax">);
+   },
+    </span><span class="jsdoc-comment">/**
+     * Writes a PI node such as &lt;?xml attr=&quot;value&quot; ?&gt;.
+     *
+     * @method pi
+     * @param {String} name Name of the pi.
+     * @param {String} text String to write out inside the pi.
+     */
+    </span><span class="jsdoc-var">pi</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;?'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.encode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">'?&gt;'</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;?'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'?&gt;'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">this.indent </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">);
+    },
+    </span><span class="jsdoc-comment">/**
+     * Writes a doctype node such as &lt;!DOCTYPE data&gt;.
+     *
+     * @method doctype
+     * @param {String} text String to write out inside the doctype.
+     */
+    </span><span class="jsdoc-var">doctype</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'&lt;!DOCTYPE'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.indent </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'\n' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+    },
+    </span><span class="jsdoc-comment">/**
+     * Resets the internal buffer if one wants to reuse the writer.
+     *
+     * @method reset
+     */
+    </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
+        </span><span class="jsdoc-var">this.html.length </span><span class="jsdoc-syntax">= 0;
+        </span><span class="jsdoc-var">this.state </span><span class="jsdoc-syntax">= [];
+        </span><span class="jsdoc-var">this.pushState</span><span class="jsdoc-syntax">({
+            </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">in_pre </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">in_inline </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false
+        </span><span class="jsdoc-syntax">})
+    },
+    </span><span class="jsdoc-comment">/**
+     * Returns the contents that got serialized.
+     *
+     * @method getContent
+     * @return {String} HTML contents that got written down.
+     */
+    </span><span class="jsdoc-var">getContent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.html.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\n$/, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+    },
+
+    </span><span class="jsdoc-var">pushState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-var">this.state.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">);
+    },
+
+    </span><span class="jsdoc-var">popState </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.state.length </span><span class="jsdoc-syntax">&lt; 1) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// nothing to push
+        </span><span class="jsdoc-syntax">}
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">in_pre</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">indentstr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''
+        </span><span class="jsdoc-syntax">};
+        </span><span class="jsdoc-var">this.state.pop</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.state.length </span><span class="jsdoc-syntax">&gt; 0) {
+            </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.state</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.state.length</span><span class="jsdoc-syntax">-1];
+        }
+        </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">);
+    },
+
+    </span><span class="jsdoc-var">addLine</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.html.length </span><span class="jsdoc-syntax">&lt; 1) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length </span><span class="jsdoc-syntax">- 1];
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">&gt; 0 &amp;&amp; </span><span class="jsdoc-string">'\n' </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.html.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">);
+        }
+    }
+
+
+</span><span class="jsdoc-comment">//'pre script noscript style textarea video audio iframe object code'
+// shortended... 'area base basefont br col frame hr img input isindex link  meta param embed source wbr track');
+// inline 
+</span><span class="jsdoc-syntax">};
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.inline_elements </span><span class="jsdoc-syntax">= [
+        </span><span class="jsdoc-string">'SPAN'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'STRONG'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'B'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'EM'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'I'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'FONT'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'STRIKE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'U'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'VAR'</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-string">'CITE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'DFN'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'CODE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'MARK'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'Q'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'SUP'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'SUB'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'SAMP'
+</span><span class="jsdoc-syntax">];
+</span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.shortend_elements </span><span class="jsdoc-syntax">= [
+    </span><span class="jsdoc-string">'AREA'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'BASE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'BASEFONT'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'BR'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'COL'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'FRAME'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'HR'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'IMG'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'INPUT'</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-string">'ISINDEX'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'LINK'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'META'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'PARAM'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'EMBED'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'SOURCE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'WBR'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'TRACK'
+</span><span class="jsdoc-syntax">];
+
+</span><span class="jsdoc-var">Roo.htmleditor.TidyWriter.whitespace_elements </span><span class="jsdoc-syntax">= [
+    </span><span class="jsdoc-string">'PRE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'SCRIPT'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'NOSCRIPT'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'STYLE'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'TEXTAREA'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'VIDEO'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'AUDIO'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'IFRAME'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'OBJECT'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-string">'CODE'
+</span><span class="jsdoc-syntax">];</span></code></body></html>
\ No newline at end of file
diff --git a/docs/symbols/Roo.htmleditor.TidyEntities.json b/docs/symbols/Roo.htmleditor.TidyEntities.json
new file mode 100644 (file)
index 0000000..5b4327a
--- /dev/null
@@ -0,0 +1,267 @@
+{
+  "name" : "Roo.htmleditor.TidyEntities",
+  "augments" : [],
+  "childClasses" : {  },
+  "tree_children" : [],
+  "tree_parent" : [],
+  "desc" : "This is based loosely on tinymce",
+  "isSingleton" : false,
+  "isStatic" : true,
+  "isBuiltin" : false,
+  "isAbstract" : false,
+  "isBuilderTop" : false,
+  "memberOf" : "TidyEntities",
+  "example" : "",
+  "deprecated" : "",
+  "since" : "",
+  "see" : "",
+  "params" : [],
+  "returns" : [],
+  "throws" : "",
+  "requires" : "",
+  "config" : [],
+  "methods" : [
+    {
+      "name" : "getEncodeFunc",
+      "type" : "function",
+      "desc" : "Returns an encode function based on the name(s) and it's optional entities.",
+      "sig" : "(name, entities)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "name",
+          "type" : "String",
+          "desc" : "Comma separated list of encoders for example named,numeric.",
+          "isOptional" : false
+        },
+        {
+          "name" : "entities",
+          "type" : "String",
+          "desc" : "Optional parameter with entities to use instead of the built in set.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "function",
+          "desc" : "Encode function to be used."
+        }
+      ]
+    },
+    {
+      "name" : "encodeAllRaw",
+      "type" : "function",
+      "desc" : "Encoded the specified text with both the attributes and text entities. This function will produce larger text contents\nsince it doesn't know if the context is within a attribute or text node. This was added for compatibility\nand is exposed as the DOMUtils.encode function.",
+      "sig" : "(text)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "Text to encode.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "Entity encoded text."
+        }
+      ]
+    },
+    {
+      "name" : "encodeRaw",
+      "type" : "function",
+      "desc" : "Encodes the specified string using raw entities. This means only the required XML base entities will be encoded.",
+      "sig" : "(text, attr)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "Text to encode.",
+          "isOptional" : false
+        },
+        {
+          "name" : "attr",
+          "type" : "Boolean",
+          "desc" : "Optional flag to specify if the text is attribute contents.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "Entity encoded text."
+        }
+      ]
+    },
+    {
+      "name" : "encodeNumeric",
+      "type" : "function",
+      "desc" : "Encodes the specified string using numeric entities. The core entities will be\nencoded as named ones but all non lower ascii characters will be encoded into numeric entities.",
+      "sig" : "(text, attr)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "Text to encode.",
+          "isOptional" : false
+        },
+        {
+          "name" : "attr",
+          "type" : "Boolean",
+          "desc" : "Optional flag to specify if the text is attribute contents.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "Entity encoded text."
+        }
+      ]
+    },
+    {
+      "name" : "encodeNamed",
+      "type" : "function",
+      "desc" : "Encodes the specified string using named entities. The core entities will be encoded\nas named ones but all non lower ascii characters will be encoded into named entities.",
+      "sig" : "(text, attr, entities)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "Text to encode.",
+          "isOptional" : false
+        },
+        {
+          "name" : "attr",
+          "type" : "Boolean",
+          "desc" : "Optional flag to specify if the text is attribute contents.",
+          "isOptional" : false
+        },
+        {
+          "name" : "entities",
+          "type" : "Object",
+          "desc" : "Optional parameter with entities to use.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "Entity encoded text."
+        }
+      ]
+    },
+    {
+      "name" : "init",
+      "type" : "function",
+      "desc" : "initialize data..",
+      "sig" : "()\n{\n\n}",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [],
+      "returns" : []
+    },
+    {
+      "name" : "decode",
+      "type" : "function",
+      "desc" : "Decodes the specified string, this will replace entities with raw UTF characters.",
+      "sig" : "(text)",
+      "static" : true,
+      "memberOf" : "",
+      "isStatic" : true,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "Text to entity decode.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "Entity decoded string."
+        }
+      ]
+    }
+  ],
+  "events" : []
+}
\ No newline at end of file
diff --git a/docs/symbols/Roo.htmleditor.TidySerializer.json b/docs/symbols/Roo.htmleditor.TidySerializer.json
new file mode 100644 (file)
index 0000000..66eb772
--- /dev/null
@@ -0,0 +1,91 @@
+{
+  "name" : "Roo.htmleditor.TidySerializer",
+  "augments" : [],
+  "childClasses" : {  },
+  "tree_children" : [],
+  "tree_parent" : [],
+  "desc" : "This is based loosely on tinymce",
+  "isSingleton" : false,
+  "isStatic" : false,
+  "isBuiltin" : false,
+  "isAbstract" : false,
+  "isBuilderTop" : false,
+  "memberOf" : "TidySerializer",
+  "example" : "",
+  "deprecated" : "",
+  "since" : "",
+  "see" : "",
+  "params" : [
+    {
+      "name" : "settings",
+      "type" : "Object",
+      "desc" : "Name/value settings object.",
+      "isOptional" : false
+    }
+  ],
+  "returns" : [],
+  "throws" : "",
+  "requires" : "",
+  "config" : [],
+  "methods" : [
+    {
+      "name" : "inner",
+      "type" : "function",
+      "desc" : "",
+      "sig" : "(inner)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "inner",
+          "type" : "boolean",
+          "desc" : "do the inner of the node.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "serialize",
+      "type" : "function",
+      "desc" : "Serializes the specified node into a string.",
+      "sig" : "(node)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "new tinymce.html.Serializer().serialize(new tinymce.html.DomParser().parse('<p>text</p>'));",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "node",
+          "type" : "DomElement",
+          "desc" : "Node instance to serialize.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "String with HTML based on DOM tree."
+        }
+      ]
+    }
+  ],
+  "events" : []
+}
\ No newline at end of file
diff --git a/docs/symbols/Roo.htmleditor.TidyWriter.json b/docs/symbols/Roo.htmleditor.TidyWriter.json
new file mode 100644 (file)
index 0000000..6cf301b
--- /dev/null
@@ -0,0 +1,276 @@
+{
+  "name" : "Roo.htmleditor.TidyWriter",
+  "augments" : [],
+  "childClasses" : {  },
+  "tree_children" : [],
+  "tree_parent" : [],
+  "desc" : "This is based loosely on tinymce",
+  "isSingleton" : false,
+  "isStatic" : false,
+  "isBuiltin" : false,
+  "isAbstract" : false,
+  "isBuilderTop" : false,
+  "memberOf" : "TidyWriter",
+  "example" : "",
+  "deprecated" : "",
+  "since" : "",
+  "see" : "",
+  "params" : [],
+  "returns" : [],
+  "throws" : "",
+  "requires" : "",
+  "config" : [],
+  "methods" : [
+    {
+      "name" : "doctype",
+      "type" : "function",
+      "desc" : "Writes a doctype node such as <!DOCTYPE data>.",
+      "sig" : "(text)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "String to write out inside the doctype.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "reset",
+      "type" : "function",
+      "desc" : "Resets the internal buffer if one wants to reuse the writer.",
+      "sig" : "()\n{\n\n}",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [],
+      "returns" : []
+    },
+    {
+      "name" : "text",
+      "type" : "function",
+      "desc" : "Writes a text node.\n\nIn pre - we should not mess with the contents.",
+      "sig" : "(text, raw)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "String to write out.",
+          "isOptional" : false
+        },
+        {
+          "name" : "raw",
+          "type" : "Boolean",
+          "desc" : "Optional raw state if true the contents wont get encoded.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "getContent",
+      "type" : "function",
+      "desc" : "Returns the contents that got serialized.",
+      "sig" : "()\n{\n\n}",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [],
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "String",
+          "desc" : "HTML contents that got written down."
+        }
+      ]
+    },
+    {
+      "name" : "comment",
+      "type" : "function",
+      "desc" : "Writes a comment node such as <!-- Comment -->.",
+      "sig" : "(text)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "String to write out inside the comment.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "end",
+      "type" : "function",
+      "desc" : "Writes the a end element such as </p>.",
+      "sig" : "(name)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "name",
+          "type" : "String",
+          "desc" : "Name of the element.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "pi",
+      "type" : "function",
+      "desc" : "Writes a PI node such as <?xml attr=\"value\" ?>.",
+      "sig" : "(name, text)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "name",
+          "type" : "String",
+          "desc" : "Name of the pi.",
+          "isOptional" : false
+        },
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "String to write out inside the pi.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "start",
+      "type" : "function",
+      "desc" : "Writes the a start element such as <p id=\"a\">.",
+      "sig" : "(name, attrs, empty)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "name",
+          "type" : "String",
+          "desc" : "Name of the element.",
+          "isOptional" : false
+        },
+        {
+          "name" : "attrs",
+          "type" : "Array",
+          "desc" : "Optional attribute array or undefined if it hasn't any.",
+          "isOptional" : false
+        },
+        {
+          "name" : "empty",
+          "type" : "Boolean",
+          "desc" : "Optional empty state if the tag should end like <br />.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "cdata",
+      "type" : "function",
+      "desc" : "Writes a cdata node such as <![CDATA[data]]>.",
+      "sig" : "(text)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "text",
+          "type" : "String",
+          "desc" : "String to write out inside the cdata.",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    }
+  ],
+  "events" : []
+}
\ No newline at end of file