##// END OF EJS Templates
all header leven in rst
all header leven in rst

File last commit:

r9426:4fc1f420
r9532:dec581dc
Show More
nbconvert.py
117 lines | 4.0 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
nbconvert is now configurable app
r8979 # All the stuff needed for the configurable things
from IPython.config.application import Application, catch_config_error
Matthias BUSSONNIER
working config
r8980 from IPython.config.configurable import Configurable, SingletonConfigurable
Matthias BUSSONNIER
nbconvert is now configurable app
r8979 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
Matthias BUSSONNIER
working config
r8980 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,
}
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
nbconvert is now configurable app
r8979 class NbconvertApp(Application):
Fernando Perez
Initial checkin - note that in this state, it's producing an ipython...
r6220
Matthias BUSSONNIER
nbconvert is now configurable app
r8979
fmt = CaselessStrEnum(converters.keys(),
Matthias BUSSONNIER
working config
r8980 default_value='rst',
Matthias BUSSONNIER
nbconvert is now configurable app
r8979 config=True,
help="Supported conversion format")
exclude = List( [],
config=True,
help = 'list of cells to exclude while converting')
aliases = {
'format':'NbconvertApp.fmt',
Matthias BUSSONNIER
fix after exclude
r8985 'exclude':'NbconvertApp.exclude',
Matthias BUSSONNIER
working config
r8980 'highlight':'Converter.highlight_source',
'preamble':'Converter.preamble',
Matthias BUSSONNIER
nbconvert is now configurable app
r8979 }
def __init__(self, **kwargs):
super(NbconvertApp, self).__init__(**kwargs)
Matthias BUSSONNIER
working config
r8980 # 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
r8979
def initialize(self, argv=None):
self.parse_command_line(argv)
cl_config = self.config
self.update_config(cl_config)
def run(self):
"""Convert a notebook to html in one step"""
ConverterClass = converters[self.fmt]
Matthias BUSSONNIER
fix tests
r8983 infile = (self.extra_args or [None])[0]
converter = ConverterClass(infile=infile, config=self.config)
Matthias BUSSONNIER
nbconvert is now configurable app
r8979 converter.render()
def main():
"""Convert a notebook to html in one step"""
app = NbconvertApp.instance()
Matthias BUSSONNIER
working config
r8980 app.description = __doc__
Matthias BUSSONNIER
nbconvert is now configurable app
r8979 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
nbconvert is now configurable app
r8979 #parser.add_argument('-e', '--exclude', default='',
# help='Comma-separated list of cells to exclude')
#exclude_cells = [s.strip() for s in args.exclude.split(',')]
main()