File tree Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -64,22 +64,27 @@ def _on_builder_inited(cls, app:Sphinx):
6464 cls ._srcdir = path .join (app .srcdir , reldir )
6565 cls ._reldir = path .join ('/' , reldir ) # abspath relatived to srcdir
6666
67- # Cleanup possible residual symlink.
68- if path .islink (cls ._srcdir ):
69- os .unlink (cls ._srcdir )
70- if path .exists (cls ._srcdir ):
71- os .remove (cls ._srcdir )
72- # Link them.
7367 ensuredir (cls ._outdir )
74- os .symlink (cls ._outdir , cls ._srcdir )
68+ # Link srcdir -> outdir when needed.
69+ if not path .exists (cls ._srcdir ):
70+ os .symlink (cls ._outdir , cls ._srcdir )
71+ elif not path .islink (cls ._srcdir ):
72+ os .remove (cls ._srcdir )
73+ os .symlink (cls ._outdir , cls ._srcdir )
7574
7675 logger .debug (f'[any] srcdir: { cls ._srcdir } ' )
7776 logger .debug (f'[any] outdir: { cls ._outdir } ' )
7877
7978
8079 @classmethod
8180 def _on_build_finished (cls , app :Sphinx , exception ):
82- os .unlink (cls ._srcdir )
81+ # NOTE: no need to clean up the symlink, it will cause unnecessary
82+ # rebuild because file is mssiing from Sphinx's srcdir. Logs like:
83+ #
84+ # [build target] changed 'docname' missing dependency 'xxx.jpg'
85+ #
86+ # os.unlink(cls._srcdir)
87+ pass
8388
8489
8590 def __init__ (self , * args , ** kwargs ):
You can’t perform that action at this time.
0 commit comments