| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- '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
- )
- }
|