From 6df9ab5828c7705fd09f85d357b7e492361c0b8d 2013-12-13 22:46:51 From: Thomas Kluyver Date: 2013-12-13 22:46:51 Subject: [PATCH] Condense raw_mimetype and mime_type traitlets into output_mimetype --- diff --git a/IPython/html/nbconvert/handlers.py b/IPython/html/nbconvert/handlers.py index f173209..02e31d5 100644 --- a/IPython/html/nbconvert/handlers.py +++ b/IPython/html/nbconvert/handlers.py @@ -36,8 +36,9 @@ class NbconvertFileHandler(IPythonHandler): 'attachment; filename="%s"' % filename) # MIME type - if exporter.mime_type: - self.set_header('Content-Type', '%s; charset=utf-8' % exporter.mime_type) + if exporter.output_mimetype: + self.set_header('Content-Type', + '%s; charset=utf-8' % exporter.output_mimetype) output, resources = exporter.from_filename(os_path) @@ -57,8 +58,9 @@ class NbconvertPostHandler(IPythonHandler): nbnode = to_notebook_json(model['content']) # MIME type - if exporter.mime_type: - self.set_header('Content-Type', '%s; charset=utf-8' % exporter.mime_type) + if exporter.output_mimetype: + self.set_header('Content-Type', + '%s; charset=utf-8' % exporter.output_mimetype) output, resources = exporter.from_notebook_node(nbnode) diff --git a/IPython/html/static/notebook/js/celltoolbarpresets/rawcell.js b/IPython/html/static/notebook/js/celltoolbarpresets/rawcell.js index 3d51798..75965f0 100644 --- a/IPython/html/static/notebook/js/celltoolbarpresets/rawcell.js +++ b/IPython/html/static/notebook/js/celltoolbarpresets/rawcell.js @@ -22,7 +22,7 @@ ["reST", "text/restructuredtext"], ["HTML", "text/html"], ["Markdown", "text/markdown"], - ["Python", "application/x-python"], + ["Python", "text/x-python"], ["Custom", "dialog"], ], @@ -87,4 +87,4 @@ CellToolbar.register_preset('Raw Cell Format', raw_cell_preset); console.log('Raw Cell Format toolbar preset loaded.'); -}(IPython)); \ No newline at end of file +}(IPython)); diff --git a/IPython/nbconvert/exporters/exporter.py b/IPython/nbconvert/exporters/exporter.py index c7c60d0..26e1fe4 100644 --- a/IPython/nbconvert/exporters/exporter.py +++ b/IPython/nbconvert/exporters/exporter.py @@ -53,7 +53,7 @@ class Exporter(LoggingConfigurable): help="Extension of the file that should be written to disk" ) - mime_type = Unicode('', config=True, + output_mimetype = Unicode('', config=True, help="MIME type of the result file, for HTTP response headers." ) diff --git a/IPython/nbconvert/exporters/html.py b/IPython/nbconvert/exporters/html.py index 3a9147c..95790c1 100644 --- a/IPython/nbconvert/exporters/html.py +++ b/IPython/nbconvert/exporters/html.py @@ -43,7 +43,7 @@ class HTMLExporter(TemplateExporter): default_template = Unicode('full', config=True, help="""Flavor of the data format to use. I.E. 'full' or 'basic'""") - def _raw_mimetype_default(self): + def _output_mimetype_default(self): return 'text/html' @property diff --git a/IPython/nbconvert/exporters/latex.py b/IPython/nbconvert/exporters/latex.py index 369dcf5..551e535 100644 --- a/IPython/nbconvert/exporters/latex.py +++ b/IPython/nbconvert/exporters/latex.py @@ -40,10 +40,6 @@ class LatexExporter(TemplateExporter): 'tex', config=True, help="Extension of the file that should be written to disk") - mime_type = Unicode('application/x-tex', config=True, - help="MIME type of the result file, for HTTP response headers." - ) - default_template = Unicode('article', config=True, help="""Template of the data format to use. I.E. 'article' or 'report'""") @@ -67,7 +63,7 @@ class LatexExporter(TemplateExporter): #Extension that the template files use. template_extension = Unicode(".tplx", config=True) - def _raw_mimetype_default(self): + def _output_mimetype_default(self): return 'text/latex' diff --git a/IPython/nbconvert/exporters/markdown.py b/IPython/nbconvert/exporters/markdown.py index da4900b..4013c3f 100644 --- a/IPython/nbconvert/exporters/markdown.py +++ b/IPython/nbconvert/exporters/markdown.py @@ -30,15 +30,11 @@ class MarkdownExporter(TemplateExporter): 'md', config=True, help="Extension of the file that should be written to disk") - def _raw_mimetype_default(self): + def _output_mimetype_default(self): return 'text/markdown' def _raw_mimetypes_default(self): - return ['text/markdown', 'text/html'] - - mime_type = Unicode('text/x-markdown', config=True, - help="MIME type of the result file, for HTTP response headers." - ) + return ['text/markdown', 'text/html', ''] @property def default_config(self): diff --git a/IPython/nbconvert/exporters/python.py b/IPython/nbconvert/exporters/python.py index d618cd7..750b0ac 100644 --- a/IPython/nbconvert/exporters/python.py +++ b/IPython/nbconvert/exporters/python.py @@ -29,9 +29,5 @@ class PythonExporter(TemplateExporter): 'py', config=True, help="Extension of the file that should be written to disk") - def _raw_mimetype_default(self): - return 'application/x-python' - - mime_type = Unicode('text/x-python', config=True, - help="MIME type of the result file, for HTTP response headers." - ) + def _output_mimetype_default(self): + return 'text/x-python' diff --git a/IPython/nbconvert/exporters/rst.py b/IPython/nbconvert/exporters/rst.py index 34b9eca..0bf4ead 100644 --- a/IPython/nbconvert/exporters/rst.py +++ b/IPython/nbconvert/exporters/rst.py @@ -30,13 +30,9 @@ class RSTExporter(TemplateExporter): 'rst', config=True, help="Extension of the file that should be written to disk") - def _raw_mimetype_default(self): + def _output_mimetype_default(self): return 'text/restructuredtext' - mime_type = Unicode('text/x-rst', config=True, - help="MIME type of the result file, for HTTP response headers." - ) - @property def default_config(self): c = Config({'ExtractOutputPreprocessor':{'enabled':True}}) diff --git a/IPython/nbconvert/exporters/slides.py b/IPython/nbconvert/exporters/slides.py index 7f8ab46..6b59e00 100644 --- a/IPython/nbconvert/exporters/slides.py +++ b/IPython/nbconvert/exporters/slides.py @@ -31,9 +31,8 @@ class SlidesExporter(HTMLExporter): help="Extension of the file that should be written to disk" ) - mime_type = Unicode('text/html', config=True, - help="MIME type of the result file, for HTTP response headers." - ) + def _output_mimetype_default(self): + return 'text/html' default_template = Unicode('reveal', config=True, help="""Template of the data format to use. I.E. 'reveal'""") diff --git a/IPython/nbconvert/exporters/templateexporter.py b/IPython/nbconvert/exporters/templateexporter.py index a5eed82..cdc1ee6 100644 --- a/IPython/nbconvert/exporters/templateexporter.py +++ b/IPython/nbconvert/exporters/templateexporter.py @@ -126,12 +126,13 @@ class TemplateExporter(Exporter): help="""Dictionary of filters, by name and namespace, to add to the Jinja environment.""") - raw_mimetype = Unicode('') + output_mimetype = Unicode('') + raw_mimetypes = List(config=True, help="""formats of raw cells to be included in this Exporter's output.""" ) def _raw_mimetypes_default(self): - return [self.raw_mimetype] + return [self.output_mimetype, ''] def __init__(self, config=None, extra_loaders=None, **kw): @@ -209,7 +210,6 @@ class TemplateExporter(Exporter): preprocessors and filters. """ nb_copy, resources = super(TemplateExporter, self).from_notebook_node(nb, resources, **kw) - resources.setdefault('raw_mimetype', self.raw_mimetype) resources.setdefault('raw_mimetypes', self.raw_mimetypes) self._load_template() diff --git a/IPython/nbconvert/exporters/tests/base.py b/IPython/nbconvert/exporters/tests/base.py index 9db1caa..ad61321 100644 --- a/IPython/nbconvert/exporters/tests/base.py +++ b/IPython/nbconvert/exporters/tests/base.py @@ -23,7 +23,7 @@ from ...tests.base import TestsBase #----------------------------------------------------------------------------- all_raw_mimetypes = { - 'application/x-python', + 'text/x-python', 'text/markdown', 'text/html', 'text/restructuredtext', diff --git a/IPython/nbconvert/exporters/tests/files/rawtest.ipynb b/IPython/nbconvert/exporters/tests/files/rawtest.ipynb index 667ddbf..6eae33a 100644 --- a/IPython/nbconvert/exporters/tests/files/rawtest.ipynb +++ b/IPython/nbconvert/exporters/tests/files/rawtest.ipynb @@ -43,7 +43,7 @@ { "cell_type": "raw", "metadata": { - "raw_mimetype": "application/x-python" + "raw_mimetype": "text/x-python" }, "source": [ "def bar():\n", @@ -81,4 +81,4 @@ "metadata": {} } ] -} \ No newline at end of file +} diff --git a/IPython/nbconvert/templates/latex/skeleton/null.tplx b/IPython/nbconvert/templates/latex/skeleton/null.tplx index 5f8909b..2327e84 100644 --- a/IPython/nbconvert/templates/latex/skeleton/null.tplx +++ b/IPython/nbconvert/templates/latex/skeleton/null.tplx @@ -81,7 +81,7 @@ consider calling super even if it is a leave block, we might insert more blocks ((*- endblock headingcell -*)) ((*- elif cell.cell_type in ['raw'] -*)) ((*- block rawcell scoped -*)) - ((* if cell.metadata.get('raw_mimetype', resources.get('raw_mimetype')) == resources.get('raw_mimetype') *)) + ((* if cell.metadata.get('raw_mimetype', '').lower() in resources.get('raw_mimetypes', ['']) *)) ((( cell.source ))) ((* endif *)) ((*- endblock rawcell -*)) diff --git a/IPython/nbconvert/templates/skeleton/null.tpl b/IPython/nbconvert/templates/skeleton/null.tpl index aec85f4..9779043 100644 --- a/IPython/nbconvert/templates/skeleton/null.tpl +++ b/IPython/nbconvert/templates/skeleton/null.tpl @@ -77,7 +77,7 @@ consider calling super even if it is a leave block, we might insert more blocks {%- endblock headingcell -%} {%- elif cell.cell_type in ['raw'] -%} {%- block rawcell scoped -%} - {% if cell.metadata.get('raw_mimetype', resources.get('raw_mimetype', '')).lower() in resources.get('raw_mimetypes', ['']) %} + {% if cell.metadata.get('raw_mimetype', '').lower() in resources.get('raw_mimetypes', ['']) %} {{ cell.source }} {% endif %} {%- endblock rawcell -%}