Changeset 856 for trunk/modules/GetHtml


Ignore:
Timestamp:
06/13/07 18:34:34 (12 years ago)
Author:
wymsy
Message:

Change namespace from HTMLArea to Xinha in all the plugins - ref ticket #916

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/GetHtml/TransformInnerHTML.js

    r855 r856  
    44  * http://www.sitepoint.com/forums/showthread.php?t=201052 
    55  *  
    6   * A replacement for HTMLArea.getHTML 
     6  * A replacement for Xinha.getHTML 
    77  * 
    88  * Features: 
    99  *   - Generates XHTML code 
    10   *   - Much faster than HTMLArea.getHTML 
     10  *   - Much faster than Xinha.getHTML 
    1111  *   - Eliminates the hacks to accomodate browser quirks 
    1212  *   - Returns correct code for Flash objects and scripts 
     
    3333}; 
    3434 
    35 HTMLArea.RegExpCache = [ 
     35Xinha.RegExpCache = [ 
    3636/*00*/  new RegExp().compile(/<\s*\/?([^\s\/>]+)[\s*\/>]/gi),//lowercase tags 
    3737/*01*/  new RegExp().compile(/(\s+)_moz[^=>]*=[^\s>]*/gi),//strip _moz attributes 
     
    6363  * Cleans HTML into wellformed xhtml 
    6464  */ 
    65 HTMLArea.prototype.cleanHTML = function(sHtml) { 
    66         var c = HTMLArea.RegExpCache; 
     65Xinha.prototype.cleanHTML = function(sHtml) { 
     66        var c = Xinha.RegExpCache; 
    6767        sHtml = sHtml. 
    6868                replace(c[0], function(str) { return str.toLowerCase(); } ).//lowercase tags/attribute names 
     
    8080                replace(c[8], '<').//strip tagstart whitespace 
    8181                replace(c[10], ' ');//trim extra whitespace 
    82         if(HTMLArea.is_ie && c[13].test(sHtml)) { 
     82        if(Xinha.is_ie && c[13].test(sHtml)) { 
    8383                sHtml = sHtml.replace(c[13],'$1'+this.stripBaseURL(RegExp.$3)+'"'); 
    8484        } 
    8585        if(this.config.only7BitPrintablesInURLs) { 
    86                 if (HTMLArea.is_ie) c[13].test(sHtml); // oddly the test below only triggers when we call this once before (IE6), in Moz it fails if tested twice 
     86                if (Xinha.is_ie) c[13].test(sHtml); // oddly the test below only triggers when we call this once before (IE6), in Moz it fails if tested twice 
    8787                if ( c[13].test(sHtml)) { 
    8888                        try { //Mozilla returns an incorrectly encoded value with innerHTML 
     
    9999  * Prettyfies html by inserting linebreaks before tags, and indenting blocklevel tags 
    100100  */ 
    101 HTMLArea.indent = function(s, sindentChar) { 
    102         HTMLArea.__nindent = 0; 
    103         HTMLArea.__sindent = ""; 
    104         HTMLArea.__sindentChar = (typeof sindentChar == "undefined") ? "  " : sindentChar; 
    105         var c = HTMLArea.RegExpCache; 
    106         if(HTMLArea.is_gecko) { //moz changes returns into <br> inside <pre> tags 
     101Xinha.indent = function(s, sindentChar) { 
     102        Xinha.__nindent = 0; 
     103        Xinha.__sindent = ""; 
     104        Xinha.__sindentChar = (typeof sindentChar == "undefined") ? "  " : sindentChar; 
     105        var c = Xinha.RegExpCache; 
     106        if(Xinha.is_gecko) { //moz changes returns into <br> inside <pre> tags 
    107107                s = s.replace(c[19], function(str){return str.replace(/<br \/>/g,"\n")}); 
    108108        } 
     
    111111                string = $2.replace(/[\n\r]/gi, " ").replace(/\s+/gi," ").replace(c[14], function(str) { 
    112112                        if (str.match(c[16])) { 
    113                                 var s = "\n" + HTMLArea.__sindent + str; 
     113                                var s = "\n" + Xinha.__sindent + str; 
    114114                                // blocklevel openingtag - increase indent 
    115                                 HTMLArea.__sindent += HTMLArea.__sindentChar; 
    116                                 ++HTMLArea.__nindent; 
     115                                Xinha.__sindent += Xinha.__sindentChar; 
     116                                ++Xinha.__nindent; 
    117117                                return s; 
    118118                        } else if (str.match(c[15])) { 
    119119                                // blocklevel closingtag - decrease indent 
    120                                 --HTMLArea.__nindent; 
    121                                 HTMLArea.__sindent = ""; 
    122                                 for (var i=HTMLArea.__nindent;i>0;--i) { 
    123                                         HTMLArea.__sindent += HTMLArea.__sindentChar; 
     120                                --Xinha.__nindent; 
     121                                Xinha.__sindent = ""; 
     122                                for (var i=Xinha.__nindent;i>0;--i) { 
     123                                        Xinha.__sindent += Xinha.__sindentChar; 
    124124                                } 
    125                                 return "\n" + HTMLArea.__sindent + str; 
     125                                return "\n" + Xinha.__sindent + str; 
    126126                        } else if (str.match(c[17])) { 
    127127                                // singlet tag 
    128                                 return "\n" + HTMLArea.__sindent + str; 
     128                                return "\n" + Xinha.__sindent + str; 
    129129                        } 
    130130                        return str; // this won't actually happen 
     
    140140}; 
    141141 
    142 HTMLArea.getHTML = function(root, outputRoot, editor) { 
     142Xinha.getHTML = function(root, outputRoot, editor) { 
    143143        var html = ""; 
    144         var c = HTMLArea.RegExpCache; 
     144        var c = Xinha.RegExpCache; 
    145145 
    146146        if(root.nodeType == 11) {//document fragment 
     
    192192                }); 
    193193                //IE drops  all </li> tags in a list except the last one 
    194                 if(HTMLArea.is_ie) { 
     194                if(Xinha.is_ie) { 
    195195                        html = html.replace(/<li( [^>]*)?>/g,'</li><li$1>'). 
    196196                                replace(/(<(ul|ol)[^>]*>)[\s\n]*<\/li>/g, '$1'). 
    197197                                replace(/<\/li>([\s\n]*<\/li>)+/g, '<\/li>'); 
    198198                } 
    199                 if(HTMLArea.is_gecko) 
     199                if(Xinha.is_gecko) 
    200200                        html = html.replace(/<br \/>\n$/, ''); //strip trailing <br> added by moz 
    201201                if (outputRoot) { 
    202202                        html += "</" + root_tag + ">"; 
    203203                } 
    204                 html = HTMLArea.indent(html); 
     204                html = Xinha.indent(html); 
    205205        }; 
    206 //      html = HTMLArea.htmlEncode(html); 
     206//      html = Xinha.htmlEncode(html); 
    207207 
    208208        return html; 
Note: See TracChangeset for help on using the changeset viewer.