diff --git a/index.js b/index.js index 6b5613e..4bd58d5 100755 --- a/index.js +++ b/index.js @@ -1,6 +1,9 @@ module.exports = function(input){ var html_stack = []; + var previous_line_num_tabs = -1; + var lines; + var html = ''; var insertTabs = function(num_tabs) { var result = ''; @@ -22,10 +25,23 @@ module.exports = function(input){ return result; } + var processList = function(i){ + var tabs_array = lines[i].split('\t'); + var current_line_num_tabs = tabs_array.length - 1; + if(current_line_num_tabs > previous_line_num_tabs){ + html += insertTabs(current_line_num_tabs * 2) + '\n'); + } else { + html += popHTMLStack(current_line_num_tabs, previous_line_num_tabs); + } + html += insertTabs((current_line_num_tabs * 2) + 1) + '
  • \n'; + html += insertTabs((current_line_num_tabs * 2) + 2) + tabs_array[tabs_array.length - 1] + '\n'; + html_stack.push(insertTabs((current_line_num_tabs * 2) + 1) + '
  • \n'); + previous_line_num_tabs = current_line_num_tabs; + } + var parseFile = function(data){ - var previous_line_num_tabs = -1; - var lines = data.split('\n'); - var html = ''; + lines = data.split('\n'); for(var i = 0; i < lines.length; i++){ if(lines[i] !== ''){ if(lines[ i + 1 ] === '' && (i === 0 || lines[ i - 1 ] === '')){ @@ -39,18 +55,7 @@ module.exports = function(input){ html += '

    ' + lines[i] + '

    \n'; } } else { - var tabs_array = lines[i].split('\t'); - var current_line_num_tabs = tabs_array.length - 1; - if(current_line_num_tabs > previous_line_num_tabs){ - html += insertTabs(current_line_num_tabs * 2) + '\n'); - } else { - html += popHTMLStack(current_line_num_tabs, previous_line_num_tabs); - } - html += insertTabs((current_line_num_tabs * 2) + 1) + '
  • \n'; - html += insertTabs((current_line_num_tabs * 2) + 2) + tabs_array[tabs_array.length - 1] + '\n'; - html_stack.push(insertTabs((current_line_num_tabs * 2) + 1) + '
  • \n'); - previous_line_num_tabs = current_line_num_tabs; + processList(i); } } }