def event_env_updated(app, env): """ This emits some additional sphinx events to allow additional processing after "Phase 1: Read", but before the env is pickled (which happens during "Phase 2: Consistency Checks"). :param sphinx.application.Sphinx app: Sphinx Application :param sphinx.environment.BuildEnvironment env: Sphinx Environment """ sphinx_emit(app, 'before-doctree-extra-processing', app, env) # TODO:PARALLEL add parallel processing with ParallelTasks or see sphinx.builders.linkcheck # from sphinx.util.parallel import ParallelTasks, parallel_available # if parallel_available and app.parallel > 1: # based on sphinx.environment #598 # nproc = app.parallel # # env.asset_tasks = ParallelTasks(nproc) for docname in env.all_docs: doctree = env.get_doctree(docname) # Return True if the doctree needs to be re-pickled. re_pickle = sphinx_emit(app, 'doctree-extra-processing', app, env, docname, doctree) if True in re_pickle: pickle_doctree(env, docname, doctree) # merge parallel: # env.asset_tasks.join() sphinx_emit(app, 'before-pickle-env', app, env)
def emit(self, event, *args): """ Emit a signal so that other extensions can influence the processing of visual nodes :param string event: represents an event registered with Sphinx """ sphinx_emit(self.app, event, *args)