每次加载Jupyter Notebook时都运行一些JavaScript

时间:2016-02-05 14:49:01

标签: python ipython jupyter

我正在运行一个Jupyter Notebook服务器,我想运行一些任意的javascript代码来配置每次加载时的笔记本。

我想要运行的代码示例...

$('div#maintoolbar').hide();
$('div#header-container').hide();

require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"],
    function(sublime_keymap, cell, IPython) {
        cell.Cell.options_default.cm_config.keyMap = 'sublime';
        var cells = IPython.notebook.get_cells();
        for(var c=0; c< cells.length ; c++){
            cells[c].code_mirror.setOption('keyMap', 'sublime');
        }
    } 
);

我觉得这应该很简单,但却找不到相关的文档......

我发现的文档经常引用Javascript中的IPython对象。关于何时使用关键字IPython vs Jupyter的任何建议?例如,IPython.KeyboardManager和Jupyter.KeyboardManager都是笔记本中的有效javascript对象。

2 个答案:

答案 0 :(得分:0)

正如Hugh Bothwell已经提到的,你可以把你的js放在custom.js文件中,但我建议将它放在一个单独的文件中并在custom.js中调用(有关如何执行此操作的指导原则) custom.js本身)。如果您更感兴趣,也可以查看笔记本扩展。

IPython和Jupyter之间的区别在于内核即ipython的版本,如果您运行的是ipython 3.5或更高版本的环境,那么如果您使用的是较低版本的IPython,那么您将使用Jupyter。不好的是,并非所有东西都是相互兼容的。

答案 1 :(得分:0)

似乎~/.jupyter/custom/custom.js可能是要编辑的文件。我能够在其中添加代码以禁用向上和向下错误(我喜欢这样做)。

Jupyter.keyboard_manager.command_shortcuts.remove_shortcut('up');
Jupyter.keyboard_manager.command_shortcuts.remove_shortcut('down')