diff --git a/IPython/frontend/html/notebook/notebookapp.py b/IPython/frontend/html/notebook/notebookapp.py
index e7a00c0..8fc6e3f 100644
--- a/IPython/frontend/html/notebook/notebookapp.py
+++ b/IPython/frontend/html/notebook/notebookapp.py
@@ -89,7 +89,7 @@ ipython notebook --port=5555 --ip=* # Listen on port 5555, all interfaces
class NotebookWebApplication(web.Application):
- def __init__(self, ipython_app, kernel_manager, notebook_manager, log):
+ def __init__(self, ipython_app, kernel_manager, notebook_manager, log, settings_overrides):
handlers = [
(r"/", ProjectDashboardHandler),
(r"/login", LoginHandler),
@@ -111,7 +111,11 @@ class NotebookWebApplication(web.Application):
cookie_secret=os.urandom(1024),
login_url="/login",
)
- web.Application.__init__(self, handlers, **settings)
+
+ # allow custom overrides for the tornado web app.
+ settings.update(settings_overrides)
+
+ super(NotebookWebApplication, self).__init__(handlers, **settings)
self.kernel_manager = kernel_manager
self.log = log
@@ -243,6 +247,10 @@ class NotebookApp(BaseIPythonApplication):
help="Whether to prevent editing/execution of notebooks."
)
+ webapp_settings = Dict(config=True,
+ help="Supply overrides for the tornado.web.Application that the "
+ "IPython notebook uses.")
+
enable_mathjax = Bool(True, config=True,
help="""Whether to enable MathJax for typesetting math/TeX
@@ -264,7 +272,7 @@ class NotebookApp(BaseIPythonApplication):
def _mathjax_url_default(self):
if not self.enable_mathjax:
return u''
- static_path = os.path.join(os.path.dirname(__file__), "static")
+ static_path = self.webapp_settings.get("static_path", os.path.join(os.path.dirname(__file__), "static"))
if os.path.exists(os.path.join(static_path, 'mathjax', "MathJax.js")):
self.log.info("Using local MathJax")
return u"static/mathjax/MathJax.js"
@@ -315,7 +323,8 @@ class NotebookApp(BaseIPythonApplication):
super(NotebookApp, self).initialize(argv)
self.init_configurables()
self.web_app = NotebookWebApplication(
- self, self.kernel_manager, self.notebook_manager, self.log
+ self, self.kernel_manager, self.notebook_manager, self.log,
+ self.webapp_settings
)
if self.certfile:
ssl_options = dict(certfile=self.certfile)