code: def _link_replace(self, match, **context):
          
          url = match.group(0)
          if self.linker:
              if self.linker_takes_context:
                  return self.linker(url, context)
              else:
                  return self.linker(url)
          else:
              href = url
              if '://' not in href:
                  href = 'http://' + href
              # Escape quotes to avoid XSS, let the browser escape the rest.
              return self.url_template.format(href=href.replace('"', '%22'), text=url)
docs: Callback for re.sub to replace link text with markup. Turns out using a callback function
          is actually faster than using backrefs, plus this lets us provide a hook for user customization.
          linker_takes_context=True means that the linker gets passed context like a standard format function.