html.py
66 lines
| 2.4 KiB
| text/x-python
|
PythonLexer
MinRK
|
r13664 | """HTML Exporter class""" | ||
Jonathan Frederic
|
r10588 | |||
#----------------------------------------------------------------------------- | ||||
# Copyright (c) 2013, the IPython Development Team. | ||||
# | ||||
# Distributed under the terms of the Modified BSD License. | ||||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
Thomas Kluyver
|
r14047 | import os | ||
Thomas Kluyver
|
r18381 | from IPython.nbconvert.filters.highlight import Highlight2HTML | ||
Jonathan Frederic
|
r11736 | from IPython.config import Config | ||
Jonathan Frederic
|
r10677 | |||
Jonathan Frederic
|
r12505 | from .templateexporter import TemplateExporter | ||
Jonathan Frederic
|
r10588 | |||
#----------------------------------------------------------------------------- | ||||
# Classes | ||||
#----------------------------------------------------------------------------- | ||||
Matthias BUSSONNIER
|
r12500 | class HTMLExporter(TemplateExporter): | ||
Jonathan Frederic
|
r10677 | """ | ||
Exports a basic HTML document. This exporter assists with the export of | ||||
HTML. Inherit from it if you are writing your own HTML template and need | ||||
Paul Ivanov
|
r12219 | custom preprocessors/filters. If you don't need custom preprocessors/ | ||
Jonathan Frederic
|
r10677 | filters, just change the 'template_file' config option. | ||
""" | ||||
Thomas Kluyver
|
r13925 | def _file_extension_default(self): | ||
return 'html' | ||||
Jonathan Frederic
|
r10624 | |||
Thomas Kluyver
|
r14047 | def _default_template_path_default(self): | ||
return os.path.join("..", "templates", "html") | ||||
Thomas Kluyver
|
r13925 | def _template_file_default(self): | ||
Thomas Kluyver
|
r14047 | return 'full' | ||
MinRK
|
r13664 | |||
Thomas Kluyver
|
r13834 | output_mimetype = 'text/html' | ||
MinRK
|
r13664 | |||
Jonathan Frederic
|
r11733 | @property | ||
def default_config(self): | ||||
c = Config({ | ||||
Jonathan Frederic
|
r15547 | 'NbConvertBase': { | ||
'display_data_priority' : ['javascript', 'html', 'application/pdf', 'svg', 'latex', 'png', 'jpg', 'jpeg' , 'text'] | ||||
}, | ||||
Paul Ivanov
|
r12219 | 'CSSHTMLHeaderPreprocessor':{ | ||
Jonathan Frederic
|
r11733 | 'enabled':True | ||
Pablo de Oliveira
|
r12573 | }, | ||
'HighlightMagicsPreprocessor': { | ||||
'enabled':True | ||||
} | ||||
Jonathan Frederic
|
r11733 | }) | ||
Jonathan Frederic
|
r11736 | c.merge(super(HTMLExporter,self).default_config) | ||
Jonathan Frederic
|
r11733 | return c | ||
Thomas Kluyver
|
r18381 | |||
def from_notebook_node(self, nb, resources=None, **kw): | ||||
Thomas Kluyver
|
r18469 | langinfo = nb.metadata.get('language_info', {}) | ||
lexer = langinfo.get('pygments_lexer', langinfo.get('name', None)) | ||||
Thomas Kluyver
|
r18381 | self.register_filter('highlight_code', | ||
Highlight2HTML(pygments_lexer=lexer, parent=self)) | ||||
return super(HTMLExporter, self).from_notebook_node(nb, resources, **kw) | ||||