##// END OF EJS Templates
bring back nbconvertapp
bring back nbconvertapp

File last commit:

r9875:1bb7d2b5
r9875:1bb7d2b5
Show More
nbconvert.py
125 lines | 4.2 KiB | text/x-python | PythonLexer
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220 #!/usr/bin/env python
Paul Ivanov
list known formats in help & on unknown fmt error...
r6280 """Convert IPython notebooks to other formats, such as ReST, and HTML.
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220
Paul Ivanov
list known formats in help & on unknown fmt error...
r6280 Example:
MinRK
Add true HTML export...
r7914 ./nbconvert.py --format rst file.ipynb
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220
MinRK
Add true HTML export...
r7914 Produces 'file.rst', along with auto-generated figure files
called nb_figure_NN.png.
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220 """
Fernando Perez
Fix handling of local files with the /files/ pseudo-url.
r6677 #-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Fernando Perez
First working version of latex converter.
r6671 from __future__ import print_function
Fernando Perez
Fix handling of local files with the /files/ pseudo-url.
r6677 # From IPython
Paul Ivanov
use argparse from IPython
r6262 from IPython.external import argparse
MinRK
Add true HTML export...
r7914
Matthias BUSSONNIER
bring back nbconvertapp
r9875 # All the stuff needed for the configurable things
from IPython.config.application import Application, catch_config_error
from IPython.config.configurable import Configurable, SingletonConfigurable
from IPython.config.loader import Config, ConfigFileNotFound
from IPython.utils.traitlets import List, Unicode, Type, Bool, Dict, CaselessStrEnum
MinRK
Add true HTML export...
r7914 # local
Matthias BUSSONNIER
latex working
r8618 from converters.html import ConverterHTML
from converters.markdown import ConverterMarkdown
from converters.bloggerhtml import ConverterBloggerHTML
from converters.rst import ConverterRST
from converters.latex import ConverterLaTeX
Matthias BUSSONNIER
all seem to convert again
r8620 from converters.python import ConverterPy
damianavila
Changed name option from slider to reveal
r8823 from converters.reveal import ConverterReveal
Matthias BUSSONNIER
bring back nbconvertapp
r9875 from converters.base import Converter
Jonathan Taylor
overriding DocInherit due to recursion depth errors
r7366
Maximilian Albert
Much cleaner way of picking the right converter (inspired by a suggestion by Carreau).
r8728
# When adding a new format, make sure to add it to the `converters`
# dictionary below. This is used to create the list of known formats,
# which gets printed in case an unknown format is encounteres, as well
# as in the help
Maximilian Albert
Use a regular dictionary instead of OrderedDict.
r8731 converters = {
'rst': ConverterRST,
'markdown': ConverterMarkdown,
'html': ConverterHTML,
'blogger-html': ConverterBloggerHTML,
'latex': ConverterLaTeX,
'py': ConverterPy,
damianavila
Changed name option from slider to reveal
r8823 'reveal': ConverterReveal,
Maximilian Albert
Use a regular dictionary instead of OrderedDict.
r8731 }
Maximilian Albert
Much cleaner way of picking the right converter (inspired by a suggestion by Carreau).
r8728
Maximilian Albert
Use a regular dictionary instead of OrderedDict.
r8731 default_format = 'rst'
Maximilian Albert
Better way of marking the default format (thanks to Carreau for the suggestion).
r8730
Maximilian Albert
Much cleaner way of picking the right converter (inspired by a suggestion by Carreau).
r8728 # Extract the list of known formats and mark the first format as the default.
Maximilian Albert
Better way of marking the default format (thanks to Carreau for the suggestion).
r8730 known_formats = ', '.join([key + " (default)" if key == default_format else key
Maximilian Albert
Drop .keys() since iteration over dictionaries automatically uses them.
r8733 for key in converters])
Maximilian Albert
Much cleaner way of picking the right converter (inspired by a suggestion by Carreau).
r8728
Matthias BUSSONNIER
bring back nbconvertapp
r9875 class NbconvertApp(Application):
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220
Matthias BUSSONNIER
working config
r9767
Matthias BUSSONNIER
bring back nbconvertapp
r9875 fmt = CaselessStrEnum(converters.keys(),
default_value='rst',
config=True,
help="Supported conversion format")
Matthias BUSSONNIER
working config
r9767
Matthias BUSSONNIER
bring back nbconvertapp
r9875 exclude = List( [],
config=True,
help = 'list of cells to exclude while converting')
Matthias BUSSONNIER
nbconvert is now configurable app
r9568
aliases = {
'format':'NbconvertApp.fmt',
Matthias BUSSONNIER
fix after exclude
r9574 'exclude':'NbconvertApp.exclude',
Matthias BUSSONNIER
working config
r9569 'highlight':'Converter.highlight_source',
'preamble':'Converter.preamble',
Matthias BUSSONNIER
nbconvert is now configurable app
r9568 }
def __init__(self, **kwargs):
super(NbconvertApp, self).__init__(**kwargs)
Matthias BUSSONNIER
working config
r9569 # ensure those are registerd
self.classes.insert(0,Converter)
self.classes.insert(0,ConverterRST)
self.classes.insert(0,ConverterMarkdown)
self.classes.insert(0,ConverterBloggerHTML)
self.classes.insert(0,ConverterLaTeX)
self.classes.insert(0,ConverterPy)
Matthias BUSSONNIER
nbconvert is now configurable app
r9568
def initialize(self, argv=None):
self.parse_command_line(argv)
cl_config = self.config
self.update_config(cl_config)
def run(self):
Jonathan Frederic
Fixed an out of date comment.
r9732 """Convert a notebook in one step"""
Matthias BUSSONNIER
nbconvert is now configurable app
r9568 ConverterClass = converters[self.fmt]
Matthias BUSSONNIER
bring back nbconvertapp
r9875 infile = (self.extra_args or [None])[0]
converter = ConverterClass(infile=infile, config=self.config)
Matthias BUSSONNIER
nbconvert is now configurable app
r9568 converter.render()
def main():
"""Convert a notebook to html in one step"""
app = NbconvertApp.instance()
Matthias BUSSONNIER
working config
r9569 app.description = __doc__
Matthias BUSSONNIER
deprecation message in old nbconvert.py
r9671 print("""
======================================================
Warning, we are deprecating this version of nbconvert,
please consider using the new version.
======================================================
""")
Matthias BUSSONNIER
nbconvert is now configurable app
r9568 app.initialize()
app.start()
app.run()
Fernando Perez
Fix handling of local files with the /files/ pseudo-url.
r6677 #-----------------------------------------------------------------------------
# Script main
#-----------------------------------------------------------------------------
Anton I. Sipos
Add argument parsing, and ability to convert an HTML file from command line
r6261
Paul Ivanov
list known formats in help & on unknown fmt error...
r6280 if __name__ == '__main__':
Anton I. Sipos
Add argument parsing, and ability to convert an HTML file from command line
r6261 # TODO: consider passing file like object around, rather than filenames
# would allow us to process stdin, or even http streams
David Warde-Farley
PEP8-ify rest of the repository.
r8749 #parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),
# default=sys.stdin)
Anton I. Sipos
Add argument parsing, and ability to convert an HTML file from command line
r6261
Matthias BUSSONNIER
working config
r9767 #parser.add_argument('-e', '--exclude', default='',
# help='Comma-separated list of cells to exclude')
#exclude_cells = [s.strip() for s in args.exclude.split(',')]
Matthias BUSSONNIER
nbconvert is now configurable app
r9568
main()