http://www.mediawiki.org/wiki/Special:Code/MediaWiki/94979
Revision: 94979
Author: inez
Date: 2011-08-19 01:57:14 +0000 (Fri, 19 Aug 2011)
Log Message:
-----------
Early version of getWikiDom for ListBlock
Modified Paths:
--------------
trunk/parsers/wikidom/lib/es/es.ListBlock.js
Modified: trunk/parsers/wikidom/lib/es/es.ListBlock.js
===================================================================
--- trunk/parsers/wikidom/lib/es/es.ListBlock.js 2011-08-19 01:13:18 UTC
(rev 94978)
+++ trunk/parsers/wikidom/lib/es/es.ListBlock.js 2011-08-19 01:57:14 UTC
(rev 94979)
@@ -355,10 +355,62 @@
};
es.ListBlock.prototype.getWikiDom = function() {
- return {
- 'type': 'list',
- 'items': []
- };
+ var previousStyle,
+ stack = [],
+ previousLevel = -1,
+ items = this.list.items;
+
+ for( var i = 0; i < items.length; i++) {
+ var item = items[i];
+
+ if(item.level === previousLevel) {
+ if(item.style !== previousStyle) {
+ var x = stack.pop();
+ if(!stack[stack.length -
1].items[stack[stack.length - 1].items.length - 1].lists) {
+ stack[stack.length -
1].items[stack[stack.length - 1].items.length - 1].lists = [];
+ }
+ stack[stack.length -
1].items[stack[stack.length - 1].items.length - 1].lists.push(x);
+ stack.push( {
+ 'items' : [],
+ 'style' : item.style
+ } );
+ previousStyle = item.style;
+ }
+ }
+
+ if(item.level > previousLevel) {
+ console.log(item.content.getText());
+ stack.push( {
+ 'items' : [],
+ 'style' : item.style
+ } );
+ previousLevel = item.level;
+
+ }
+
+ if(item.level < previousLevel) {
+ var x = stack.pop();
+ if(!stack[stack.length - 1].items[stack[stack.length -
1].items.length - 1].lists) {
+ stack[stack.length -
1].items[stack[stack.length - 1].items.length - 1].lists = []
+ }
+ stack[stack.length - 1].items[stack[stack.length -
1].items.length - 1].lists.push(x);
+
+ previousLevel = item.level;
+ previousStyle = item.style;
+ }
+
+ if(item.level == previousLevel) {
+ stack[stack.length - 1].items.push(
+ {
+ 'line' :
item.content.getWikiDomLines()[0]
+ }
+ );
+ previousStyle = item.style;
+ }
+ }
+
+ stack[0].type = 'list';
+ return stack[0];
};
/* Registration */
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs