http://www.mediawiki.org/wiki/Special:Code/MediaWiki/98814

Revision: 98814
Author:   tparscal
Date:     2011-10-03 22:06:30 +0000 (Mon, 03 Oct 2011)
Log Message:
-----------
Finished rebuildChildNodes function

Modified Paths:
--------------
    trunk/parsers/wikidom/lib/hype/models/es.DocumentModel.js

Modified: trunk/parsers/wikidom/lib/hype/models/es.DocumentModel.js
===================================================================
--- trunk/parsers/wikidom/lib/hype/models/es.DocumentModel.js   2011-10-03 
22:06:09 UTC (rev 98813)
+++ trunk/parsers/wikidom/lib/hype/models/es.DocumentModel.js   2011-10-03 
22:06:30 UTC (rev 98814)
@@ -202,12 +202,28 @@
        for ( var i = 0, length = this.data.length; i < length; i++ ) {
                if ( this.data[i].type !== undefined ) {
                        // It's an element
-                       if ( this.data[i].type in es.DocumentModel.nodeModels ) 
{
-                               var node = new 
es.DocumentModel.nodeModels[this.data[i].type]();
-                               //this.push(  );
+                       var type = this.data[i].type,
+                               open = type[0] !== '/';
+                       if ( !open ) {
+                               type = type.substr( 1 );
                        }
+                       if ( !( type in es.DocumentModel.nodeModels ) ) {
+                               throw 'Unsuported element error. No class 
registered for element type: ' + type;
+                       }
+                       if ( open ) {
+                               var newNode = new 
es.DocumentModel.nodeModels[this.data[i].type]();
+                               currentNode.push( newNode );
+                               currentNode = newNode;
+                       } else {
+                               currentNode = currentNode.getParent();
+                       }
                } else {
-                       // It's content - there are no child elements
+                       // It's content
+                       var start = i;
+                       while ( this.data[i].type === undefined && i < length ) 
{
+                               i++;
+                       }
+                       currentNode.setContentLength( i - start );
                }
        }
 };


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to