Open randolf-scholz opened 1 year ago
Quoted from the closed PR:
AFAIK, the way sphinx-math-dollar works, is that it traveses all nodes, and whenever it encounters a text node tries to replace math
$$ ... $$
with actual RST math-tags. So if there are these "hanging nodes" that should be no issue? (sorry I am not that familiar with the internals of sphinx and docutils).
This sounds like a bug in SMD -- can you link to discussion there of this issue please?
As @picnixz noted, this class is an internal implementation detail.
A
This sounds like a bug in SMD -- can you link to discussion there of this issue please?
I can create an issue there. As I already commented here, this resolution will mean that each and every extension that uses a NodeVisitor
and doesn't implement unknown_visit
is potentially broken.
Describe the bug
Sphinx doesn't want to play nice with
sphinx-math-dollar
. Probably related to https://github.com/sphinx-doc/sphinx/issues/9240. The problem seems to be thatGenericNodeVisitor
lacks avisit_pending_xref_condition
method. After some digging I figured this is because Sphinx does not registerpending_xref_condition
as a node.The relevant code sections are:
sphinx-math-dollar
https://github.com/sympy/sphinx-math-dollar/blob/be629b9cc252dd478bd99592578a2a79731eb649/sphinx_math_dollar/extension.py#L13-L44docutils
: https://github.com/docutils/docutils/blob/173189b4c1c095a43c9388f4edd9bf1ff5d5b49d/docutils/docutils/nodes.py#L1953-L2080sphinx
: https://github.com/sphinx-doc/sphinx/blob/master/sphinx/addnodes.pyThe issue seems to be that simply in https://github.com/sphinx-doc/sphinx/blob/e17f39e7b535f4849754d46f2cd2e411df8aa535/sphinx/addnodes.py#L521-L562 the statement
app.add_node(pending_xref_condition)
is missing.I also tried the following, as per the
sphinx-math-dollar
documentation:which didn't change anything, because
pending_xref_condition
is not registered as a node.How to Reproduce
Will provide if necessary
Environment Information
bug report
```text # Platform: linux; (Linux-6.0.0-1009-oem-x86_64-with-glibc2.35) # Sphinx version: 6.1.2 # Python version: 3.10.8 (CPython) # Docutils version: 0.19 # Jinja2 version: 3.1.2 # Pygments version: 2.14.0 # Last messages: # reading sources... [ 5%] apidoc/modules # reading sources... [ 6%] apidoc/xxxx # reading sources... [ 7%] apidoc/xxxx.config # # ====================== slowest reading durations ======================= # 0.084 RECIPES # 0.012 CHANGELOG # 0.008 apidoc/xxxx # 0.007 README # 0.007 CONTRIBUTING # Loaded extensions: # sphinx.ext.mathjax (6.1.2) # sphinxcontrib.applehelp (1.0.3) # sphinxcontrib.devhelp (1.0.2) # sphinxcontrib.htmlhelp (2.0.0) # sphinxcontrib.serializinghtml (1.1.5) # sphinxcontrib.qthelp (1.0.3) # alabaster (0.7.12) # sphinx.ext.autodoc.preserve_defaults (6.1.2) # sphinx.ext.autodoc.type_comment (6.1.2) # sphinx.ext.autodoc.typehints (6.1.2) # sphinx.ext.autodoc (6.1.2) # sphinx.ext.autosectionlabel (6.1.2) # sphinx.ext.autosummary (6.1.2) # sphinx.ext.coverage (6.1.2) # sphinx.ext.doctest (6.1.2) # sphinx.ext.duration (6.1.2) # sphinx.ext.intersphinx (6.1.2) # sphinx.ext.napoleon (6.1.2) # sphinx.ext.todo (6.1.2) # sphinx.ext.viewcode (6.1.2) # sphinx_copybutton (0.5.1) # sphinx_math_dollar (unknown version) # pydata_sphinx_theme (unknown version) # Traceback: Traceback (most recent call last): File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/cmd/build.py", line 284, in build_main app.build(args.force_all, args.filenames) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/application.py", line 347, in build self.builder.build_update() File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 311, in build_update self.build(to_build, File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 327, in build updated_docnames = set(self.read()) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 434, in read self._read_serial(docnames) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 455, in _read_serial self.read_doc(docname) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 511, in read_doc publisher.publish() File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/core.py", line 226, in publish self.apply_transforms() File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/core.py", line 206, in apply_transforms self.document.transformer.apply_transforms() File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx/transforms/__init__.py", line 80, in apply_transforms super().apply_transforms() File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/transforms/__init__.py", line 173, in apply_transforms transform.apply(**kwargs) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/sphinx_math_dollar/extension.py", line 80, in apply self.document.walk(MathDollarReplacer(self.document)) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 150, in walk if child.walk(visitor): File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 150, in walk if child.walk(visitor): File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 150, in walk if child.walk(visitor): [Previous line repeated 6 more times] File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 142, in walk visitor.dispatch_visit(self) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 2005, in dispatch_visit return method(node) File "/home/rscholz/Projects/KIWI/xxxx/.venv/lib/python3.10/site-packages/docutils/nodes.py", line 2028, in unknown_visit raise NotImplementedError( NotImplementedError:Sphinx extensions
Additional context
No response