code: function heading(node) {
    var self = this
    var depth = node.depth
    var setext = self.options.setext
    var closeAtx = self.options.closeAtx
    var content = self.all(node).join('')
    var prefix
  
    if (setext && depth < 3) {
      return (
        content + lineFeed + repeat(depth === 1 ? equalsTo : dash, content.length)
      )
    }
  
    prefix = repeat(numberSign, node.depth)
  
    return prefix + space + content + (closeAtx ? space + prefix : '')
  }
docs: Stringify a heading.  In `setext: true` mode and when `depth` is smaller than three, creates a setext header:  ```markdown Foo === ```  Otherwise, an ATX header is generated:  ```markdown ### Foo ```  In `closeAtx: true` mode, the header is closed with hashes:  ```markdown ### Foo ### ```