Last active
September 5, 2017 01:07
-
-
Save chenlego/23d7baeacc794b57c2e369a8bbd8859f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import io | |
import os | |
from notebook.utils import to_api_path | |
import ntpath | |
_html_exporter = None | |
def script_post_save(model, os_path, contents_manager = 'html', **kwargs): | |
"""convert notebooks to Python script after save with nbconvert | |
replaces `ipython notebook --script` | |
""" | |
from nbconvert.exporters.html import HTMLExporter | |
if model['type'] != 'notebook': | |
return | |
global _html_exporter | |
if _html_exporter is None: | |
_html_exporter = HTMLExporter(parent=contents_manager) | |
log = contents_manager.log | |
html, resources = _html_exporter.from_filename(os_path) | |
base, ext = os.path.splitext(os_path) | |
filename = ntpath.basename(base) | |
target = '/var/www/html/jupyter/' + filename | |
html_fname = target + resources.get('output_extension', '.txt') | |
name = resources.get('name', '.txt') | |
log.info("Saving html /%s", to_api_path(html_fname, contents_manager.root_dir)) | |
with io.open(html_fname, 'w', encoding='utf-8') as f: | |
f.write(html) | |
c.FileContentsManager.post_save_hook = script_post_save |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment