code: function listItem(node, parent, position, bullet) {
    var self = this
    var style = self.options.listItemIndent
    var marker = bullet || self.options.bullet
    var spread = node.spread == null ? true : node.spread
    var checked = node.checked
    var children = node.children
    var length = children.length
    var values = []
    var index = -1
    var value
    var indent
    var spacing
  
    while (++index < length) {
      values[index] = self.visit(children[index], node)
    }
  
    value = values.join(spread ? blank : lineFeed)
  
    if (typeof checked === 'boolean') {
      // Note: I’d like to be able to only add the space between the check and
      // the value, but unfortunately github does not support empty list-items
      // with a checkbox :(
      value =
        leftSquareBracket +
        (checked ? lowercaseX : space) +
        rightSquareBracket +
        space +
        value
    }
  
    if (style === '1' || (style === 'mixed' && value.indexOf(lineFeed) === -1)) {
      indent = marker.length + 1
      spacing = space
    } else {
      indent = ceil((marker.length + 1) / tabSize) * tabSize
      spacing = repeat(space, indent - marker.length)
    }
  
    return value
      ? marker + spacing + pad(value, indent / tabSize).slice(indent)
      : marker
  }
docs: Stringify a list item.  Prefixes the content with a checked checkbox when `checked: true`:  ```markdown [x] foo ```  Prefixes the content with an unchecked checkbox when `checked: false`:  ```markdown [ ] foo ```