Make : invalid in filenames in the Notebook JS code.
This only prevents : in the filenames on the JavaScript side of things. Handling this on the server side will be a separate issue that is related to other open issue. I will update those to reflect this.
closes#1781
For security reasons, the kernel should not be started until
after the notebook content is completely loaded and on the page.
This prevents people from creating notebooks that run nasty code
on the users machine at load time.
In order to implement this, we had to create a CodeCell.set_kernel
method that allows the kernel attribute of a CodeCell to be set
at a later time. This also fixes some error messages we were
seeing related to the kernel's channels not being setup properly
when a send was attempted.
* Kernel doesn't depend on Notebook or CodeCell.
* CodeCell doesn't depend on Notebook, only Kernel.
* All of the kernel management logic has been moved out of the
Notebook into the Kernel.
* Public methods of the Kernel (execute, complete, etc) take
a callbacks object that registers the callbacks for that msg.
(rebased, cherrypicked, by Bussonnier Matthias <bussonniermatthias@gmail.com>)
(and tabs removed)
Conflicts:
IPython/frontend/html/notebook/static/js/codecell.js
IPython/frontend/html/notebook/static/js/completer.js
IPython/frontend/html/notebook/static/js/tooltip.js
Resizing to small collapse the pager keeping the size to at least 20%
height
(trying to) resize a collapsed pager to more than 10% "expand" it.
Pager can remember it size when toggling by clicking.
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).
* 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.
* json separator is not ',' to avoid adding extra space at EOL.
* vs used throughout nbformat.current.
* Cell collapse is properly loaded from notebook.
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.
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.
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.
* Merge/split works for all cell types.
* Notebook.select won't select an already selected cell.
* Bugs in markdown cell editing fixed.
* border-box-sizing used for Markdown cells to get correct css boxes.
* Shading/border added to Markdown cell editor.
* Cell insertion code completely rewritten. We now have two methods
rather than 9: insert_cell_above, insert_cell_below.
* Renaming methods to be more consistent.
* Creating new methods to provide a uniform API.
* Minor bug fixes.
* Added placeholder to the base Cell class.
* Removed the \u0000 char at the beginning of the TextCell
placeholder that was there for a CodeMirror bug workaround.
* Other refactoring of Cell related Notebook methods.
* Added set_text/get_text in favor of get_code/set_code and
get_source/set_source.
* Added methods to the base class (get_text, set_text, refresh,
edit, render, toJSON, fromJSON).
When enabling paste, I was adding the click callback multiple
times causing paste to overwrite multiple cells. I also found
a bug that was doing paste above instead of paste below.