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