Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to open the notebook in a browser when it starts #891

Merged
merged 1 commit into from Oct 17, 2011
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 13 additions & 2 deletions IPython/frontend/html/notebook/notebookapp.py
Expand Up @@ -22,6 +22,7 @@
import signal
import socket
import sys
import webbrowser

import zmq

Expand Down Expand Up @@ -51,7 +52,7 @@
aliases as ipkernel_aliases,
IPKernelApp
)
from IPython.utils.traitlets import Dict, Unicode, Int, List, Enum
from IPython.utils.traitlets import Dict, Unicode, Int, List, Enum, Bool

#-----------------------------------------------------------------------------
# Module globals
Expand Down Expand Up @@ -111,11 +112,15 @@ def __init__(self, ipython_app, kernel_manager, notebook_manager, log):
#-----------------------------------------------------------------------------

flags = dict(ipkernel_flags)
flags['no-browser']=(
{'IPythonNotebookApp' : {'open_browser' : False}},
"Don't open the notebook in a browser after startup."
)

# the flags that are specific to the frontend
# these must be scrubbed before being passed to the kernel,
# or it will raise an error on unrecognized flags
notebook_flags = []
notebook_flags = ['no-browser']

aliases = dict(ipkernel_aliases)

Expand Down Expand Up @@ -195,6 +200,9 @@ def _ip_changed(self, name, old, new):
password = Unicode(u'', config=True,
help="""Password to use for web authentication"""
)

open_browser = Bool(True, config=True,
help="Whether to open in a browser after starting.")

def get_ws_url(self):
"""Return the WebSocket URL for this server."""
Expand Down Expand Up @@ -291,6 +299,9 @@ def start(self):
self.log.info("The IPython Notebook is running at: %s://%s:%i" % (proto,
ip,
self.port))
if self.open_browser:
ip = self.ip or '127.0.0.1'
webbrowser.open("%s://%s:%i" % (proto, ip, self.port), new=2)
ioloop.IOLoop.instance().start()

#-----------------------------------------------------------------------------
Expand Down