const visit = require('unist-util-visit'); const retext = require('retext'); const smartypants = require('retext-smartypants'); function check(parent) { if (parent.tagName === 'script') return false; if (parent.tagName === 'style') return false; return true; } module.exports = function (options) { const processor = retext().use(smartypants, options); function transformer(tree) { visit(tree, 'text', (node, index, parent) => { if (check(parent)) node.value = String(processor.processSync(node.value)); }); } return transformer; };