serves files in `IPYTHONDIR/js_extensions` at `/js_extensions`.
This is a location for users / devs to drop-in frontend customization as js modules, css, etc.
The model is very much like the extensions dir (hence the name) - it's a location made available, but not loaded by default. You can load things from there with require, etc.
It's a configurable search path, just like static. This way we can define a system-wide location at a later point (/usr/share/ipython/js_extensions?) and still have user installs.
moves away from global constants to utility functions.
The code is still only executed once,
but instead of at import time, it is executed at first request.
add IPython.start_ipython
A public API for starting a real (non-embedded) IPython instance.
should avoid API breakage in the future due to simple module renames, as has just happened with the removal of frontend.
For implementation purposes, I have added launch_new_instance as a classmethod on Application. I did this, because I wanted to add the ability to pass arguments to the instance, and didn't want to manually update every duplicate launch_new_instance.
closes#1537