##// END OF EJS Templates
Handle kernel messages synchronously...
Handle kernel messages synchronously A problem can happen when two messages come in for different comms, where the second depends on the first (for example, the first might be a message setting the state of a widget, and the second triggering a view creation for the widget). Since comm message queues are independent of each other, the second message could be executed before the first message. This exposes a more fundamental assumption users are likely to have that messages from python are processed synchronously. Thanks to @dmadeka for reporting an error that led to discovering this issue.

File last commit:

r19678:a9b8cfb1
r20621:f936f880
Show More
custom.js
82 lines | 2.8 KiB | application/javascript | JavascriptLexer
Matthias BUSSONNIER
document custom.js
r8740 // leave at least 2 line with only a star on it below, or doc generation fails
/**
*
*
* Placeholder for custom user javascript
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * mainly to be overridden in profile/static/custom/custom.js
Matthias BUSSONNIER
document custom.js
r8740 * This will always be an empty file in IPython
*
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * User could add any javascript in the `profile/static/custom/custom.js` file
Matthias BUSSONNIER
document custom.js
r8740 * (and should create it if it does not exist).
* It will be executed by the ipython notebook at load time.
*
Brian E. Granger
Fixing path to custom.css in comment.
r10742 * Same thing with `profile/static/custom/custom.css` to inject custom css into the notebook.
dongweiming
Update custom.js for 3.0
r19678 *
* Classes and functions are available at load time and may be accessed plainly:
*
patricktokeeffe
Update custom.js
r17572 * IPython.Cell.options_default.cm_config.extraKeys['Home'] = 'goLineLeft';
* IPython.Cell.options_default.cm_config.extraKeys['End'] = 'goLineRight';
dongweiming
Update custom.js for 3.0
r19678 *
patricktokeeffe
Update custom.js...
r17548 * Instances are created later however and must be accessed using events:
dongweiming
Update custom.js for 3.0
r19678 * require([
* 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on("app_initialized.NotebookApp", function () {
* IPython.keyboard_manager....
* });
patricktokeeffe
Update custom.js...
r17548 * });
Matthias BUSSONNIER
Fix layout and add note about custom.css
r8741 *
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * __Example 1:__
Matthias BUSSONNIER
Fix layout and add note about custom.css
r8741 *
Matthias BUSSONNIER
document custom.js
r8740 * Create a custom button in toolbar that execute `%qtconsole` in kernel
* and hence open a qtconsole attached to the same kernel as the current notebook
*
dongweiming
Update custom.js for 3.0
r19678 * require([
* 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on('app_initialized.NotebookApp', function(){
* IPython.toolbar.add_buttons_group([
* {
* 'label' : 'run qtconsole',
* 'icon' : 'icon-terminal', // select your icon from http://fortawesome.github.io/Font-Awesome/icons
* 'callback': function () {
* IPython.notebook.kernel.execute('%qtconsole')
* }
* }
* // add more button here if needed.
* ]);
* });
Matthias BUSSONNIER
document custom.js
r8740 * });
*
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * __Example 2:__
*
* At the completion of the dashboard loading, load an unofficial javascript extension
dongweiming
Update custom.js for 3.0
r19678 * that is installed in profile/static/custom/
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 *
dongweiming
Update custom.js for 3.0
r19678 * require([
* 'base/js/events'
* ], function(events) {
* events.on('app_initialized.DashboardApp', function(){
* require(['custom/unofficial_extension.js'])
* });
Jean-Christophe Jaskula
Creating an entry point for notebook manager extensions...
r17047 * });
*
* __Example 3:__
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 *
* Use `jQuery.getScript(url [, success(script, textStatus, jqXHR)] );`
* to load custom script into the notebook.
*
* // to load the metadata ui extension example.
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * $.getScript('/static/notebook/js/celltoolbarpresets/example.js');
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 * // or
* // to load the metadata ui extension to control slideshow mode / reveal js for nbconvert
Brian E. Granger
Removing one level uf subdirs in static/custom.
r10739 * $.getScript('/static/notebook/js/celltoolbarpresets/slideshow.js');
Matthias BUSSONNIER
Split metadataui into multiple file...
r9057 *
*
Matthias BUSSONNIER
document custom.js
r8740 * @module IPython
* @namespace IPython
* @class customjs
* @static
*/