using stack to remember closing ul tags

master
Matt Huntington 10 years ago
parent 650916b603
commit f4ae96093c

@ -9,22 +9,33 @@ var insertTabs = function(num_tabs) {
return result; return result;
} }
var emptyTabStack = function(tabStack){
var result = '';
while(tabStack.length > 0){
result += tabStack.pop();
}
return result;
}
var parseFile = function(data, callback){ var parseFile = function(data, callback){
var previous_line = -1; var previous_line = -1;
var lines = data.split('\n'); var lines = data.split('\n');
var html = ''; var html = '';
var tabStack = [];
lines.forEach(function(value, index){ lines.forEach(function(value, index){
if(value !== ''){ if(value !== ''){
var split_value = value.split('\t'); var split_value = value.split('\t');
var num_tabs = split_value.length - 1; var num_tabs = split_value.length - 1;
if(num_tabs > previous_line){ if(num_tabs > previous_line){
html += '\n' + insertTabs(num_tabs) +'<li><ul>'; html += '\n' + insertTabs(num_tabs) +'<li><ul>';
tabStack.push('\n' + insertTabs(num_tabs) + '</ul></li>');
} }
html += '\n' + insertTabs(num_tabs+1) + html += '\n' + insertTabs(num_tabs+1) +
'<li>' + split_value[split_value.length-1] + '</li>'; '<li>' + split_value[split_value.length-1] + '</li>';
previous_line = num_tabs; previous_line = num_tabs;
} }
}); });
html += emptyTabStack(tabStack);
callback(html); callback(html);
} }

Loading…
Cancel
Save