def write_doc(self, docname: str, doctree: Node) -> None: logger.info('') n = 0 # reference nodes for refnode in doctree.traverse(nodes.reference): if 'refuri' not in refnode: continue uri = refnode['refuri'] lineno = get_node_line(refnode) self.wqueue.put((uri, docname, lineno), False) n += 1 # image nodes for imgnode in doctree.traverse(nodes.image): uri = imgnode['candidates'].get('?') if uri and '://' in uri: lineno = get_node_line(imgnode) self.wqueue.put((uri, docname, lineno), False) n += 1 done = 0 while done < n: self.process_result(self.rqueue.get()) done += 1 if self.broken: self.app.statuscode = 1
def run(self, **kwargs: Any) -> None: builder = cast(CheckExternalLinksBuilder, self.app.builder) hyperlinks = builder.hyperlinks # reference nodes for refnode in self.document.traverse(nodes.reference): if 'refuri' not in refnode: continue uri = refnode['refuri'] newuri = self.app.emit_firstresult('linkcheck-process-uri', uri) if newuri: uri = newuri lineno = get_node_line(refnode) uri_info = Hyperlink(uri, self.env.docname, lineno) if uri not in hyperlinks: hyperlinks[uri] = uri_info # image nodes for imgnode in self.document.traverse(nodes.image): uri = imgnode['candidates'].get('?') if uri and '://' in uri: newuri = self.app.emit_firstresult('linkcheck-process-uri', uri) if newuri: uri = newuri lineno = get_node_line(imgnode) uri_info = Hyperlink(uri, self.env.docname, lineno) if uri not in hyperlinks: hyperlinks[uri] = uri_info
def node_line_or_0(node: Element) -> int: """ PriorityQueue items must be comparable. The line number is part of the tuple used by the PriorityQueue, keep an homogeneous type for comparison. """ warnings.warn('node_line_or_0() is deprecated.', RemovedInSphinx50Warning, stacklevel=2) return get_node_line(node) or 0
def run(self, **kwargs: Any) -> None: builder = cast(CheckExternalLinksBuilder, self.app.builder) hyperlinks = builder.hyperlinks # reference nodes for refnode in self.document.traverse(nodes.reference): if 'refuri' not in refnode: continue uri = refnode['refuri'] lineno = get_node_line(refnode) uri_info = Hyperlink(CHECK_IMMEDIATELY, uri, self.env.docname, lineno) if uri not in hyperlinks: hyperlinks[uri] = uri_info # image nodes for imgnode in self.document.traverse(nodes.image): uri = imgnode['candidates'].get('?') if uri and '://' in uri: lineno = get_node_line(imgnode) uri_info = Hyperlink(CHECK_IMMEDIATELY, uri, self.env.docname, lineno) if uri not in hyperlinks: hyperlinks[uri] = uri_info
def node_line_or_0(node: Element) -> int: """ PriorityQueue items must be comparable. The line number is part of the tuple used by the PriorityQueue, keep an homogeneous type for comparison. """ return get_node_line(node) or 0