code: function prettify(md) {
    ast(md);
    const render = md.render;
  
    md.render = function(str, options) {
      if (typeof str !== 'string') {
        throw new TypeError('expected a string');
      }
      str = str.split(/\]\[\]\s*\n\s*\[/).join('][]\n\n[');
      return render.call(md, str, options);
    };
  
    md.renderer.renderInline = function(tokens, options, env) {
      const _rules = rules;
      let len = tokens.length, i = 0;
      let str = '';
  
      while (len--) {
        str += _rules[tokens[i].type](tokens, i++, options, env, this);
      }
      return str;
    };
  
    md.renderer.render = function(tokens, options, env) {
      let _rules = rules;
      let len = tokens.length, i = -1;
      let str = '';
  
      while (++i < len) {
        let token = tokens[i];
        if (token.type === 'inline') {
          str += this.renderInline(token.children, options, env);
        } else {
          str += _rules[token.type](tokens, i, options, env, this);
        }
      }
  
      if (options.condense !== false) {
        str = str.split(/(?:\r\n|\n){2,}/).join('\n\n');
      }
  
      let newline = '\n';
      if (options.newline === false) {
        newline = '';
      }
      if (typeof options.newline === 'string') {
        newline = options.newline;
      }
      str = str.trim() + newline;
      return str;
    };
  }
docs: Register as a plugin by passing `prettify` to remarkable's
  `.use()` method.
  
  ```js
  const md = new Remarkable();
  md.use(prettify);
  const result = md.render(str);
  ```
  
  @param {Object} `options`
  @return {String}