Python < 2.6.5 doesn't accept unicode keys in f(**kwargs), and
base_project_url will always be unicode, which will in turn
make the patterns unicode, and ultimately result in unicode
keys in kwargs to handler._execute(**kwargs) in tornado.
This enforces that base_project_url be ascii in that situation.
Note that the URLs these patterns check against are escaped,
and thus guaranteed to be ASCII: 'héllo' is really 'h%C3%A9llo'.
If you actually use u'héllo' in your regex, it will not match the URLs
you think it should.
A number of bug fixes for notebook issues that had crept up recently with all the major improvements done on multiple fronts.
In closing #1359, we've changed slightly how Math() works: it now unconditionally surrounds its input with $$...$$, so that it always appears in displayed math mode. We have also introduced a new display object, Latex(), which does *not* add any latex markup, for other constructs beyond simple math expressions. This change makes Math() friendlier to use in simple cases and means that Math(sympy.latex(foo)) will produce the expected displayed math results without the user having to add any $ markup.
Summary of fixes:
Fixes#1344: Ctrl + M + L does not toggle line numbering in htmlnotebook.
Fixes#1337: Tab in the notebook after `(` should not indent, only give a tooltip.
Fixes#1339: Notebook printing broken.
Fixes#1348: `Ctrl-m-Ctrl-m` does not switch to markdown cell
Fixes#1359: [sympyprinting] MathJax can't render \root{m}{n}
1. Users are warned when an older nbformat notebook is converted.
2. The notebook notifies the user when a notebook that is too new
is attempted to load.
To test these things, create a simple notebook. Then change its
nbformat field by hand to 2 (to test 1) and then 4 (to test 2).
Pressing TAB to get the tooltip "range(TAB" was inserting a TAB.
To get rid of this we are now telling CodeMirror to ignore it
and also stopping the event from bubbling up the DOM.
* Refactored the save widget so that the notebook doesn't depend
on it. Now the notebook emits events and the save widget
observes those events.
* Created a new event system for all IPython events (events.js).
We should start to use this to allow our classes to be loosely
coupled.
* Created a new notification widget that should be used for all
notifications. Uses new event system.
* Removed the kernel status widget.
* All kernel status message use new event/notification system.
* The print notebook view works again.
Added plaintext and heading cells to the notebook UI and nbformat.
In the process we have updated the nbformat to v3 and integrated these new cell types into the new toolbar.
* json separator is not ',' to avoid adding extra space at EOL.
* vs used throughout nbformat.current.
* Cell collapse is properly loaded from notebook.
notebook - allow prefixes in URL path.
This closes#1329. The basic idea is to allow prefixes in the path served. (E.g. serve on http://localhost:8888/ipython/ instead of http://localhost:8888/ )
This is useful for running the ipython notebook behind a proxy serving other content at other URLs. In that case, one would also need to proxy the websockets.
Also, clean up some static paths in our html/css files by using template function calls instead of hardcoded paths.
Make Control-S (or Cmd-S on Apple) save the actual notebook instead of bringing up the useless 'save as html' dialog. This doesn't disable the C-m-s keybinding, simply adds the far more familiar and common C-s.
Add a toolbar with icons to the notebook interface. There are for now icons for the most important actions, we will slowly consider the addition of new ones later as necessary. But this should make everyday usage much more fluid for mouse-based users.
The new toolbar and the header bar have also been made collapsible, which allows users to have a very compact view with only minimal vertical space devoted to the UI and most of the screen available as usable work space.
We are adding a thin horizontal toolbar below the menubar. This
commit adds the basic UI elements. Still need to hook up the actions
and make this hidable.
Add XML coverage support to the test suite with new --with-xml-coverage flag. The resulting XML output files are understood by Jenkins, so now our automated test suite will have coverage reports.
The notebook js transforms ANSI-escaped text to HTML. The transformed HTML was previously persisted to ipynb files, rather than the true output. This has been fixed, and notebooks with ANSI-colored output will need to be re-run for colored output (tracebacks) to be displayed correctly after this change.
Updating CodeMirror to the latest dev master.
We had found a bug in CodeMirror that was forcing us to call refresh/focus/refresh on Firefox. This bug was fixed upstream. This PR pull in the latest CM with the bug fix and removes the extra refresh calls. All known CM bugs should be fixed, yeh!
Removing Ace edit capability.
We have fixed some of the problems with CodeMirror and feel that
the differences between Ace and CodeMirror are not great enough
to justify having both. We may reintroduce a full-window edit
mode using CodeMirror, but that will come separately.
We have fixed some of the problems with CodeMirror and feel that
the differences between Ace and CodeMirror are not great enough
to justify having both. We may reintroduce a full-window edit
mode using CodeMirror, but that will come separately.