Move post-transform manager to registry

This commit is contained in:
Takeshi KOMIYA 2017-05-01 14:40:02 +09:00
parent 27ea988f6e
commit 2a26656ce6
3 changed files with 12 additions and 4 deletions

View File

@ -120,7 +120,6 @@ class Sphinx(object):
self.env = None # type: BuildEnvironment self.env = None # type: BuildEnvironment
self.registry = SphinxComponentRegistry() self.registry = SphinxComponentRegistry()
self.enumerable_nodes = {} # type: Dict[nodes.Node, Tuple[unicode, Callable]] # NOQA self.enumerable_nodes = {} # type: Dict[nodes.Node, Tuple[unicode, Callable]] # NOQA
self.post_transforms = [] # type: List[Transform]
self.html_themes = {} # type: Dict[unicode, unicode] self.html_themes = {} # type: Dict[unicode, unicode]
self.srcdir = srcdir self.srcdir = srcdir
@ -600,8 +599,7 @@ class Sphinx(object):
def add_post_transform(self, transform): def add_post_transform(self, transform):
# type: (Type[Transform]) -> None # type: (Type[Transform]) -> None
logger.debug('[app] adding post transform: %r', transform) self.registry.add_post_transform(transform)
self.post_transforms.append(transform)
def add_javascript(self, filename): def add_javascript(self, filename):
# type: (unicode) -> None # type: (unicode) -> None

View File

@ -878,7 +878,7 @@ class BuildEnvironment(object):
transformer = SphinxTransformer(doctree) transformer = SphinxTransformer(doctree)
transformer.set_environment(self) transformer.set_environment(self)
transformer.add_transforms(self.app.post_transforms) transformer.add_transforms(self.app.registry.get_post_transforms())
transformer.apply_transforms() transformer.apply_transforms()
finally: finally:
self.temp_data = backup self.temp_data = backup

View File

@ -52,6 +52,7 @@ class SphinxComponentRegistry(object):
def __init__(self): def __init__(self):
self.builders = {} # type: Dict[unicode, Type[Builder]] self.builders = {} # type: Dict[unicode, Type[Builder]]
self.domains = {} # type: Dict[unicode, Type[Domain]] self.domains = {} # type: Dict[unicode, Type[Domain]]
self.post_transforms = [] # type: List[Type[Transform]]
self.source_parsers = {} # type: Dict[unicode, Parser] self.source_parsers = {} # type: Dict[unicode, Parser]
self.source_inputs = {} # type: Dict[unicode, Input] self.source_inputs = {} # type: Dict[unicode, Input]
self.translators = {} # type: Dict[unicode, nodes.NodeVisitor] self.translators = {} # type: Dict[unicode, nodes.NodeVisitor]
@ -256,6 +257,15 @@ class SphinxComponentRegistry(object):
# type: () -> List[Type[Transform]] # type: () -> List[Type[Transform]]
return self.transforms return self.transforms
def add_post_transform(self, transform):
# type: (Type[Transform]) -> None
logger.debug('[app] adding post transform: %r', transform)
self.post_transforms.append(transform)
def get_post_transforms(self):
# type: () -> List[Type[Transform]]
return self.post_transforms
def load_extension(self, app, extname): def load_extension(self, app, extname):
# type: (Sphinx, unicode) -> None # type: (Sphinx, unicode) -> None
"""Load a Sphinx extension.""" """Load a Sphinx extension."""