def get_page_config(self): config = LabConfig() app = self.extensionapp base_url = self.settings.get("base_url") page_config = { "appVersion": version, "baseUrl": self.base_url, "terminalsAvailable": self.settings.get('terminals_available', False), "token": self.settings["token"], "fullStaticUrl": ujoin(self.base_url, "static", self.name), "frontendUrl": ujoin(self.base_url, "classic/"), } mathjax_config = self.settings.get("mathjax_config", "TeX-AMS_HTML-full,Safe") # TODO Remove CDN usage. mathjax_url = self.settings.get( "mathjax_url", "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js", ) page_config.setdefault("mathjaxConfig", mathjax_config) page_config.setdefault("fullMathjaxUrl", mathjax_url) # Put all our config in page_config for name in config.trait_names(): page_config[_camelCase(name)] = getattr(app, name) # Add full versions of all the urls for name in config.trait_names(): if not name.endswith("_url"): continue full_name = _camelCase("full_" + name) full_url = getattr(app, name) if not is_url(full_url): # Relative URL will be prefixed with base_url full_url = ujoin(base_url, full_url) page_config[full_name] = full_url labextensions_path = app.extra_labextensions_path + app.labextensions_path recursive_update( page_config, get_page_config( labextensions_path, logger=self.log, ), ) return page_config
def get_page_config(self): config = LabConfig() app = self.extensionapp base_url = self.settings.get("base_url") page_config = { "appVersion": version, "baseUrl": self.base_url, "terminalsAvailable": self.settings.get("terminals_available", False), "token": self.settings["token"], "fullStaticUrl": ujoin(self.base_url, "static", self.name), "frontendUrl": ujoin(self.base_url, "/"), "exposeAppInBrowser": app.expose_app_in_browser, "collaborative": app.collaborative, } if 'hub_prefix' in app.serverapp.tornado_settings: tornado_settings = app.serverapp.tornado_settings hub_prefix = tornado_settings['hub_prefix'] page_config['hubPrefix'] = hub_prefix page_config['hubHost'] = tornado_settings['hub_host'] page_config['hubUser'] = tornado_settings['user'] page_config['shareUrl'] = ujoin(hub_prefix, 'user-redirect') # Assume the server_name property indicates running JupyterHub 1.0. if hasattr(app.serverapp, 'server_name'): page_config['hubServerName'] = app.serverapp.server_name api_token = os.getenv('JUPYTERHUB_API_TOKEN', '') page_config['token'] = api_token mathjax_config = self.settings.get("mathjax_config", "TeX-AMS_HTML-full,Safe") # TODO Remove CDN usage. mathjax_url = self.settings.get( "mathjax_url", "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js", ) if not url_is_absolute(mathjax_url) and not mathjax_url.startswith( self.base_url): mathjax_url = ujoin(self.base_url, mathjax_url) page_config.setdefault("mathjaxConfig", mathjax_config) page_config.setdefault("fullMathjaxUrl", mathjax_url) # Put all our config in page_config for name in config.trait_names(): page_config[_camelCase(name)] = getattr(app, name) # Add full versions of all the urls for name in config.trait_names(): if not name.endswith("_url"): continue full_name = _camelCase("full_" + name) full_url = getattr(app, name) if not is_url(full_url): # Relative URL will be prefixed with base_url full_url = ujoin(base_url, full_url) page_config[full_name] = full_url labextensions_path = app.extra_labextensions_path + app.labextensions_path recursive_update( page_config, get_page_config( labextensions_path, logger=self.log, ), ) return page_config
def get_page_config(self): config = LabConfig() app = self.extensionapp base_url = self.settings.get("base_url") page_config_data = self.settings.setdefault("page_config_data", {}) page_config = { **page_config_data, "appVersion": version, "baseUrl": self.base_url, "terminalsAvailable": self.settings.get("terminals_available", False), "token": self.settings["token"], "fullStaticUrl": ujoin(self.base_url, "static", self.name), "frontendUrl": ujoin(self.base_url, "/"), "exposeAppInBrowser": app.expose_app_in_browser, "collaborative": app.collaborative, } if "hub_prefix" in app.serverapp.tornado_settings: tornado_settings = app.serverapp.tornado_settings hub_prefix = tornado_settings["hub_prefix"] page_config["hubPrefix"] = hub_prefix page_config["hubHost"] = tornado_settings["hub_host"] page_config["hubUser"] = tornado_settings["user"] page_config["shareUrl"] = ujoin(hub_prefix, "user-redirect") # Assume the server_name property indicates running JupyterHub 1.0. if hasattr(app.serverapp, "server_name"): page_config["hubServerName"] = app.serverapp.server_name api_token = os.getenv("JUPYTERHUB_API_TOKEN", "") page_config["token"] = api_token server_root = self.settings.get("server_root_dir", "") server_root = server_root.replace(os.sep, "/") server_root = os.path.normpath(os.path.expanduser(server_root)) try: # Remove the server_root from pref dir if self.serverapp.preferred_dir != server_root: page_config["preferredPath"] = "/" + os.path.relpath( self.serverapp.preferred_dir, server_root) else: page_config["preferredPath"] = "/" except Exception: page_config["preferredPath"] = "/" mathjax_config = self.settings.get("mathjax_config", "TeX-AMS_HTML-full,Safe") # TODO Remove CDN usage. mathjax_url = self.settings.get( "mathjax_url", "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js", ) if not url_is_absolute(mathjax_url) and not mathjax_url.startswith( self.base_url): mathjax_url = ujoin(self.base_url, mathjax_url) page_config.setdefault("mathjaxConfig", mathjax_config) page_config.setdefault("fullMathjaxUrl", mathjax_url) # Put all our config in page_config for name in config.trait_names(): page_config[_camelCase(name)] = getattr(app, name) # Add full versions of all the urls for name in config.trait_names(): if not name.endswith("_url"): continue full_name = _camelCase("full_" + name) full_url = getattr(app, name) if not is_url(full_url): # Relative URL will be prefixed with base_url full_url = ujoin(base_url, full_url) page_config[full_name] = full_url labextensions_path = app.extra_labextensions_path + app.labextensions_path recursive_update( page_config, get_page_config( labextensions_path, logger=self.log, ), ) return page_config