code: def visit_wavedrom(self, node):
      
      format = determine_format(self.builder.supported_image_types)
      if format is None:
          raise SphinxError(__("Cannot determine a suitable output format"))
  
      # Create random filename
      bname = "wavedrom-{}".format(uuid4())
      outpath = path.join(self.builder.outdir, self.builder.imagedir)
  
      # Render the wavedrom image
      imgname = render_wavedrom(self, node, outpath, bname, format)
  
      # Now we unpack the image node again. The file was created at the build destination,
      # and we can now use the standard visitor for the image node. We add the image node
      # as a child and then raise a SkipDepature, which will trigger the builder to visit
      # children.
      image_node = node['image_node']
      image_node['uri'] = os.path.join(self.builder.imgpath, imgname)
      node.append(image_node)
  
      raise nodes.SkipDeparture
docs: Visit the wavedrom node