class_docstr: For each external link, check if it can be replaced by an extlink.
  
  We treat each ``reference`` node without ``internal`` attribute as an external link.
code: def run(self, **kwargs: Any) -> None:
      if not self.config.extlinks_detect_hardcoded_links:
          return
  
      for refnode in self.document.findall(nodes.reference):
          self.check_uri(refnode)
  
file_path: sphinx/sphinx/ext/extlinks.py
imports: from __future__ import annotations
  import re
  from typing import TYPE_CHECKING, Any
  from docutils import nodes, utils
  import sphinx
  from sphinx.locale import __
  from sphinx.transforms.post_transforms import SphinxPostTransform
  from sphinx.util import logging, rst
  from sphinx.util.nodes import split_explicit_title
label_desc: Use image node_id 1 for calling the ExternalLinksChecker obj's underlying member method code with example usage: obj.run() without return types