docs: function(){
      var tok = this.expect('blockcode');
      var line = tok.loc.start.line;
      var column = tok.loc.start.column;
      var body = this.peek();
      var text = '';
      if (body.type === 'start-pipeless-text') {
        this.advance();
        while (this.peek().type !== 'end-pipeless-text') {
          tok = this.advance();
          switch (tok.type) {
            case 'text':
              text += tok.val;
              break;
            case 'newline':
              text += '\n';
              break;
            default:
              var pluginResult = this.runPlugin('blockCodeTokens', tok, tok);
              if (pluginResult) {
                text += pluginResult;
                break;
              }
              this.error('INVALID_TOKEN', 'Unexpected token type: ' + tok.type, tok);
          }
        }
        this.advance();
      }
      return {
        type: 'Code',
        val: text,
        buffer: false,
        mustEscape: false,
        isInline: false,
        line: line,
        column: column,
        filename: this.filename
      };
    }