code: def parse_ref(self, ref):
          
          title = None
          if len(ref.children) == 0:
              title = ref['name'] if 'name' in ref else None
          elif isinstance(ref.children[0], nodes.Text):
              title = ref.children[0].astext()
          uri = ref['refuri']
          if uri.find('://') != -1:
              return (title, uri, None)
          anchor = None
          arr = uri.split('#')
          if len(arr) == 2:
              anchor = arr[1]
          if len(arr) > 2 or len(arr[0]) == 0:
              return (title, uri, None)
          uri = arr[0]
  
          abspath = os.path.abspath(os.path.join(self.file_dir, uri))
          relpath = os.path.relpath(abspath, self.root_dir)
          suffix = abspath.rsplit('.', 1)
          if len(suffix) == 2 and suffix[1] in AutoStructify.suffix_set and (
                  os.path.exists(abspath) and abspath.startswith(self.root_dir)):
              # replace the path separator if running on non-UNIX environment
              if os.path.sep != '/':
                  relpath = relpath.replace(os.path.sep, '/')
              docpath = '/' + relpath.rsplit('.', 1)[0]
              # rewrite suffix to html, this is suboptimal
              uri = docpath + '.html'
              if anchor is None:
                  return (title, uri, docpath)
              else:
                  return (title, uri + '#' + anchor, None)
          else:
              # use url resolver
              if self.url_resolver:
                  uri = self.url_resolver(relpath)
              if anchor:
                  uri += '#' + anchor
              return (title, uri, None)
docs: Analyze the ref block, and return the information needed.
  
          Parameters
          ----------
          ref : nodes.reference
  
          Returns
          -------
          result : tuple of (str, str, str)
              The returned result is tuple of (title, uri, docpath).
              title is the display title of the ref.
              uri is the html uri of to the ref after resolve.
              docpath is the absolute document path to the document, if
              the target corresponds to an internal document, this can bex None