Edited at

Jupyter notebook で HTML も自動作成

More than 3 years have passed since last update.

Jupyter notebook は快適だけれども、昔のノートブックを見るためにサーバーをわざわざ起動させるのが気分的に面倒ということがある。同僚と情報を共有するのに HTML のほうが良いということもあるかもしれない。そういう時のために、自動的に HTML ファイルと py ファイルを保存するようにしておくと便利。

まず、(なければ)設定ファイルを作る。

% jupyter notebook --generate-config

作られた ~/.jupyter/jupyter_notebook_config.py を開いて

#-----------------------------

# Configurable configuration
#-----------------------------

の下にでも

import os

from subprocess import check_call

def post_save(model, os_path, contents_manager):
"""post-save hook for converting notebooks to .py scripts"""
if model['type'] != 'notebook':
return # only do this for notebooks
d, fname = os.path.split(os_path)
check_call(['jupyter', 'nbconvert', '--to', 'script', fname], cwd=d)
check_call(['jupyter', 'nbconvert', '--to', 'html', fname], cwd=d)

c.FileContentsManager.post_save_hook = post_save

これで、ipynb が作られると同時に同名の html と py (あるいは r など)が作られる。


参考

Jupyter Notebook for Data Science Teams (O'Reilly)

http://bit.ly/jupyter_profile

ipython nbconvert は古いという警告がでるので、参考元のコードの ipython を jupyter に変更しました。