code: function link(node) {
    var self = this
    var content = self.encode(node.url || '', node)
    var exit = self.enterLink()
    var escaped = self.encode(self.escape(node.url || '', node))
    var value = self.all(node).join('')
  
    exit()
  
    if (node.title == null && protocol.test(content) && escaped === value) {
      // Backslash escapes do not work in autolinks, so we do not escape.
      return uri(self.encode(node.url), true)
    }
  
    content = uri(content)
  
    if (node.title) {
      content += space + title(self.encode(self.escape(node.title, node), node))
    }
  
    return (
      leftSquareBracket +
      value +
      rightSquareBracket +
      leftParenthesis +
      content +
      rightParenthesis
    )
  }
docs: Stringify a link.  When no title exists, the compiled `children` equal `url`, and `url` starts with a protocol, an auto link is created:  ```markdown <http://example.com> ```  Otherwise, is smart about enclosing `url` (see `encloseURI()`) and `title` (see `encloseTitle()`). ```  ```markdown [foo](<foo at bar dot com> 'An "example" e-mail') ```  Supports named entities in the `url` and `title` when in `settings.encode` mode.