build/lib/markdown.js
function merge_text_nodes( jsonml ) {
  // skip the tag name and attribute hash
  var i = extract_attr( jsonml ) ? 2 : 1;

  while ( i < jsonml.length ) {
    // if it's a string check the next item too
    if ( typeof jsonml[ i ] === "string" ) {
      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === "string" ) {
        // merge the second string into the first and remove it
        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];
      }
      else {
        ++i;
      }
    }
    // if it's not a string recurse
    else {
      arguments.callee( jsonml[ i ] );
      ++i;
    }
  }
}
function merge_text_nodes( jsonml ) {
  // skip the tag name and attribute hash
  var i = extract_attr( jsonml ) ? 2 : 1;

  while ( i < jsonml.length ) {
    // if it's a string check the next item too
    if ( typeof jsonml[ i ] === "string" ) {
      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === "string" ) {
        // merge the second string into the first and remove it
        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];
      }
      else {
        ++i;
      }
    }
    // if it's not a string recurse
    else {
      arguments.callee( jsonml[ i ] );
      ++i;
    }
  }
}
function merge_text_nodes ( jsonml ) { // skip the tag name and attribute hash var i = extract_attr ( jsonml ) ? 2 : 1 ; while ( i < jsonml . length ) { // if it's a string check the next item too if ( typeof jsonml [ i ] === "string" ) { if ( i + 1 < jsonml . length && typeof jsonml [ i + 1 ] === "string" ) { // merge the second string into the first and remove it jsonml [ i ] += jsonml . splice ( i + 1 , 1 ) [ 0 ] ; } else { ++ i ; } } // if it's not a string recurse else { arguments . callee ( jsonml [ i ] ) ; ++ i ; } } }
merges adjacent text nodes into a single node
merges adjacent text nodes into a single node