code: function blockNormal(stream, state) {
      var match;
      if (stream.match(codeRE)) {
        stream.skipToEnd();
        return code;
      } else if (stream.eatSpace()) {
        return null;
      } else if (stream.peek() === '#' || stream.match(headerRE)) {
        state.header = true;
      } else if (stream.eat('>')) {
        state.indentation++;
        state.quote = true;
      } else if (stream.peek() === '[') {
        return switchInline(stream, state, footnoteLink);
      } else if (hrRE.test(stream.peek())) {
        var re = new RegExp('(?:\s*['+stream.peek()+']){3,}$');
        if (stream.match(re, true)) {
          return hr;
        }
      } else if (match = stream.match(ulRE, true) || stream.match(olRE, true)) {
        state.indentation += match[0].length;
        return list;
      }
      
      return switchInline(stream, state, state.inline);
    }
docs: Blocks