Fix #8936: LaTeX: A custom LaTeX builder fails with unknown node error

At present, post transform components for LaTeX builder does not work
for the custom LaTeX builder that inherits the original LaTeX builder.
This allows them working with the custom LaTeX builders.
This commit is contained in:
Takeshi KOMIYA 2021-03-05 00:36:38 +09:00
parent 99d97c65d5
commit f75e86d53a
2 changed files with 11 additions and 9 deletions

View File

@ -16,6 +16,8 @@ Features added
Bugs fixed Bugs fixed
---------- ----------
* #8936: LaTeX: A custom LaTeX builder fails with unknown node error
Testing Testing
-------- --------

View File

@ -42,7 +42,7 @@ class SubstitutionDefinitionsRemover(SphinxPostTransform):
# should be invoked after Substitutions process # should be invoked after Substitutions process
default_priority = Substitutions.default_priority + 1 default_priority = Substitutions.default_priority + 1
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
for node in self.document.traverse(nodes.substitution_definition): for node in self.document.traverse(nodes.substitution_definition):
@ -57,7 +57,7 @@ class ShowUrlsTransform(SphinxPostTransform):
.. note:: This transform is used for integrated doctree .. note:: This transform is used for integrated doctree
""" """
default_priority = 400 default_priority = 400
builders = ('latex',) formats = ('latex',)
# references are expanded to footnotes (or not) # references are expanded to footnotes (or not)
expanded = False expanded = False
@ -345,7 +345,7 @@ class LaTeXFootnoteTransform(SphinxPostTransform):
""" """
default_priority = 600 default_priority = 600
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
footnotes = list(self.document.traverse(nodes.footnote)) footnotes = list(self.document.traverse(nodes.footnote))
@ -497,7 +497,7 @@ class BibliographyTransform(SphinxPostTransform):
... ...
""" """
default_priority = 750 default_priority = 750
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
citations = thebibliography() citations = thebibliography()
@ -516,7 +516,7 @@ class CitationReferenceTransform(SphinxPostTransform):
pending_xref nodes to citation_reference. pending_xref nodes to citation_reference.
""" """
default_priority = 5 # before ReferencesResolver default_priority = 5 # before ReferencesResolver
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
domain = cast(CitationDomain, self.env.get_domain('citation')) domain = cast(CitationDomain, self.env.get_domain('citation'))
@ -536,7 +536,7 @@ class MathReferenceTransform(SphinxPostTransform):
nodes to math_reference. nodes to math_reference.
""" """
default_priority = 5 # before ReferencesResolver default_priority = 5 # before ReferencesResolver
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
equations = self.env.get_domain('math').data['objects'] equations = self.env.get_domain('math').data['objects']
@ -551,7 +551,7 @@ class MathReferenceTransform(SphinxPostTransform):
class LiteralBlockTransform(SphinxPostTransform): class LiteralBlockTransform(SphinxPostTransform):
"""Replace container nodes for literal_block by captioned_literal_block.""" """Replace container nodes for literal_block by captioned_literal_block."""
default_priority = 400 default_priority = 400
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
matcher = NodeMatcher(nodes.container, literal_block=True) matcher = NodeMatcher(nodes.container, literal_block=True)
@ -563,7 +563,7 @@ class LiteralBlockTransform(SphinxPostTransform):
class DocumentTargetTransform(SphinxPostTransform): class DocumentTargetTransform(SphinxPostTransform):
"""Add :doc label to the first section of each document.""" """Add :doc label to the first section of each document."""
default_priority = 400 default_priority = 400
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
for node in self.document.traverse(addnodes.start_of_file): for node in self.document.traverse(addnodes.start_of_file):
@ -599,7 +599,7 @@ class IndexInSectionTitleTransform(SphinxPostTransform):
... ...
""" """
default_priority = 400 default_priority = 400
builders = ('latex',) formats = ('latex',)
def run(self, **kwargs: Any) -> None: def run(self, **kwargs: Any) -> None:
for node in self.document.traverse(nodes.title): for node in self.document.traverse(nodes.title):