define( function ( require, exports, module ) {
    var etpl = require( '.' );

    return {
        load: function ( resourceId, require, load, config ) {
            var xhr = window.XMLHttpRequest 
                ? new XMLHttpRequest()
                : new ActiveXObject( 'Microsoft.XMLHTTP' );
            xhr.open( 'GET', resourceId, true );
            xhr.onreadystatechange = function () {
                if ( xhr.readyState == 4 ) {
                    if ( xhr.status >= 200 && xhr.status < 300 ) {
                        var source = xhr.responseText;
                        var moduleConfig = module.config();
                        if ( typeof moduleConfig.autoCompile == 'undefined' 
                            || moduleConfig.autoCompile 
                        ) {
                            etpl.compile( source );
                        }

                        load( source );
                    }

                    xhr.onreadystatechange = new Function();
                    xhr = null;
                }
            };

            xhr.send( null );
        },

        normalize: function ( resourceId ) {
            var url = resourceId;

            if ( !/^([a-z]{2,10}:\/)?\//i.test( url ) ) {
                var baseSegs = location.pathname.split( '/' );
                var relativeSegs = url.split( '/' );

                var levelPoint = baseSegs.length - 2;
                for ( var i = 0, len = relativeSegs.length; i < len; i++ ) {
                    var seg = relativeSegs[ i ];
                    switch ( seg ) {
                        case '.':
                            break;
                        case '..':
                            if ( levelPoint > 0 ) {
                                levelPoint--;
                            }
                            break;
                        default:
                            baseSegs[ ++levelPoint ] = seg;
                            break;
                    }
                }

                baseSegs.length = levelPoint + 1;
                url = baseSegs.join( '/' );
            }

            return url;
        }
    };
} );
@@ -1,12 +1,165 @@
+/**%0A * ETPL (Enterprise Template)%0A * Copyright 2013 Baidu Inc. All rights reserved.%0A * %0A * @file %E5%8A%A0%E8%BD%BD%E6%A8%A1%E6%9D%BF%E7%9A%84amd%E6%A8%A1%E5%9D%97%0A * @author errorrik(errorrik@gmail.com)%0A */%0A%0A
 define( 
 func
@@ -154,16 +154,21 @@
 define( 
+%0A    
 function
@@ -195,24 +195,28 @@
  module ) %7B%0A
+    
     var etpl
@@ -235,24 +235,28 @@
 '.' );%0A%0A    
+  
+  
 return %7B%0A   
@@ -252,16 +252,20 @@
 eturn %7B%0A
+    
         
@@ -327,24 +327,28 @@
             
+    
 var xhr = wi
@@ -384,16 +384,20 @@
         
+  
+  
 ? new XM
@@ -411,16 +411,20 @@
 quest()%0A
+    
         
@@ -483,24 +483,28 @@
             
+    
 xhr.open( 'G
@@ -532,32 +532,36 @@
  );%0A            
+ 
+   
 xhr.onreadystate
@@ -591,32 +591,36 @@
                 
+   
+ 
 if ( xhr.readySt
@@ -628,24 +628,28 @@
 te == 4 ) %7B%0A
+    
             
@@ -723,24 +723,28 @@
             
+ 
+   
 var source =
@@ -782,24 +782,28 @@
             
+   
+ 
 var moduleCo
@@ -822,24 +822,28 @@
 e.config();%0A
+    
             
@@ -905,18 +905,21 @@
 defined'
- 
 %0A
+    
         
@@ -991,20 +991,28 @@
         
-) %7B%0A
+    ) %7B%0A    
         
@@ -1071,35 +1071,43 @@
                 
-%7D%0A%0A
+    %7D%0A%0A    
                 
@@ -1142,35 +1142,43 @@
                 
+   
+ 
 %7D%0A%0A
+    
                 
@@ -1242,16 +1242,20 @@
         
+    
 xhr = nu
@@ -1266,34 +1266,42 @@
                 
+   
+ 
 %7D%0A
+    
             %7D;%0A%0A
@@ -1300,16 +1300,20 @@
     %7D;%0A%0A
+    
         
@@ -1346,12 +1346,20 @@
     
+  
+  
 %7D,%0A%0A
+    
     
@@ -1407,24 +1407,28 @@
             
+    
 var url = re
@@ -1446,24 +1446,28 @@
             
+  
+  
 if ( !/%5E(%5Ba-
@@ -1496,24 +1496,28 @@
 ( url ) ) %7B%0A
+    
             
@@ -1579,24 +1579,28 @@
             
+    
 var relative
@@ -1637,24 +1637,28 @@
             
+ 
+   
 var levelPoi
@@ -1683,16 +1683,20 @@
 th - 2;%0A
+    
         
@@ -1780,24 +1780,28 @@
             
+    
 var seg = re
@@ -1837,16 +1837,20 @@
         
+ 
+   
 switch (
@@ -1854,24 +1854,28 @@
 h ( seg ) %7B%0A
+    
             
@@ -1916,32 +1916,36 @@
                 
+    
 break;%0A         
@@ -1955,24 +1955,28 @@
             
+ 
+   
 case '..':%0A 
@@ -1970,24 +1970,28 @@
  case '..':%0A
+    
             
@@ -2062,16 +2062,20 @@
         
+    
 levelPoi
@@ -2100,34 +2100,42 @@
                 
+ 
-%7D%0A
+   %7D%0A    
                 
@@ -2145,32 +2145,36 @@
          break;%0A
+    
                 
@@ -2210,32 +2210,36 @@
                 
+    
 baseSegs%5B ++leve
@@ -2274,39 +2274,47 @@
                 
+    
 break;%0A
+    
                 
@@ -2327,35 +2327,43 @@
                 
-%7D%0A%0A
+    %7D%0A%0A    
                 
@@ -2412,16 +2412,20 @@
         
+   
+ 
 url = ba
@@ -2448,35 +2448,43 @@
  );%0A            
-%7D%0A%0A
+    %7D%0A%0A    
             retu
@@ -2503,17 +2503,29 @@
     
+   
+ 
 %7D%0A    
+  
+  
 %7D;%0A
-%7D
  
+   %7D%0A
 );

add comment