html.py
57 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
MinRK
|
r13664 | """HTML Exporter class""" | ||
Jonathan Frederic
|
r10588 | |||
Min RK
|
r19918 | # Copyright (c) IPython Development Team. | ||
Jonathan Frederic
|
r10588 | # Distributed under the terms of the Modified BSD License. | ||
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): | ||
Thomas Kluyver
|
r19027 | 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': { | ||
Min RK
|
r20741 | 'display_data_priority' : ['application/javascript', 'text/html', 'text/markdown', 'application/pdf', 'image/svg+xml', 'text/latex', 'image/png', 'image/jpeg', 'text/plain'] | ||
Jonathan Frederic
|
r15547 | }, | ||
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) | ||||