docs: function BlockLexer(/* ...objects */) {
    this.topLevel = true;
    this.blockquote = false;
    this.looseItem = false;
    this.links = {};
    this.remaining = '';
    this.offset = 0;
  
    for (var i = 0; i < arguments.length; i++) {
      var arg = arguments[i];
      var keys = Object.keys(arg);
      for (var j = 0; j < keys.length; j++) {
        var key = keys[j];
        this[key] = arg[key];
      }
    }
  
    if (!this.options) {
      this.options = BlockLexer.defaults;
    }
    if (!this.rules) {
      this.rules = block.normal;
      if (this.options.gfm) {
        if (this.options.tables) {
          this.rules = block.tables;
        } else {
          this.rules = block.gfm;
        }
      }
    }
  }