'use strict' var uri = require('../util/enclose-uri') var title = require('../util/enclose-title') module.exports = image var space = ' ' var leftParenthesis = '(' var rightParenthesis = ')' var leftSquareBracket = '[' var rightSquareBracket = ']' var exclamationMark = '!' // Stringify an image. // // Is smart about enclosing `url` (see `encloseURI()`) and `title` (see // `encloseTitle()`). // // ```markdown // ![foo]( 'My "favourite" icon') // ``` // // Supports named entities in `url`, `alt`, and `title` when in // `settings.encode` mode. function image(node) { var self = this var content = uri(self.encode(node.url || '', node)) var exit = self.enterLink() var alt = self.encode(self.escape(node.alt || '', node)) exit() if (node.title) { content += space + title(self.encode(node.title, node)) } return ( exclamationMark + leftSquareBracket + alt + rightSquareBracket + leftParenthesis + content + rightParenthesis ) }