X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=docs%2Fsrc%2FRoo_htmleditor_Tidy.js.html;h=9c2f205cf4db9b0085c9aeee9dddba68f826b41f;hp=597ca0bb1007eef5d3aee5e47d08676cd7f27a91;hb=356f5ee4ec78e1c538f224acb762c98e75be3d39;hpb=0f0774d7fe6b1f6bb2e34cb961bb516159ac3a3f diff --git a/docs/src/Roo_htmleditor_Tidy.js.html b/docs/src/Roo_htmleditor_Tidy.js.html index 597ca0bb10..9c2f205cf4 100644 --- a/docs/src/Roo_htmleditor_Tidy.js.html +++ b/docs/src/Roo_htmleditor_Tidy.js.html @@ -2,7 +2,7 @@ /** * @class Roo.htmleditor.Tidy * Tidy HTML - * @cfg {Roo.HtmlEditorCore} core the editor. + * * @constructor * Create a new Filter. * @param {Object} config Configuration options @@ -23,123 +23,21 @@ Roo.htmleditor.Tidy.prototype = { + /** + * + * @cfg {Roo.HtmlEditorCore} core the editor. + */ + core : false, - wrap : function(s) { - return s.replace(/\n/g, " ").replace(/(?![^\n]{1,80}$)([^\n]{1,80})\s/g, '$1\n'); - }, tidy : function(node, indent) { + var ser = new Roo.htmleditor.TidySerializer({ + indent : 2, + }); + return ser.serialize(node); - if (node.nodeType == 3) { - // text. - - - return indent === false ? node.nodeValue : this.wrap(node.nodeValue.trim()).split("\n").join("\n" + indent); - - - } - - if (node.nodeType != 1) { - return ''; - } - - - - if (node.tagName == 'BODY') { - - return this.cn(node, ''); - } - - // Prints the node tagName, such as <A>, <IMG>, etc - var ret = "<" + node.tagName + this.attr(node) ; - - // elements with no children.. - if (['IMG', 'BR', 'HR', 'INPUT'].indexOf(node.tagName) > -1) { - return ret + '/>'; - } - ret += '>'; - - - var cindent = indent === false ? '' : (indent + ' '); - // tags where we will not pad the children.. (inline text tags etc..) - if (['PRE', 'TEXTAREA', 'TD', 'A', 'SPAN', 'B', 'I', 'S'].indexOf(node.tagName) > -1) { // or code? - cindent = false; - - - } - - var cn = this.cn(node, cindent ); - - return ret + cn + '</' + node.tagName + '>'; - - }, - cn: function(node, indent) - { - var ret = []; - - var ar = Array.from(node.childNodes); - for (var i = 0 ; i < ar.length ; i++) { - - - - if (indent !== false // indent==false preservies everything - && i > 0 - && ar[i].nodeType == 3 - && ar[i].nodeValue.length > 0 - && ar[i].nodeValue.match(/^\s+/) - ) { - if (ret.length && ret[ret.length-1] == "\n" + indent) { - ret.pop(); // remove line break from last? - } - - ret.push(" "); // add a space if i'm a text item with a space at the front, as tidy will strip spaces. - } - if (indent !== false - && ar[i].nodeType == 1 // element - and indent is not set... - ) { - ret.push("\n" + indent); - } - - ret.push(this.tidy(ar[i], indent)); - // text + trailing indent - if (indent !== false - && ar[i].nodeType == 3 - && ar[i].nodeValue.length > 0 - && ar[i].nodeValue.match(/\s+$/) - ){ - ret.push("\n" + indent); - } - - - - - } - // what if all text? - - - return ret.join(''); - }, - - - - attr : function(node) - { - var attr = []; - for(i = 0; i < node.attributes.length;i++) { - - // skip empty values? - if (!node.attributes.item(i).value.length) { - continue; - } - attr.push( node.attributes.item(i).name + '="' + - Roo.util.Format.htmlEncode(node.attributes.item(i).value) + '"' - ); - } - return attr.length ? (' ' + attr.join(' ') ) : ''; } - - } \ No newline at end of file