summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-11-01 11:53:38 +0900
committerGitHub <noreply@github.com>2020-11-01 11:53:38 +0900
commit0c5de26cfbb8af7ac71967fc4f6e67477f1839e3 (patch)
tree04813c6980e418a6e1d7afa1ccc5a8b9108aa001
parent4c2076b220d3c2371229cfc911bf44b1f13eeea2 (diff)
parent87121c3de02b7615407f0f99004fd9cba757cf9c (diff)
downloadsphinx-git-0c5de26cfbb8af7ac71967fc4f6e67477f1839e3.tar.gz
Merge pull request #8354 from tk0miya/8183
Don't remove substitution_reference nodes (refined)
-rw-r--r--sphinx/builders/latex/transforms.py14
-rw-r--r--sphinx/transforms/references.py15
-rw-r--r--sphinx/writers/texinfo.py9
-rw-r--r--sphinx/writers/text.py3
4 files changed, 27 insertions, 14 deletions
diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py
index 28841ad77..174483be6 100644
--- a/sphinx/builders/latex/transforms.py
+++ b/sphinx/builders/latex/transforms.py
@@ -13,6 +13,7 @@ from typing import cast
from docutils import nodes
from docutils.nodes import Element, Node
+from docutils.transforms.references import Substitutions
from sphinx import addnodes
from sphinx.application import Sphinx
@@ -38,6 +39,18 @@ class FootnoteDocnameUpdater(SphinxTransform):
node['docname'] = self.env.docname
+class SubstitutionDefinitionsRemover(SphinxPostTransform):
+ """Remove ``substitution_definition node from doctrees."""
+
+ # should be invoked after Substitutions process
+ default_priority = Substitutions.default_priority + 1
+ builders = ('latex',)
+
+ def apply(self, **kwargs: Any) -> None:
+ for node in self.document.traverse(nodes.substitution_definition):
+ node.parent.remove(node)
+
+
class ShowUrlsTransform(SphinxPostTransform):
"""Expand references to inline text or footnotes.
@@ -602,6 +615,7 @@ class IndexInSectionTitleTransform(SphinxTransform):
def setup(app: Sphinx) -> Dict[str, Any]:
app.add_transform(FootnoteDocnameUpdater)
+ app.add_post_transform(SubstitutionDefinitionsRemover)
app.add_post_transform(BibliographyTransform)
app.add_post_transform(CitationReferenceTransform)
app.add_post_transform(DocumentTargetTransform)
diff --git a/sphinx/transforms/references.py b/sphinx/transforms/references.py
index e74d9657d..b6129b0bc 100644
--- a/sphinx/transforms/references.py
+++ b/sphinx/transforms/references.py
@@ -10,8 +10,7 @@
from typing import Any, Dict
-from docutils import nodes
-from docutils.transforms.references import DanglingReferences, Substitutions
+from docutils.transforms.references import DanglingReferences
from sphinx.transforms import SphinxTransform
@@ -20,17 +19,6 @@ if False:
from sphinx.application import Sphinx
-class SubstitutionDefinitionsRemover(SphinxTransform):
- """Remove ``substitution_definition node from doctrees."""
-
- # should be invoked after Substitutions process
- default_priority = Substitutions.default_priority + 1
-
- def apply(self, **kwargs: Any) -> None:
- for node in self.document.traverse(nodes.substitution_definition):
- node.parent.remove(node)
-
-
class SphinxDanglingReferences(DanglingReferences):
"""DanglingReferences transform which does not output info messages."""
@@ -56,7 +44,6 @@ class SphinxDomains(SphinxTransform):
def setup(app: "Sphinx") -> Dict[str, Any]:
- app.add_transform(SubstitutionDefinitionsRemover)
app.add_transform(SphinxDanglingReferences)
app.add_transform(SphinxDomains)
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py
index a33d3363f..e0d7d04fa 100644
--- a/sphinx/writers/texinfo.py
+++ b/sphinx/writers/texinfo.py
@@ -1242,6 +1242,15 @@ class TexinfoTranslator(SphinxTranslator):
def depart_legend(self, node: Element) -> None:
pass
+ def visit_substitution_reference(self, node: Element) -> None:
+ pass
+
+ def depart_substitution_reference(self, node: Element) -> None:
+ pass
+
+ def visit_substitution_definition(self, node: Element) -> None:
+ raise nodes.SkipNode
+
def visit_system_message(self, node: Element) -> None:
self.body.append('\n@verbatim\n'
'<SYSTEM MESSAGE: %s>\n'
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index 796362260..9cb066e0b 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -1013,6 +1013,9 @@ class TextTranslator(SphinxTranslator):
def visit_toctree(self, node: Element) -> None:
raise nodes.SkipNode
+ def visit_substitution_definition(self, node: Element) -> None:
+ raise nodes.SkipNode
+
def visit_pending_xref(self, node: Element) -> None:
pass