Jupyter Notebook で default cell type を変更する

Jupyter Notebook で新規セルのデフォルトタイプを変更するには,以下のようにファイルに1行書くと動く。またはブラウザーの開発者ツールの Console で1行実行してもよい。という話。

mkdir -p ~/.jupyter/custom
vim ~/.jupyter/custom/custom.js
// in ['code','markdown', 'raw'], defaults to 'code'
// or the special values of
// 'above', 'below', or 'selected' to get the value from another cell.
Jupyter.notebook.class_config.set("default_cell_type", "selected");

Jupyter Notebook で新しいセルを作成するとセルタイプが code になるが, markdown セルを連続で作りたい場合にはこれが少々邪魔だった。そこで,現在選択されているセルのタイプに追従するように変更した。軽くググった限りではズバリの手順が引っかからなかったから,軽く試行錯誤して設定した。Jupyter的に正しい手順である確証はないがとりあえず動く。

ウェブ上の情報の断片とNotebookの /static/notebook/js/notebook/js/notebook.js を軽く眺めたところ, ~/.jupyter/custom/custom.js を作成して1行記述するとブラウザ上でうまく実行してくれた。

mkdir -p ~/.jupyter/custom
vim ~/.jupyter/custom/custom.js
// in ['code','markdown', 'raw'], defaults to 'code'
// or the special values of
// 'above', 'below', or 'selected' to get the value from another cell.
Jupyter.notebook.class_config.set("default_cell_type", "selected");

コメントで書き込んであるのはソースコードの記述の抜粋。設定値は code , markdown , raw , above , below , selected のいずれかであって,前3つはデフォルトセルタイプ固定で,後3つは選択セルの 上/下/それ自身 のセルタイプと同じものを作成する。デフォルトでは code が入っている。

なおとりあえず今回だけデフォルトタイプを変えたい場合は,ブラウザーの開発者ツールの Console で上の1行を実行すれば動く。

なお Jupyter.Notebook.options_default.default_cell_type = "selected"; でも動くが,上の記述のほうがおそらく行儀が良い。

なお動作を確認した環境は, Windows 10 上に choco で入れたプレーンな Python 3.7 に pip install jupyter で入った jupyter-noteook 5.7.4 。

参考文献