@@ -351,6 +351,16 @@ def render_dot(
351351 return relfn , outfn
352352
353353
354+ def _mark_graphviz_error_for_reread (
355+ self : HTML5Translator | LaTeXTranslator | TexinfoTranslator ,
356+ options : dict [str , Any ],
357+ ) -> None :
358+ """Force the source document to be re-read on the next build."""
359+ docname = options .get ('docname' , getattr (self .builder , 'current_docname' , None ))
360+ if isinstance (docname , str ):
361+ self .builder .env .reread_always .add (docname )
362+
363+
354364def render_dot_html (
355365 self : HTML5Translator ,
356366 node : graphviz ,
@@ -370,6 +380,7 @@ def render_dot_html(
370380 try :
371381 fname , outfn = render_dot (self , code , options , format , prefix , filename )
372382 except GraphvizError as exc :
383+ _mark_graphviz_error_for_reread (self , options )
373384 logger .warning (__ ('dot code %r: %s' ), code , exc )
374385 raise nodes .SkipNode from exc
375386
@@ -433,6 +444,7 @@ def render_dot_latex(
433444 try :
434445 fname , _outfn = render_dot (self , code , options , 'pdf' , prefix , filename )
435446 except GraphvizError as exc :
447+ _mark_graphviz_error_for_reread (self , options )
436448 logger .warning (__ ('dot code %r: %s' ), code , exc )
437449 raise nodes .SkipNode from exc
438450
@@ -477,6 +489,7 @@ def render_dot_texinfo(
477489 try :
478490 fname , _outfn = render_dot (self , code , options , 'png' , prefix )
479491 except GraphvizError as exc :
492+ _mark_graphviz_error_for_reread (self , options )
480493 logger .warning (__ ('dot code %r: %s' ), code , exc )
481494 raise nodes .SkipNode from exc
482495 if fname is not None :
0 commit comments