'use strict' var html = require('property-information/html') var svg = require('property-information/svg') var voids = require('html-void-elements') var omission = require('./omission') var one = require('./one') module.exports = toHTML /* Characters. */ var DQ = '"' var SQ = "'" /* Stringify the given HAST node. */ function toHTML(node, options) { var settings = options || {} var quote = settings.quote || DQ var alternative = quote === DQ ? SQ : DQ var smart = settings.quoteSmart if (quote !== DQ && quote !== SQ) { throw new Error( 'Invalid quote `' + quote + '`, expected `' + SQ + '` or `' + DQ + '`' ) } return one( { valid: settings.allowParseErrors ? 0 : 1, safe: settings.allowDangerousCharacters ? 0 : 1, schema: settings.space === 'svg' ? svg : html, omit: settings.omitOptionalTags && omission, quote: quote, alternative: smart ? alternative : null, unquoted: Boolean(settings.preferUnquoted), tight: settings.tightAttributes, tightDoctype: Boolean(settings.tightDoctype), tightLists: settings.tightCommaSeparatedLists, tightClose: settings.tightSelfClosing, collapseEmpty: settings.collapseEmptyAttributes, dangerous: settings.allowDangerousHTML, voids: settings.voids || voids.concat(), entities: settings.entities || {}, close: settings.closeSelfClosing, closeEmpty: settings.closeEmptyElements }, node ) }