Closed theOehrly closed 2 years ago
hi @theOehrly! thanks for reporting this issue. I think this is a known and so far unsolved bug in the autosummary extension, see #65
Ok, I now understand what the actual problem here is. Have you seen https://github.com/sphinx-doc/sphinx/pull/6792 though? The PR intended to fix this issue too. But this was marked as won't fix, stating that the behaviour is as intended. I too am inclined to say this is a bug in sphinx. But if the sphinx maintainers stick to that opinion, then it might be better to fix it here?
Hey @theOehrly
Sure, but I don't know if this is possible without reimplementing the autosummary extension. Did you already had a look how to potentially fix this issue here and could make some suggestions?
Hey @theOehrly
Sure, but I don't know if this is possible without reimplementing the autosummary extension. Did you already had a look how to potentially fix this issue here and could make some suggestions?
Hi, I don't have any good ideas for a potential fix right now. I will take a closer look at it some time in the next few weeks.
@theOehrly this is fixed by #70, isn't it?
@theOehrly this is fixed by #70, isn't it?
Yes, it is
I've had some issues with reference targets not being found in the summary table. This happens in multiple of my projects, but within each project, the problem was limited to some modules only. This is a bit annoying because you can't just click an object in the summary table and jump directly to its full documentation.
I think I've found the cause for the issue now. Let me give an example project structure.
submodule1.py
submodule1.rst
This will generate the following output:
Everything works fine and all reference targets are found, until I add an import statement like
import my_module.submodule2
tosubmodule1.py
. Why and how the in-code imports break the reference targets is something that I don't fully understand. But as soon as I import some other module from my own package, the reference targets in the module that contains the import statement are no longer found.I've found that reference targets work correctly if I make a minor change to autodocsumm.
https://github.com/Chilipp/autodocsumm/blob/255292a1d04ec4ed0e0c17c1100adeb71f4dfa9f/autodocsumm/__init__.py#L305-L308
By changing Line 307 to
indent + documenter.object_name, sourcename)
, reference targets work correctly for module and class summaries in all cases that I have tested.The generated output after this is
The visual representation of the summary table does not change because of this.
Edit: I forgot, this on Python 3.8 with Sphinx v4.4.0