diff --git a/IPython/html/services/contents/filemanager.py b/IPython/html/services/contents/filemanager.py
index 45099fb..cdcda19 100644
--- a/IPython/html/services/contents/filemanager.py
+++ b/IPython/html/services/contents/filemanager.py
@@ -19,31 +19,34 @@ from IPython.utils.io import atomic_writing
from IPython.utils.importstring import import_item
from IPython.utils.path import ensure_dir_exists
from IPython.utils.traitlets import Any, Unicode, Bool, TraitError
-from IPython.utils.py3compat import getcwd, str_to_unicode
+from IPython.utils.py3compat import getcwd, str_to_unicode, string_types
from IPython.utils import tz
from IPython.html.utils import is_hidden, to_os_path, to_api_path
_script_exporter = None
+
def _post_save_script(model, os_path, contents_manager, **kwargs):
"""convert notebooks to Python script after save with nbconvert
replaces `ipython notebook --script`
"""
- from IPython.nbconvert.exporters.python import PythonExporter
+ from IPython.nbconvert.exporters.script import ScriptExporter
if model['type'] != 'notebook':
return
+
global _script_exporter
if _script_exporter is None:
- _script_exporter = PythonExporter(parent=contents_manager)
+ _script_exporter = ScriptExporter(parent=contents_manager)
log = contents_manager.log
base, ext = os.path.splitext(os_path)
py_fname = base + '.py'
- log.info("Writing %s", py_fname)
- py, resources = _script_exporter.from_filename(os_path)
- with io.open(py_fname, 'w', encoding='utf-8') as f:
- f.write(py)
+ script, resources = _script_exporter.from_filename(os_path)
+ script_fname = base + resources.get('output_extension', '.txt')
+ log.info("Saving script /%s", to_api_path(script_fname, contents_manager.root_dir))
+ with io.open(script_fname, 'w', encoding='utf-8') as f:
+ f.write(script)
class FileContentsManager(ContentsManager):
@@ -96,9 +99,9 @@ class FileContentsManager(ContentsManager):
A post-save hook has been registered that calls:
- ipython nbconvert --to python [notebook]
+ ipython nbconvert --to script [notebook]
- which behaves similar to `--script`.
+ which behaves similarly to `--script`.
""")
self.post_save_hook = _post_save_script