export default function walkHtml ( html, visitors ) { function visit ( node ) { const visitor = visitors[ node.type ]; if ( !visitor ) throw new Error( `Not implemented: ${node.type}` ); if ( visitor.enter ) visitor.enter( node ); if ( node.children ) { node.children.forEach( child => { visit( child ); }); } if ( visitor.leave ) visitor.leave( node ); } visit( html ); }