Skip to content

Commit 31162a9

Browse files
committed
Handle exceptions for get_node_source and get_node_line
1 parent dcb4429 commit 31162a9

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

sphinx/builders/linkcheck.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,10 @@ def add_uri(uri: str, node: nodes.Element) -> None:
509509
if newuri:
510510
uri = newuri
511511

512-
lineno = get_node_line(node)
512+
try:
513+
lineno = get_node_line(node)
514+
except ValueError:
515+
lineno = None
513516
uri_info = Hyperlink(uri, self.env.docname, lineno)
514517
if uri not in hyperlinks:
515518
hyperlinks[uri] = uri_info

sphinx/util/nodes.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,10 @@ def apply_source_workaround(node: Element) -> None:
172172
))):
173173
logger.debug('[i18n] PATCH: %r to have source and line: %s',
174174
get_full_module_name(node), repr_domxml(node))
175-
node.source = get_node_source(node) or ''
175+
try:
176+
node.source = get_node_source(node)
177+
except ValueError:
178+
node.source = ''
176179
node.line = 0 # need fix docutils to get `node.line`
177180
return
178181

@@ -561,8 +564,9 @@ def set_role_source_info(inliner: Inliner, lineno: int, node: Node) -> None:
561564

562565

563566
def copy_source_info(src: Element, dst: Element) -> None:
564-
dst.source = get_node_source(src)
565-
dst.line = get_node_line(src)
567+
with contextlib.suppress(ValueError):
568+
dst.source = get_node_source(src)
569+
dst.line = get_node_line(src)
566570

567571

568572
NON_SMARTQUOTABLE_PARENT_NODES = (

0 commit comments

Comments
 (0)