import { detachNodeFromParent } from '../lib/xast.js'; import { visitSkip } from '../lib/util/visit.js'; export const name = 'mergeStyles'; export const description = 'merge multiple style elements into one'; /** * Merge multiple style elements into one. * * @author strarsis * * @type {import('../lib/types.js').Plugin} */ export const fn = () => { /** @type {?import('../lib/types.js').XastElement} */ let firstStyleElement = null; let collectedStyles = ''; /** @type {'text' | 'cdata'} */ let styleContentType = 'text'; return { element: { enter: (node, parentNode) => { // skip content if (node.name === 'foreignObject') { return visitSkip; } // collect style elements if (node.name !== 'style') { return; } // skip