def resolve_xref(self, env, fromdocname, builder, typ, _target, node, contnode): target = APIUtils.normalize_url(_target) try: info = self.data[str(typ)][target] except KeyError: return else: anchor = http_resource_anchor(typ, target) title = typ.upper() + ' ' + target return make_refnode(builder, fromdocname, info[0], anchor, contnode, title)
def http_resource_anchor(method, path): path = re.sub(r'[<>:/]', '-', path) return method.lower() + '-' + APIUtils.normalize_url(path)
def process_link(self, env, refnode, has_explicit_title, title, target): if not target.startswith('/'): pass if not has_explicit_title: title = self.method.upper() + ' ' + title return title, APIUtils.normalize_url(target)
def add_target_and_index(self, name_cls, sig, signode): sig = APIUtils.normalize_url(sig) signode['ids'].append(http_resource_anchor(*name_cls[1:])) self.env.domaindata['http'][self.method][sig] = (self.env.docname, '')