code: function postprocess(value, logs, options) {
    var tokens = []
    var start = 0
    var match
    var content
    var info
    var parameters
    var end
    var markdown
  
    EXPRESSION_LOG.lastIndex = 0
    match = EXPRESSION_LOG.exec(value)
  
    while (match) {
      end = EXPRESSION_LOG.lastIndex
  
      content = value.slice(start, end - match[0].length)
  
      parameters = match[2].split(/\s*,\s*/)
  
      info = parameters[0]
      info = unquote(info.trim())
      info = logs[info]
  
      if (info && info.value) {
        tokens = tokens.concat(script(content, options), log(info))
      } else {
        parameters = parameters.slice(1).join(', ')
  
        tokens = tokens.concat(
          script(content + match[1] + parameters + match[3], options)
        )
      }
  
      start = end
      match = EXPRESSION_LOG.exec(value)
    }
  
    if (start < value.length) {
      tokens = tokens.concat(script(value.slice(start), options))
    }
  
    markdown = []
  
    tokens.forEach(each)
  
    markdown = markdown.filter(filter)
  
    return markdown
  
    function each(token) {
      var prev
      var lang
  
      if (token.type === 'markdown') {
        markdown = markdown.concat(parse(token.value))
      } else {
        prev = markdown[markdown.length - 1]
        lang = 'lang' in token ? token.lang : token.type
  
        if (prev && prev.type === 'code' && prev.lang === lang) {
          prev.value += token.value ? '\n' + token.value : ''
        } else {
          markdown.push({
            type: 'code',
            lang: lang,
            value: token.value
          })
        }
      }
    }
  
    function filter(token) {
      if ('value' in token) {
        token.value = trimTrailingLines(token.value)
  
        return token.value !== ''
      }
  
      return true
    }
  }
docs: /* Post-process the example document.