Esempio n. 1
0
def create_fallback_envs_for_app(app):
    """
    Create additional envs for separate source paths.

    Additional environments are created in order to find files and translate
    docnames to paths. Additional environments are the cleanest method to
    accomplish this.

    :param app: Base Sphinx application
    """
    # This code is copied from the Sphinx application instantiation
    for path in app.config.multisrc_paths:
        env = BuildEnvironment()
        env.app = app
        env.doctreedir = app.doctreedir
        env.srcdir = path
        env.version = app.registry.get_envversion(app)
        env.domains = {}
        for domain in app.registry.create_domains(env):
            env.domains[domain.name] = domain
        env._update_config(app.config)
        env._update_settings(app.config)
        yield env