diff --git a/index.js b/index.js index ea5bffa..b2bd449 100755 --- a/index.js +++ b/index.js @@ -28,21 +28,32 @@ module.exports = function(input){ var html = ''; for(var i = 0; i < lines.length; i++){ if(lines[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); + if(lines[ i + 1 ] === '' && (i === 0 || lines[ i - 1 ] === '')){ + html += popHTMLStack(-1, previous_line_num_tabs); + previous_line_num_tabs = -1; + if( i > 0 ) { + html += '

' + lines[i] + '

\n'; + } else { + 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; } - 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; } } html += popHTMLStack(-1, previous_line_num_tabs); + previous_line_num_tabs = -1; return html }